个人对OGG与ADG的理解

  以下是个人对于oracle Actiive DataGuardGoldenGate的一些理解,限于使用场景和经验的不同,可能不会非常的全面,如有其它不同的想法,欢迎讨论调整补充。

  首先从容灾方向来看,个人认为ADG产品更加倾向于结构和数据层面的容灾,是为了保证整个数据库(实例)系统的完整性而设计的,主要目的是为了高可用性(HA);可以说,dataguard一套数据库系统体系内的容灾解决方案,ADG是在容灾的基础上,加入了可查询的功能,从而能够将一些报表类的业务压力从主库上分离出去,其根本上,还是在一套数据库范围内变相的增加该数据库系统的处理能力。OGG产品,对数据同步的能力支持的更多,它的同步是表级的,不支持在源或目标端的数据聚合操作,sum,average,count等的数据复制,另外OGG对于DDL复制支持的限制较大,作为容灾,在稳定性和配置上都不如ADG

  从使用场景角度来看,ADG支持一对多的同步,但仅限于一套数据库系统内,无法满足多套数据库之间的有效关联。而OGG产品因为其同步方式的灵活性,可以完美的实在多个数据库之间的互动,OGG支持单向复制、双向复制、点对点复制、数据分发、数据集中、多级复制等多种使用场景,针对表的复制还支持单表到单表、单表到多表、多表到多表、多表到单表、表过滤等多种复制方式,而且OGG可以最大限度的支持异构(操作系统,数据库版本,数据库产品),从而满足复杂业务系统的要求。

  从维护和稳定性角度来看,ADG产品维护起来简单,极少出现错误;OGG产品在维护起来操作较为复杂;而且,ADG产品的debug属于oracle体系,在问题处理上,oracle的支持的更好,OGG产品是被oracle收购的,所以在debug方面,对于问题定位和分析都不同于oracle

下面是一个简单的对比表格

 

Oracle DataGuard

 Oracle GoldenGate

原理

复制归档日志或在线日志

抽取在线日志中的数据变化,转换为GGS自定义的数据格式存放在本地队列或远端队列中

稳定性

作为灾备的稳定性极高

稳定性不如DataGuard

维护

维护简单,极少出现问题

命令行方式,维护较复杂

对象支持

完全支持

部分对象需手工创建于维护

备份端可用性

备份端处于恢复或只读状态 

两端数据库是活动的,备份端可以提供实时的数据查询及报表业务等,从而提高系统整体的业务处理能力,充分利用备份端的计算能力,提升系统整体业务处理性能。可以实现两端数据的同时写入

接管时间

接管时间很短

可实现立即接管

复制方式

可以实现实时复制

GoldenGate可以提供秒一级的大量数据实时捕捉和投递,异步复制方式,无法实现同步复制

资源占用

复制通过数据库的LGWR进程或ARCN进程完成,占用数据库少量资源

业务高峰时在数据抽取转换时消耗系统资源较多,低峰时占用较小

异构数据库支持

单一数据库解决方案,仅运行在Oracle数据库上,源端和目标端操作系统要求较严格,版本号可以不同

可以在不同类型和版本的数据库之间进行数据复制。如ORACLE,DB2,SYBASE,SQLSERVER,INFORMIX、Teradata等。适用于不同操作系统如windows、linux、unix、aix等

带宽占用

使用OracleNet传输日志,可通过高级压缩选项进行压缩,压缩比在2-3倍

利用TCP/IP传输数据变化,集成数据压缩,提供理论可达到9:1压缩比的数据压缩特性

拓扑结构

可以实现一对多模式

可以实现一对一、一对多、多对一、双向复制等多种拓扑结构

原文地址:https://www.cnblogs.com/dataroot123/p/12995446.html