前言:在11R2中的DG中有8种场景,Using Flashback Database After Issuing an Open Resetlogs Statement是第三个场景,大体为在某种操作完成后,主库可闪回之前的某一时间点,而备库也可同样闪回。
13.3 Using Flashback Database After Issuing an Open Resetlogs Statement
前言:由于某种需求,需要将主库和备库都闪回之前的某一个时间点,闪回后,数据库需要open resetlogs打开,而此时,备库也需要闪回,否则就得重新搭建DG。
13.3.1 Flashing Back a Physical Standby Database to a Specific Point-in-Time
实验环境:
主库+物理备库。开启主备库闪回,随后将主备库都闪回到某一时间点(主库:dong_pri 物理备库:mm_stb)
step 0:开启主备库闪回
step 1:闪回主库
主库:
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1596972
SQL> alter system switch logfile;
System altered.
SQL> create table t_after as select * from dba_objects;
Table created.
SQL> alter system switch logfile;
System altered.
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1597219
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/diag/rdbms/dong/
Oldest online log sequence 107
Next log sequence to archive 109
Current log sequence 109
物理备库:
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/diag/rdbms/dong/
Oldest online log sequence 107
Next log sequence to archive 0
Current log sequence 109
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1597214
开始闪回主库:
SQL> shutdown immediate
SQL> startup mount
SQL> FLASHBACK STANDBY DATABASE TO SCN 1596972;
Flashback complete.
SQL> alter database open resetlogs;
Database altered.
SQL> select count(*) from t_after;
select count(*) from t_after
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/diag/rdbms/dong/
Oldest online log sequence 1
Next log sequence to archive 1
Current log sequence 3
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1597135
step 2:闪回物理备库
SQL> shutdown immediate
SQL> startup mount
SQL> flashback database to scn 1594248;
Flashback complete.
step 3:测试
主库:
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/diag/rdbms/dong/
Oldest online log sequence 2
Next log sequence to archive 4
Current log sequence 4
SQL> alter system switch logfile;
System altered.
物理备库:
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/diag/rdbms/dong/
Oldest online log sequence 3
Next log sequence to archive 0
Current log sequence 107
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/diag/rdbms/dong/
Oldest online log sequence 3
Next log sequence to archive 0
Current log sequence 5
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
Database altered.
13.3.2 Flashing Back a Logical Standby Database to a Specific Point-in-Time
实验环境:
主库+逻辑备库。开启主备库闪回,随后将主备库都闪回到某一时间点(主库:dong_pri 物理备库:mm_stb2)。对于逻辑备库闪回和物理备库闪回其实没啥区别。主要注意步骤不太相同即可。
step 0:开启主备库闪回
step 1:闪回主库
步骤与上一个实验一样。
step 2:闪回备库
SQL> create table logical_after as select * from dba_objects;
Table created.
SQL> shutdown immediate
SQL> startup mount
SQL> FLASHBACK DATABASE TO SCN 1613195;
Flashback complete.
SQL> alter database open resetlogs;
SQL> SELECT resetlogs_id FROM V$DATABASE_INCARNATION WHERE status = 'CURRENT';
RESETLOGS_ID
------------
836147774
SQL> SELECT * FROM DBA_LOGSTDBY_LOG WHERE resetlogs_id = 836147774;
no rows selected
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
Database altered.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24500180/viewspace-1069602/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24500180/viewspace-1069602/