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