ORACLE_OCP之执行恢复1

ORACLE_OCP之执行恢复

  • 文章目标:
    • 根据数据库故障的性质执行适当的还原和恢复操作
    • 使用介质恢复手段修复数据文件
    • 执行完全和不完全或基于“时间点”恢复

一、保证备份可用

在这里插入图片描述

二、以NOARCHIVELOG模式还原

  • 如果数据库处于NOARCHIVELOG模式,并且丢失了任何或全部的数据文件,请执行以下任务: (普遍做法)
    • 如果该实例尚未关闭,则将其关闭。
    • 从备份还原整个数据库,包括所有数据和控制文件。并进行相关的恢复操作。
    • 打开数据库。
    • 通知用户必须重新输入自上次备份以来所做的所有更改。

三、在NOARCHIVELOG模式下使用增量备份进行恢复

  • 使用增量备份以NOARCHIVELOG模式执行数据库的有限恢复.
  • In SQL*Plus or RMAN:
    STARTUP FORCE NOMOUNT;
    RESTORE CONTROLFILE; 
    ALTER DATABASE MOUNT;
    RESTORE DATABASE;
    RECOVER DATABASE NOREDO;
    ALTER DATABASE OPEN RESETLOGS;
    

四、执行完全恢复

  • 在ARCHIVELOG模式下丢失非关键数据文件:
    • 如果数据文件丢失或损坏,并且该文件不属于SYSTEM或UNDO表空间,则可以在数据库打开时还原和恢复丢失的数据文件。
    • 恢复到上一次提交为止,并且不需要用户重新输入任何数据。

注:第二点恢复到上一次提交为止,并不会百分百。有一定的可能性会失败。

五、执行完全恢复

  • ARCHIVELOG模式下丢失关键数据文件:
    • 1.该实例可能会也可能不会自动关闭。 如果不是,请使用SHUTDOWN ABORT关闭实例。.
    • 2.Mount the database.
    • 3.还原和恢复丢失的数据文件或把所有的数据文件都还原、恢复了.
    • 4.Open the database.

六、还原ASM磁盘组

  • 使用ASMCMD md_restore命令从元数据备份文件还原ASM磁盘组。
  • 如果ASM磁盘组丢失,则可以使用元数据备份文件来重建磁盘组及其元数据,而不必手动重新创建磁盘组。
  • Restore options<还原操作>:
    • full:创建磁盘组并还原元数据
    • nodg:仅还原元数据
    • newdg -o:使用与原始磁盘组不同的名称创建磁盘组并恢复元数据

七、还原ASM磁盘组:示例

  • 还原元数据文件中的所有磁盘组:

    ASMCMD> md_restore /backup/asm_metadata --full

  • 仅还原DATA磁盘组的元数据:

    ASMCMD> md_restore /backup/asm_metadata --nodg –G data

  • 创建一个SQL脚本以还原DATA磁盘组:

    ASMCMD> md_restore /backup/asm_metadata –full
    –S asmsql.sql –G data

八、您已经知道的内容:恢复镜像副本

  • RMAN可以通过使用增量备份来恢复镜像副本:
    • 镜像副本将使用所有更改进行更新,直到增量备份的SCN。
    • 增量备份减少了介质恢复所需的时间。
    • 对于增量更新的备份,可以在恢复操作期间使用SWITCH命令。

在这里插入图片描述

九、恢复镜像副本:示例

  • 每天运行这些命令:

    RMAN> recover copy of database with tag ‘daily_inc’;
    RMAN> backup incremental level 1 for recover of copy
    2> with tag ‘daily_inc’ database;

  • 命令运行结果:
    在这里插入图片描述

十、快速切换到镜像副本

  • 通过执行以下步骤来执行快速恢复:

    • 1.使数据文件脱机。
    • 2.使用SWITCH TO … COPY命令切换到镜像副本。
    • 3.恢复数据文件(镜像副本)。
    • 4.使数据文件联机。
  • (可选)执行以下操作,将文件放回原始位置:

    • 5.在原始位置创建数据文件的镜像副本。
    • 6.使数据文件脱机。
    • 7.使用SWITCH TO … COPY命令进行切换
    • 8.恢复数据文件。
    • 9.使数据文件联机。

SQL> SWITCH DATAFILE ‘filename’ TO COPY;

十一、使用SET NEWNAME切换文件

  • 在RUN块中使用SET NEWNAME命令可还原到非默认位置.

    RUN
    { ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
    ALLOCATE CHANNEL dev2 DEVICE TYPE sbt;
    SQL “ALTER TABLESPACE users OFFLINE IMMEDIATE”;
    SET NEWNAME FOR DATAFILE ‘/disk1/oradata/prod/users01.dbf’
    TO ‘/disk2/users01.dbf’;
    RESTORE TABLESPACE users;
    SWITCH DATAFILE ALL;
    RECOVER TABLESPACE users;
    SQL “ALTER TABLESPACE users ONLINE”;
    }

  • 为数据库或表空间中的所有文件指定默认名称格式,而不要使用单个名称。

  • 默认名称用于RUN块中的DUPLICATE,RESTORE和SWITCH命令

十二、使用还原点

  • 还原点提供时间点的名称:
    • Now:

      SQL> CREATE RESTORE POINT before_mods;

    • 过去的一段时间:

      SQL> CREATE RESTORE POINT end_q1 AS OF SCN 100;

十三、执行时间点恢复

  • 通过执行以下操作来执行服务器管理的时间点恢复:

    • 1.确定还原的目标点:SCN,时间,还原点或日志序列号。
    • 2.适当设置NLS环境变量。’yyyy-mm-dd hh24:mi:ss’(nls_date_format)
    • 3.挂载数据库。
    • 4.使用SET UNTIL,RESTORE和RECOVER命令准备并执行RUN块。
    • 5.以只读模式打开数据库,并验证恢复点正确。
    • 6.使用RESETLOGS打开数据库。
  • 从第4到第6步的操作示例:

    • 4 使用SET UNTIL,RESTORE和RECOVER命令准备并执行RUN块。

      RUN
      {
      SET UNTIL TIME ‘2020-08-14:21:59:00’;
      RESTORE DATABASE;
      RECOVER DATABASE;
      }

    • 5.以只读模式打开数据库,并验证恢复点正确。

      RMAN> SQL ‘ALTER DATABASE OPEN READ ONLY’;

    • 6.使用RESETLOGS打开数据库。

      RMAN> ALTER DATABASE OPEN RESETLOGS;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值