oracle adg性能,ADG设计及优化的最佳实践

​作者介绍

梁铭图,新炬网络首席架构师,十多年数据库运维、数据库设计、数据治理以及系统规划建设经验,拥有Oracle OCM、Togaf企业架构师(鉴定级)、IBM CATE等认证,曾获dbaplus年度MVP以及华为云MVP等荣誉,并参与数据资产管理国家标准的编写工作。在数据库运维管理和架构设计、运维体系规划、数据资产管理方面有深入研究。

Active Data Guard(ADG)是ORACLE 11g企业版的新特性,需要单独的License.可以打开Physical standby至read only模式,standby可以用来做报表系统、查询、排序或Web站点。实时读写分离,以此来分担primary DB的压力。

一、ADG相关参数配置说明

oracle adg性能,ADG设计及优化的最佳实践_第1张图片

1、SYNC/ASYNC

控制redo传输服务是否同步。

sync:同步服务,只有在事务产生的日志成功的传输到备库的目的地,事务才能提交。主库同步数据到备库出现延时会增加了事物提交的时间,这种同步模式一般用在最大保护,最高可用。

async:异步服务,这种模式在事务提交时不会等待此事务产生的日志成功同步到备库,这种模式一般用在最大性能。

oracle adg性能,ADG设计及优化的最佳实践_第2张图片

LOG_ARCHIVE_DEST_11 到  LOG_ARCHIVE_DEST_31  需要COMPATIBLE  设置为 11.2.0.0 以上才可以用,而且不支持 SYNC 。

2、AFFIRM/NOAFFIRM

指定Redo传输服务在写Standby Redo Log时,磁盘I/O是否同步。

AFFIRM表示Redo传输服务在写Standby Redo Log时,只有写入成功后,Log写进程才会继续。

NOAFFIRM是默认值,表示Redo传输服务在写Standby Redo Log时是异步的,Primary端的日志写进程不会等待Standby端写Standby Redo Log。

oracle adg性能,ADG设计及优化的最佳实践_第3张图片

如果该属性没有指定,默认情况下,在指定同步方式为SYNC时为AFFIRM,在指定同步方式为ASYNC时为NOAFFIRM。

如果没有指定SYNC属性,那么单独设置该属性为AFFIRM将不生效/不支持。

对SYNC/ASYNC,AFFIRM/NOAFFIRM的理解:

这2对属性单独理解比较困难,需要结合起来一起分析。这2对属性控制了Data Guard在做同步数据时的方式,同时也决定了Data Guard的保护模式。下面通过LGWR模式的过程可来理解。

在Primary数据库产生commit事件之后,Primary数据库通过LGWR进程写Online Redo Log,此时LGWR进程会同步或者异步(SYNC/ASYNC)写入Standby Redo Log。如果该归档路径是远程的(归档路径设置为SERVICE),那么LGWR进程会调用LNSn进程,通过Oracle Net建立网络连接,然后往Standby数据库传输Redo Log。

在Standby数据库,RFS进程(Remote File Server Process)在接收到LNSn进程传输来的Redo Log后,如果是AFFIRM,那么RFS进程会在成功写入Standby Redo Log之后返回给Primary数据库一个处理结果,Primary数据库的LGWR进程会进行等待直到Standby数据库返回处理结果。

如果是NOAFFIRM,那么Standby数据库的RFS进程在接收到Redo Log后,在写入Standby Redo Log之前就返回给Primary数据库处理结果,此时Primary数据库的LGWR进程不会等待Standby数据库的RFS进程写Redo Log,因为已经提前收到了处理结果。

关于SYNC和AFFRIM的区别 :

SYNC指的是网络传输同步,AFFIRM指的是远端归档写入同步。

LGWR SYNC AFFIRM意味着主要的事务提交正在等待 网络I / O +磁盘I / O,这种模式可以确保零数据丢失。

LGWR SYNC NOAFFIRM表示主要事务提交仅等待网络I / O,这种模式无法确保零数据丢失。

建议:

未发现参数配置存在问题 。

oracle adg性能,ADG设计及优化的最佳实践_第4张图片

3、NET_TIMEOUT

指定等待多少秒后,LGWR不再继续等待目标端发回redo数据到达的确认,同时报错并终止和目标端连接。

你可能感兴趣的:(oracle,adg性能)