基于change scn的Oracle RMAN恢复 Change-Based Recovery

基于改变的恢复使得数据库管理员可以恢复到一个想要的点上,如果用于恢复的归档日志文件或重做日志文件丢失或破坏并且不能恢复时,这种情况最可能发生,在这种情况下,你将会应用所有的日志一直到RECOVER命令的UNTIL CHANGE语句指定的时间点上,UNTIL CHANGE 语句使用系统改变号码(SCN) 作为参数。

 

为了确定恢复所需要的SCN ,你可以查询 V$LOG_HISTORY 视图,例如:

Select * from v$log_history where rownum < 3;

THREAD# SEQUENCE# TIME LOW_CHANGE# HIGH_CHANGE#
——— ——— ——————– ———– ————
ARCHIVE_NAME
——————————————————————–

1 47213 06/26/98 12:47:55 116098950 116098954
/u01/app/oracle/admin/HIU1/arch/log_47213.arc

1 47212 06/26/98 12:47:33 116098947 116098949
/u01/app/oracle/admin/HIU1/arch/log_47212.arc
LOW_CHANGE# 列表示日志文件开头的SCN , HIGH_CHANGE# 表示日志文件末尾的 SCN。

 

进行下列步骤,执行基于时间的恢复:

  1. 如果数据库仍然打开,使用带有ABORTI选项的SHUTDOWN 命令关闭数据库。
  2. 对数据库进行完全备份,包括所有的数据文件,一个控制文件,参数文件,防止恢复时产生错误。
  3. 纠正引起多媒体故障的问题,如果问题不能得以纠正,数据文件必须复原到其它位置,如果是这种情况,必须使用ALTER TABLESPACE RENAME DATAFILE命令改变控制文件中数据文件的位置。
  4. 如果当前控制文件与你想要恢复时数据库的物理结构不匹配,复原可以和你想要恢复的时间点的数据库物理结构匹配的控制文件备份,用你想用来恢复的替换所有当前的控制文件,如果你没有控制文件的备份,可以创建一个新的。
  5. 复原所有数据文件的备份,确保在将要恢复的时间点之前采用备份,不应该恢复任何在恢复时间点之后添加的数据文件,在恢复时不会使用它们,恢复完成后必须重建它们,恢复时间点之后创建的数据文件中的数据会丢失。

在开始恢复之前确保只读表空间处于离线状态,因此恢复不试图更新数据文件头。

  1. 启动 SQL*Plus ,作为SYS连接到 Oracle。
  2. 使用带有MOUNT 选项的STARTUP命令启动实例,安装数据库。.
  3. 如果你复原文件到其它位置,现在使用ALTER TABLESPACE RENAME DATAFILE 命令 改变控制文件中的位置。
  4. 使用带有DATAFILE ONLINE选项的ALTER DATABASE命令保证数据库中的数据文件处于在线状态,你可以通过查询 V$DATAFILE 视图检查数据文件的状态。
  5. 使用 RECOVER DATABASE UNTIL CHANGE SCN 命令开始基于改变的恢复,该SCN号应该没有引号使用。

通过应用归档重做日志文件和在线重做日志文件,现在Oracle将开始前滚操作,如果 AUTORECOVERY 设置在 ON, 自动应用日志文件,如果没有设置在ON, 系统将为每个日志文件提示您,如果你使用了一个备份控制文件,你必须键入在线重做日志文件的名称。

  1. 使用带有 RESETLOGS 或NORESETLOGS 选项的ALTER DATABASE OPEN命令,你应该使用 RESETLOGS选项,如果你在恢复中或恢复未完成时使用控制文件备份,如果恢复完成,使用 NORESETLOGS 选项,如果你正在使用备份数据库,必须重设日志,将必须重建备用数据库。

你可以检查ALERT 文件,观察是否不完全恢复事实上是一个完全恢复,如果恢复是一个完全恢复ALERT 文件中的信息是 :

RESETLOGS after complete recovery through change scn

如果恢复是不完全恢复,会记录下列信息:

RESETLOGS after incomplete recovery UNTIL CHANGE scn

  1. 使用RESETLOGS选项打开数据库之后,执行一个正常的关闭,完全备份数据库,如果你不这样做,恢复之后和接下来完全备份之前做的改变会不可恢复,如果你没有重设日志,该数据库仍是可以恢复的。

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *