[Oracle] Data Guard 系列(3) - 日志应用

来源:互联网 发布:喜马拉雅好好说话 知乎 编辑:程序博客网 时间:2024/05/16 16:14

在上一节《Data Guard 系列(2) - 日志传输》中,我们介绍了DG的日志传输服务,当日志从主库传输至备库后,备库需要应用日志来保持和主库的同步,本节就来介绍日志应用服务。


Redo应用 or SQL应用?


我们知道有两种类型的备库,分别是物理备库和逻辑备库,物理备库的日志应用叫做Redo应用,而逻辑备库的日志应用叫做SQL应用。

所谓的Redo应用是指备库采用介质恢复的方式应用主库传输过来的日志,因此物理备库就像是主库的一面镜子,不但数据一样,物理结构(如数据块、数据文件等)都一样,这样的好处是同步速度快。

所谓的SQL应用是指备库通过Log Miner从日志中解析出SQL语句,然后应用这些SQL语句,很显然,SQL应用的性能比不上Redo应用,但它更灵活。逻辑备库采用SQL应用。


实时日志应用


默认情况下,只有等Standby日志文件归档后才进行日志应用,如果你想一接收到从主库传输过来的日志,马上进行日志应用,则必须打开实时应用,这样只要RFS进程接收到日志并写入Standby日志文件后,MRP/LSP 进程能在备库第一时间应用日志,从而实现主备库的实时同步。

物理备库通过以下语句开启实时应用:SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;逻辑备库通过以下语句开启实时应用:SQL> ALTER DATABASE START LOGICAL STANDBYAPPLY IMMEDIATE;

查看是否已开启了实时应用,在standby端执行如下SQL:

SQL> select recovery_mode from v$archive_dest_status where dest_id=1;RECOVERY_MODE-----------------------MANAGED REAL TIME APPLY


开启/关闭日志应用服务


物理备库:

--开启SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;--关闭SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
逻辑备库:

--开启SQL> ALTER DATABASE START LOGICAL STANDBY APPLY;--关闭SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY;

《[Oracle] Data Guard 系列(1) - 三种保护模式》

《[Oracle] Data Guard 系列(2) - 日志传输》

《[Oracle] Data Guard 系列(3) - 日志应用》

《[Oracle] Data Guard 系列(4) - 在不停主库的情况下创建物理备库》

《[Oracle] Data Guard 系列(5) - 创建逻辑备库》

《[Oracle] Data Guard 系列(6) - 角色转换》

原创粉丝点击