ITPub博客

首页 > 数据库 > Oracle > 【ASK_ORACLE】Oracle Data Guard(一)DG架构

【ASK_ORACLE】Oracle Data Guard(一)DG架构

原创 Oracle 作者:Attack_on_Jager 时间:2021-11-17 14:36:38 1 删除 编辑

说明

文中介绍的DG或ADG是指物理DG,若有逻辑DG的知识点会特殊指出。


DG架构介绍

介绍架构之前,先放一张官方DG架构图:

 

 

Data Guard的工作分为三部分:日志(redo日志或者归档日志)的发送、接收与应用。下面详细说明一下这三个步骤:

1. 日志的发送

主库需要不停地发送日志(redo日志或者归档日志)到备库,主库通过日志来告诉备库做了哪些操作,使得备库可以“复制”主库做的一系列操作。这个发送是由主库的LGWR进程(11g及以上版本默认使用)或者ARCn进程(10g默认使用)来完成,但是每台备机有且仅有只能选择一种进程,因此每台备机要么使用LGWR,要么使用ARCn,不能够同时用这两个进程传输。并且这两个进程的保护能力也有区别。LGWR进程是传输的redo日志的,ARCn是传输归档日志的。

(1)使用ARCn进程传输

当redo日志写满发生日志切换后,会产生归档文件,ARCn进程就会把此时产生的新归档传到备机。备机的RFS进程来接收并写入归档到备机的归档路径,最后通过MRP进程(逻辑DG是LSP进程)进行归档应用。

需要注意的是,使用ARCn进程传输的归档,不会写入到Standby Redo Logs中,而是直接将归档文件放到备机。

 

(2)使用LGWR进程传输

LGWR进程又分为SYNC(同步)和ASYNC(异步)方式传输

1)使用SYNC方式

SYNC方式是主库把redo日志写到本地的同时,把该redo日志通过主机的LNSn进程也同步传输到备机(LNSn进程可以并行工作),再由备机的RFS进程接收redo日志并写入到Standby Redo Logs,最后由MGR进程应用归档日志。

需要注意的是,LGWR进程必须等待redo日志写入本地归档,同时通过LNSn进程传输都成功,主库的事物才能commit,缺一不可,不然就会等待两件事全部完成。


2)使用ASYNC方式

由于使用SYNC的方式非常依赖网络,所以一旦日志传输到备库失败,LGWR进程就会报错。于是就可以使用ASYNC的方式来传输。ASYNC方式不需要等待redo日志传输到备机成功,就可以把redo日志写入到本地,但是LGWR进程依旧会同时在写入redo日志到本地的同时,告诉LNSn进程,只不过LNSn是异步的。

 

另外,如果使用LGWR进程进行传输,如果LGWR由于某些故障传不了redo日志,就会使用ARCn进程来代替它传输。

 

2. 日志的接收

备库进程RFS进程一旦接收到日志(redo或者归档日志),就会把日志写入到备库的Standby Redo Logs或者归档日志文件中。

注:当主库发生日志切换,备库的Standby Redo Logs也会切换,并且归档该日志。

 

3. 日志的应用

1)日志实时应用(Real Time Apply)

该方式需要包含写入到Standby Redo Logs这个操作,只要日志被写入Standby Redo Logs就会触发恢复,这种方式可以减少主备库切换时间,因为在切换过程中最耗时就是恢复日志。

2)归档应用(默认恢复方式)

该方式是默认方式,会在主库发生日志切换时,触发备库的归档,归档完成后会进行恢复。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69992972/viewspace-2842613/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
在某银行任职DBA,拥有多年数据库运维经验,擅长Oracle,MySQL。尤其擅长Oracle的SQL优化,数据库性能调优,数据库备份、恢复与迁移。拥有的认证:OCM 12c,OCM 11g,MySQL OCP,RHCE,阿里云ACP,巨杉SCDP,软考系统集成工程师认证,Oracle Iaas OCA,OBCA,TDSQL认证,TBase认证

注册时间:2021-01-11

  • 博文量
    107
  • 访问量
    275329