首页主机资讯centos中sqlplus的备份与恢复策略是什么

centos中sqlplus的备份与恢复策略是什么

时间2025-11-10 15:03:03发布访客分类主机资讯浏览381
导读:一、备份策略 1. 冷备份(脱机备份) 适用场景:数据库可正常关闭时的完整备份(如维护窗口期)。 操作步骤: 以SYSDBA身份登录SQL*Plus:sqlplus sys/密码@数据库名 as sysdba; 关闭数据库:SHUTDOW...

一、备份策略

1. 冷备份(脱机备份)

适用场景:数据库可正常关闭时的完整备份(如维护窗口期)。
操作步骤

  • 以SYSDBA身份登录SQL*Plus:sqlplus sys/密码@数据库名 as sysdba
  • 关闭数据库:SHUTDOWN IMMEDIATE
  • 复制关键文件到备份目录(需提前创建备份目录,如/u01/backup):
    HOST cp $ORACLE_BASE/oradata/数据库名/*.dbf /u01/backup/  # 数据文件
    HOST cp $ORACLE_BASE/oradata/数据库名/*.ctl /u01/backup/  # 控制文件
    HOST cp $ORACLE_BASE/oradata/数据库名/*.log /u01/backup/  # 重做日志文件
    
  • 启动数据库:STARTUP

2. 热备份(联机备份,RMAN推荐)

适用场景:数据库需保持运行状态的备份(生产环境常用)。
操作步骤

  • 启动RMAN并连接目标数据库:rman target /
  • 执行全库备份(包含数据文件、控制文件、归档日志):
    BACKUP DATABASE PLUS ARCHIVELOG;
          # 备份所有数据文件及归档日志
    BACKUP CURRENT CONTROLFILE;
               # 备份控制文件(冗余)
    
  • 可添加压缩选项减少存储占用:BACKUP DATABASE PLUS ARCHIVELOG FORMAT '/u01/rman_bak/backup_%U' COMPRESSION ENABLE;

3. 逻辑备份(Data Pump)

适用场景:需要逻辑级备份(如跨平台迁移、选择性恢复表/用户)。
操作步骤

  • 登录SQL*Plus创建目录对象(需有读写权限):
    CREATE DIRECTORY backup_dir AS '/u01/backup';
        
    GRANT READ, WRITE ON DIRECTORY backup_dir TO 用户名;
        
    
  • 执行导出(全库/用户/表级):
    expdp 用户名/密码@数据库名 DIRECTORY=backup_dir DUMPFILE=备份名.dmp LOGFILE=导出日志.log FULL=y;
          # 全库
    expdp 用户名/密码@数据库名 DIRECTORY=backup_dir DUMPFILE=用户备份.dmp LOGFILE=用户导出.log SCHEMAS=用户名;
          # 用户级
    expdp 用户名/密码@数据库名 DIRECTORY=backup_dir DUMPFILE=表备份.dmp LOGFILE=表导出.log TABLES=表名;
          # 表级
    

4. 闪回数据库(快速回退)

适用场景:误操作(如删除表、数据)或逻辑错误导致的数据异常,需快速恢复到指定时间点。
前提条件

  • 数据库处于归档模式;
  • 已开启闪回日志(ALTER DATABASE ARCHIVELOG; ALTER DATABASE FLASHBACK ON; );
  • 设置快速恢复区(ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/u01/flash_recovery' SCOPE=BOTH; )。
    操作步骤
  • 关闭数据库:SHUTDOWN IMMEDIATE
  • 启动到mount状态:STARTUP MOUNT
  • 执行闪回(指定时间点或SCN):
    FLASHBACK DATABASE TO TIMESTAMP TO_TIMESTAMP('2025-11-09 10:00:00', 'YYYY-MM-DD HH24:MI:SS');
        
    FLASHBACK DATABASE TO SCN 123456789;
          -- 指定系统改变号
    
  • 打开数据库(需重置日志):ALTER DATABASE OPEN RESETLOGS;

二、恢复策略

1. 冷备份恢复

适用场景:数据文件、控制文件等物理文件损坏,且无归档日志或无需恢复到最新状态。
操作步骤

  • 关闭数据库:SHUTDOWN IMMEDIATE
  • 覆盖备份文件:将冷备份目录中的数据文件、控制文件、重做日志文件复制到原位置(如/u01/app/oracle/oradata/数据库名/);
  • 启动数据库:STARTUP

2. 热备份恢复(RMAN)

适用场景:数据文件损坏、丢失或需要恢复到最新状态(归档模式下)。
操作步骤

  • 启动RMAN并连接目标数据库:rman target /
  • 恢复数据文件:RESTORE DATABASE; (RMAN自动定位备份文件);
  • 恢复归档日志:RECOVER DATABASE; (自动应用归档日志和在线重做日志);
  • 打开数据库:ALTER DATABASE OPEN;

3. 逻辑备份恢复(Data Pump)

适用场景:表、用户或部分数据丢失,需精确恢复逻辑数据。
操作步骤

  • 登录SQL*Plus创建恢复目录(若目录不存在):CREATE DIRECTORY restore_dir AS '/u01/restore';
  • 执行导入(全库/用户/表级):
    impdp 用户名/密码@数据库名 DIRECTORY=restore_dir DUMPFILE=备份名.dmp LOGFILE=恢复日志.log FULL=y;
          # 全库
    impdp 用户名/密码@数据库名 DIRECTORY=restore_dir DUMPFILE=用户备份.dmp LOGFILE=用户恢复.log SCHEMAS=用户名;
          # 用户级
    impdp 用户名/密码@数据库名 DIRECTORY=restore_dir DUMPFILE=表备份.dmp LOGFILE=表恢复.log TABLES=表名;
          # 表级
    
  • 可添加TABLE_EXISTS_ACTION=APPEND选项追加数据(避免表已存在的错误)。

4. 不完全恢复(介质故障)

适用场景:归档日志丢失、数据文件损坏且无法恢复到最新状态(如误删除归档日志)。
操作步骤

  • 关闭数据库:SHUTDOWN IMMEDIATE
  • 启动到mount状态:STARTUP MOUNT
  • 执行不完全恢复(指定时间点或SCN):
    RECOVER DATABASE UNTIL TIME '2025-11-09 09:00:00';
          # 恢复到指定时间
    RECOVER DATABASE UNTIL SCN 123456789;
                        # 恢复到指定SCN
    
  • 打开数据库(需重置日志):ALTER DATABASE OPEN RESETLOGS; (重置日志后,数据库会生成新的 incarnation,后续恢复需指定该 incarnation)。

5. 控制文件恢复

适用场景:控制文件损坏或丢失(数据库无法启动)。
操作步骤

  • 若有多重控制文件(建议配置),复制完好的控制文件到损坏位置;
  • 若无多重控制文件,需从备份恢复:
    • 关闭数据库:SHUTDOWN IMMEDIATE
    • 复制备份的控制文件到原位置(如$ORACLE_BASE/oradata/数据库名/control01.ctl);
    • 启动数据库:STARTUP
  • 若无备份,可使用ALTER DATABASE BACKUP CONTROLFILE TO TRACE生成创建脚本,手动创建控制文件。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos中sqlplus的备份与恢复策略是什么
本文地址: https://pptw.com/jishu/746286.html
centos nginx ssl配置失败怎么办 如何在centos上部署sqlplus应用

游客 回复需填写必要信息