欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

[Oracle] Data Guard 系列(3)

程序员文章站 2022-05-29 11:56:43
...

在上一节《Data Guard 系列(2) - 日志传输》中,我们介绍了DG的日志传输服务,当日志从主库传输至备库后,备库需要应用日志来保持和主库的同步,本节就来介绍日志应用服务。 Redo应用 or SQL应用? 我们知道有两种类型的备库,分别是物理备库和逻辑备库,

在上一节《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) - 角色转换》