Oracle 11g引入Snapshot Standby,允许standby database以read-write模式打开。当切换回standby模式,所有在read-write模式的修改都丢失。它是通过flashback database实现,但是standby database不需要显式启用flashback database。@H_404_1@
如果使用RAC,关闭所有其他实例,而保留一个实例。确保实例在mount模式。
shutdown immediate;
startup mount;@H_404_1@
1.关闭managed recovery
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;@H_404_1@
2.转换standby为一个snapshot standby。@H_404_1@
SELECT flashback_on FROM v$database;@H_404_1@
FLASHBACK_ON
------------------
NO@H_404_1@
ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
ALTER DATABASE OPEN;
SELECT flashback_on FROM v$database;@H_404_1@
FLASHBACK_ON
------------------
RESTORE POINT ONLY@H_404_1@
完成后,你可以像任何read-write数据库一样对待standby。@H_404_1@
3.将standby转换回physical standby,丢失所有转换为snapshot standby后的修改。@H_404_1@
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
SHUTDOWN IMMEDIATE;
STARTUP NOMOUNT;
ALTER DATABASE MOUNT STANDBY DATABASE;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
SELECT flashback_on FROM v$database;@H_404_1@
FLASHBACK_ON
------------------
NO@H_404_1@
现在,standby又回到了managed recovery,归档日志的传输也恢复了。注意,flashback database仍然没有开启。@H_404_1@