二,11g 使用snapshot方式设置Data Guard闪回
snapshot standby是11g引入的新特性,它不需要开启flashback database特性,就可以让physical standby数据库以read-write模式开启,而后可以退回到standby模式,所有open模式下的数据库中的更改的数据都会还原到之前的状态。
显然,原理上Snapshot Standby功能是基于闪回数据原理的,因此任何导致闪回数据库无法回退的动作在这里也是被限制的,否则Snapshot Standby数据库将无法回到曾经的备库恢复状态。
比如:
a. 控制文件重建
b. 数据文件shrink
c. 表空间删除
d. 介质损坏
2.1 Convert到snapshot standby的步骤
1) 如果数据库是RAC, 那么关闭所有节点,开启一个节点上的实例到mount模式。
SQL> shutdown immediate;
SQL> startup mount;
2) 关闭自动应用恢复(managed recovery)
SQL> alter database recover managed standby database cancel;
3) Convert standby数据库到snapshot standby.
在convert之前,我们先查询一下物理standby数据库flashback_on是否开启,发现是NO .
SQL> select flashback_on from v$database;
FLASHBACK_ON
——————
NO
Convert到snapshot standby,再次查看数据库的falshback_on状态。
SQL> alter database convert to snapshot standby;
SQL> alter database open;
SQL> select flashback_on from v$database;
FLASHBACK_ON
----——————
RESTORE POINT ONLY
可以发现flashback_on状态变成 RESTORE POINT ONLY,这和使用担保还原点(Guaranteed Restore Points)状态类似 .也就是说convert to snapshot standby命令相当于创建了一个担保还原点, 不过这个还原点的名字是什么 ? Oracle后期做convert to physical standby的时候又是如何找到还原点并操作的 ?
我们查询 V$RESTORE_POINT视图,可以发现一个NAME值为"SNAPSHOT_STANDBY_REQUIRED_05/05/ 09:05:50"的还原点,其他字段如TIME, SCN分别对应了时间及当时的SCN, 字段GUARANTEE_FLASHBACK_DATABASE为YES, 表示上面的猜测(相当于创建了一个担保还原点)是正确的。