物理Standby 概念
DG通过REDO应用来维护物理Standby数据库。
通常在物理Standby没有执行REDO应用操作的时候,可以将物理Standby数据库以READ ONLY模式打开,如果数据库中指定了Flashback Area的话,甚至还可以被临时性的置为READ WRITE模式,操作完之后再通过Flashback Database特性恢复回READ WRITE前的状态,以便继续接收Primary端发送的REDO并应用。
REDO应用。物理Standby通过REDO应用来保持与Primary数据库的一致性,所谓的REDO应用,实质是通过Oracle的恢复机制,应用归档文件(或Standby Redologs文件)中的REDO数据。恢复操作属于块对块的应用。如果正在执行REDO应用的操作,Oracle数据库就不能被Open。
READ ONLY模式打开。以READ ONLY模式打开后,可以在Standby数据库执行查询或备份等操作(变相减轻Primary数据库压力)。此时Standby数据库仍然能够继续接收Primary数据库发送的REDO数据,不过并不会应用,直到Standby数据库重新恢复REDO应用。
也就是说在READ ONLY模式下不能执行REDO应用,REDO应用时数据库肯定处于未打开状态。如果需要的话,你可以在两种状态间转换,如先应用REDO,然后将数据库置为READ ONLY状态,需要与Primary同步时再次执行REDO应用命令,切换回REDO应用状态。呵呵,人生就是循环,数据库也是一样。
提 示: Oracle 11g版本中增强物理Standby的应用功能,在11g版本中,物理Standby可以在OPEN READ ONLY模式下继续应用REDO数据,这就极大地提升了物理Standby数据库的应用场合。
READ WRITE模式打开。如果以READ WRITE模式打开,那么Standby数据库将暂停从Primary数据库接收REDO数据,并且暂时失去灾难保护的功能。当然,以READ WRITE模式打开也并非一无是处,如你可能需要临时调试一些数据,但又不方便在正式库中操作,那就可以临时将Standby数据库置为READ WRITE模式,操作完之后将数据库闪回到操作前的状态(闪回之后,Data Guard会自动同步,不需要重建物理Standby,不过如果从另一个方向看,没有启动闪回,那就回不到READ WRITE前的状态了)。
--===========================================
通常情况下物理standby处于mounted模式
当standby正常应用redo数据时其打开模式处于mounted模式
SQL>select open_mode from v$database;
OPEN_MODE
———-
MOUNTED
要将物理Standby数据库从REDO应用状态启动到READ ONLY状态,并不能直接ALTER DATABASE OPEN打开数据库,首先要取消redo应用
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
然后再打开数据库:
SQL>alter database open;
查询打开模式
SQL>select open_mode from v$database;
OPEN_MODE
———-
READ ONLY
要从OPEN状态切换回REDO应用状态,并不需要SHUTDOWN数据库再启动,直接执行启用REDO应用的语句即可
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30397635/viewspace-1783342/ ,如需转载,请注明出处,否则将追究法律责任。