闪回数据库或带有OPEN RESETLOGS的DBPITR,使数据库返回到之前的SCN,并抛弃了在这点之后的改变。
因为在这个点之后的SCN可以是被抛弃的改变,也可以是数据库当前历史中改变。
因此在FLASHBACK DATABASE中指定的目标SCN可能是模棱两可的。
与SCN不同,时间表达式和还原点不是模棱两可的。
时间点表达式总是与那个时间当前的incarnation相关。
还原点总是与它被创建时incarnation相关。
这一点总是正确的,即使对于与被抛弃的incarnation相关的时间和还原点也是一样。
数据库的incarnation自动地被重置为在指定的时间或还原点被创建时的incarnation
你可能想使用闪回数据库来使数据库回退到父incarnation中的SCN,而这个SCN要比RESETLOGS SCN要晚。
在RESETLOGS SCN处当前的incarnation路径从旧的incarnation分枝出来。
这个图说明了在incarnation分枝中SCN是如何产生的,甚至是在OPEN RESETLOGS创建新的incarnation之后。
数据库在incarnation 3中的SCN 3000,这里需要回退到被抛弃的incarnation 1中的SCN 1500。
如果想回退到的SCN在直接祖先路径中,或你想回退数据库到一个还原点,不需要显式的RESET DATABASE。
但如果需要使用闪回数据库来回退数据库到一个被抛弃的incarnation中的还原点,则需要显式的RESET DATABASE。
练习:回退数据库到被抛弃的incarnation分枝(闪回日志备份,luise)
|
--1. 使用SQL*Plus连接到目标数据库,并确定闪回日志包含足够的信息来闪回到指定的SCN SELECT OLDEST_FLASHBACK_SCN FROM V$FLASHBACK_DATABASE_LOG; --2. 确定闪回数据库操作的目标incarnation号,即父incarnation的incarnation key SELECT PRIOR_INCARNATION# FROM V$DATABASE_INCARNATION WHERE STATUS = 'CURRENT'; --3. 启动RMAN连接到目标数据库 --4. 关闭数据库,然后MOUNT SHUTDOWN IMMEDIATE; STARTUP MOUNT; --5. 设置数据库的incarnation为父incarnation. 这里回退到incarnation1 RESET DATABASE TO INCARNATION 1; --6. 执行FLASHBACK DATABASE命令,指定目标SCN FLASHBACK DATABASE TO SCN 1500; --7. 以只读的方式打开数据库,根据需要执行一些查询,确保逻辑损坏的影响已经被回退。 ALTER DATABASE OPEN READ ONLY; --8. 使数据库可以被更新 SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE OPEN RESETLOGS |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1097346/ ,如需转载,请注明出处,否则将追究法律责任。