语言
<< 返回文章列表

Oracle 18c 新特性:18.3 版本ADG的 DML自动转发提升DataGuard灾备灵活性

2018年8月5日
盖国强
2823

在 Oracle 18c 中,一个巧妙的自动 DML 转发特性为很多用户带来了福音。我们很多时候在做读写分离配置时,可能会因为某些应用的代码缺陷,会将DML发送到备库,从而引发问题或者故障。云和恩墨的专家团队在交流中也向Oracle开发团队建议,在备库支持有限的、不需要确保一致性的写操作,从而可以让 DataGuard 更灵活,大家想想这种需求是否会实践价值?


这种情况在 18c 中将不再是问题,18c 支持自动的DML转发,也就是将发送到备库的DML自动转发到主库执行,然后Redo传递到备库之后,备库可见,这样就巧妙的解决了一部分问题。

这个特性需要通过设置参数开启。_enable_proxy_adg_redirect=TRUE 将启用这个特性。

PIC 4.jpg

在备库上发出的DML操作自动重定向到主库执行,不影响ACID

  DML Re- direction automatically performed from Active Data Guard standby to the Primary without compromising ACID

– 在 ADG 上发出的 DML 重定向到主库执行,备库等待主库日志传递到备库并应用Standby ADG session waits for updates to show up on ADG via redo apply

– 在事务提交之前,DML 操作数据仅对操作会话可见DML data re-directed by an ADG session is only visible to that session before commit

– 重定向的DML在提交之后,对所有会话可见DML data re-directed is visible to all sessions after ADG session commits

– 通过设置初始化参数可以启用这个特性Enabled by setting parameter _enable_proxy_adg_redirect=TRUE and appropriate connectivity parameters

– Respects ACID properties of a database for ADG session

– 针对以读为主但是偶有更新的应用设计Targeted for “Read Mostly Occasional Updates” applications