ORACLE DataGuard Logical Standby 详解之:(七)应用REDO数据到Standby数据库

本节内容

1.物理Standby应用REDO数据
物理Standby启动REDO应用,数据库要处于MOUNT状态或是OPEN READ ONLY状态,启动REDO应用的命令相信大家已经非常熟悉了。

前台应用:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;
语句执行完成后,不会将控制权返回到命令行窗口,除非你手动中止应用。在这种情况下如果还需要对数据库进行操作,只能新开一个命令行连接,在Oracle 8i刚推出Standby特性时(那时不叫Data Guard),只提供了这种方式。

后台应用:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
这是现在比较通用的方式,语句执行完后,控制权自动返回到当前的命令行模式,REDO应用以后台进程运行。

启动实时应用,附加USING CURRENT LOGFILE子句即可:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;

如果要停止REDO应用,执行下列语句即可:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

2.逻辑Standby应用REDO数据
SQL应用的原理是将接收到的REDO数据转换成SQL语句在逻辑Standby数据库端执行,因此逻辑Standby需要启动至OPEN状态。
(1)启动SQL应用。逻辑Standby数据库启动SQL应用没有前、后台运行之说,语句执行完之后,控制权就会自动返回当前命令行窗口。要启动SQL应用,直接执行下列语句即可:
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY;

如果要启动实时应用,附加IMMEDIATE子句即可,例如:
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;

(2)停止SQL应用,如:
SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY;
由于是执行SQL语句的方式应用REDO数据,因此上述语句的执行需要等待当前执行的SQL触发的事务结束,才能真正停止REDO应用的状态。

如果不考虑事务执行情况,马上停止REDO应用,可以通过下列的语句来完成:
SQL> ALTER DATABASE ABORT LOGICAL STANDBY APPLY;


数据运维技术 » ORACLE DataGuard Logical Standby 详解之:(七)应用REDO数据到Standby数据库