jieyancai 发表于 2015-10-11 13:36
第二段的意思是:如果启用flashback database的话,failover之后是不需要像以前那么麻烦需要重建备库的。而 ...
证实了我的设想
下面的信息,都是在 STANDBY 库上执行,
--1 在主库上删除测试表后,被删除的表被放到回收站,
SYS@lion>connect scott/1
Connected.
SCOTT@lion>select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BIN$IdXD+OrPeeTgUwQBqMDFTA==$0 TABLE
BONUS TABLE
DEPT TABLE
EMP TABLE
SALGRADE TABLE
Elapsed: 00:00:00.02
--2 闪回该表,然后关闭主库回收站功能,被删除的表恢复,
SCOTT@lion>/
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BONUS TABLE
DEPT TABLE
EMP TABLE
EMP_BAK TABLE
SALGRADE TABLE
Elapsed: 00:00:00.00
--3 再次删除,这次,每放回回收站了,
SCOTT@lion>/
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BONUS TABLE
DEPT TABLE
EMP TABLE
SALGRADE TABLE
Elapsed: 00:00:00.00
SCOTT@lion>connect scott/1
Connected.
SCOTT@lion>select sysdate from dual;
SYSDATE
-------------------
2015-10-11 22:09:59
Elapsed: 00:00:00.01
--4 尝试闪回,失败,
SCOTT@lion>connect / as sysdba
Connected.
SYS@lion>flashback database to timestamp to_date('2015-10-11 22:09:30','yyyy-mm-dd hh24:mi:ss');
flashback database to timestamp to_date('2015-10-11 22:09:30','yyyy-mm-dd hh24:mi:ss')
*
ERROR at line 1:
ORA-01153: an incompatible media recovery is active
Elapsed: 00:00:00.00
SYS@lion>alter database recover managed standby database cancel;
Database altered.
Elapsed: 00:00:01.00
--5 再次尝试闪回,成功,但 STANDBY 库关闭了,
SYS@lion>flashback database to timestamp to_date('2015-10-11 22:09:30','yyyy-mm-dd hh24:mi:ss');
Flashback complete.
Elapsed: 00:00:02.21
SYS@lion>connect scott/1
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress
Process ID: 0
Session ID: 0 Serial number: 0
Warning: You are no longer connected to ORACLE.
@>exit
[oracle@erpstby /oradata/orcl/datafile]
$sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Sun Oct 11 22:11:30 2015
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SYS@lion>select status from v$instance;
STATUS
------------
MOUNTED
Elapsed: 00:00:00.01
SYS@lion>alter database open;
Database altered.
Elapsed: 00:00:00.40
SYS@lion>select status from v$instance;
STATUS
------------
OPEN
Elapsed: 00:00:00.00
-- 6 打开数据库后,主库上被删除的表,恢复回来了,
SYS@lion>connect scott/1
Connected.
SCOTT@lion>select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BONUS TABLE
DEPT TABLE
EMP TABLE
EMP_BAK TABLE --- 被删除的表,出现了,
SALGRADE TABLE
Elapsed: 00:00:00.02
--7 假设步骤6把误删除的表恢复回来理论了,此时,继续和主库同步,
SCOTT@lion>connect / as sysdba
Connected.
SYS@lion>alter database recover managed standby database using current logfile disconnect from session;
Database altered.
Elapsed: 00:00:07.03
--8 发现刚被闪回的表再次丢失,说明 STANDBY 库同步恢复操作正常,
SYS@lion>connect scott/1
Connected.
SCOTT@lion>select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BONUS TABLE
DEPT TABLE
EMP TABLE
SALGRADE TABLE
Elapsed: 00:00:00.01
SCOTT@lion>