admin管理员组

文章数量:1794759

oracle dg只读,DG

oracle dg只读,DG

物理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;

--============================================

模拟过程:修改主库数据--&gt递交,切换日志--&gt 日志主备传输 --&gt备库redo应用 --&gt只读模式打开备库--&gt 读数据

DG   最大性能模式

主库

SQL> update scott.emp set sal=2000 where empno=7369;

1 row updated.

SQL> commit;

Commit complete.

SQL> alter system switch logfile;

System altered.

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)

--------------

14

物理备库

SQL> select open_mode from v$database;

OPEN_MODE

----------

MOUNTED

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)

--------------

14

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

SQL> alter database open;

Database altered.

SQL> select sal from scott.emp where empno=7369;

SAL

----------

2000

--======================================================

本文标签: oracle dg只读DG