oracle goldengate 远程捕获和投递

时间:2024-04-23 08:36:48

很早之前,OGG只支持部署在数据库主机上,这叫本地化部署。而现在OGG支持远端部署,即OGG软件不安装在数据库主机上,而是安装在单独的机器上,负责数据抽取和投递。

这样做的好处:

易于管理 - 在单独的服务器上运行Oracle GoldenGate时,您可以更好的管理OGG,降低对生产数据库的影响,比如硬件升级升级,性能调整,软件修补和升级等操作变得更易于管理,风险更低。另一方面,从长远来看,您需要集中管理来监督所有复制操作,将Oracle GoldenGate安装与数据库服务器进行混合,使其难以实现此类解决方案。其中一个原因是某些数据库服务器需要非常有限的访问!第三,您有更多的控制来实现复制策略,如故障切换和复制负载平衡。

改进的安全性 - 通过将数据复制移出数据库机器,通常在云中的不同安全区域,配置不同的软件组件有助于保护数据库服务器。

l 更好的性能 - 您不希望复制过程影响生产数据库。在数据库服务器上运行GoldenGate时,Oracle GoldenGate和数据库共享CPU,内存和磁盘IO资源。因此,可能会出现复制过程减慢数据库操作的情况。

技术可行 - 另一个重要原因是Oracle GoldenGate现在广泛支持远程捕获和投递,特别是对于Oracle数据库。诸如集成捕获和传送之类的新特性提升了远程捕获和投递的性能,从而帮助您选择新的体系结构,对吞吐量影响较小。

云端需要 - 许多云托管数据库(如Amazon AWS RDS数据库)不允许您在数据库服务器上安装任何内容。你别无选择,只能运行远程捕获和投递。

但在某些情况下,可能还是需要本地部署:

性能 - 数据量超过Oracle GoldenGate和数据库服务器可以处理的网络带宽,吞吐量和延迟时间无法通过远程捕获和传递来处理。一般来说,远程捕获和投递会带来15-20%的性能损失。但这不是一个官方数字,您需要在评估解决方案时在您的环境中进行测试后决定部署方案。

Active Data Guard故障后的切换 - 要使Oracle GoldenGate能够支持Active Data Guard故障切换,即priimary切换到standby时,OGG的抽取还能自动接上,则需要将OGG部署到dbfs上,具体可参考:http://www.oracle.com/technetwork/database/availability/ogg-adg-2422372.pdf,这种情况下,是不能远程部署OGG的。

操作系统字节序Endianness - 运行Oracle GoldenGate的服务器和运行数据库或数据库服务器的服务器必须具有相同的Endianness。而远端部署的机器无法提供数据库服务器相同的字节序时,只能在本地部署。

OGG暂不支持 - 对于某些数据库(如MySQL,DB2 for i和DB2 for z/OS),Oracle GoldenGate不支持远程捕获或投递。

OGG远程部署的支持情况

以下DB的支持情况从12.1.2.+ 开始

Oracle GoldenGate for Oracle DB (capture/delivery)

Oracle GoldenGate for MySQL (delivery)

Oracle GoldenGate for DB2 LUW (capture/delivery)

Oracle GoldenGate for Informix (capture/delivery)

Oracle GoldenGate for Big Data (delivery)

Oracle GoldenGate for Teradata (delivery)

Oracle GoldenGate for iSeries (delivery)

Oracle GoldenGate for SQL Server (delivery)

Oracle GoldenGate for JMS (capture/delivery)

针对DB2 z/OS, Non-Stop, and SQL Server,Oracle GoldenGate暂不支持远程捕获。

针对DB2 iSeries,Oracle GoldenGate可以从远程日志中捕获

针对DB2 iSeries,Oracle GoldenGate支持远程日志读取。 此功能允许在远程IBM i系统上运行的GoldenGate捕获程序读取从主IBM i系统生成的日志数据。

这样可以消除Oracle GoldenGate抽取进程与主系统的交互,但是Oracle GoldenGate仍然要求连接到DB2 iSeries主系统,以读取字典表等元数据信息。

如何使用远程捕获和投递

要运行远程捕获/投递,不同的数据库使用不同的方法。

Oracle GoldenGate for Oracle DB

您可以使用以下两种方法执行远程捕获:

(1)使用SQL*Net连接进行集成捕获

(2)基于downstream的实时或归档日志模式捕获。对于downstream数据捕获模式,您需要安装Oracle Data Guard将重做日志文件作为“redo standby log”连续传输到downstream数据库。要求源数据库为10.2.0.4+,下游数据库为11.2.0.3.0+。

Oracle GoldenGate for DB2 LUW

使用DB2 connect,用户可以将远程DB2设置为本地数据库实例。然后,Oracle GoldenGate可以通过DB2 connect的本地访问点来从远程DB2数据库进行捕获。

Oracle GoldenGate for Informix

您可以设置ODBC连接来访问远程服务器上的informix数据库,然后Oracle GoldenGate通过ODBC访问远端informix。需要满足以下要求:两个系统的字节顺序(Endian)应相同,第二个是操作系统平台和位数(32位或64位)必须相同。例如从Linux到Linux,Windows到Windows,Solaris到Solaris,不能跨平台。

Oracle GoldenGate for MySQL

对于MySQL,现在Oracle GoldenGate只支持远程投递,您只需要使用TARGETDB,用户名和密码指定目标数据库连接即可开始投递。同时,还需要MySQL用户具有远程访问权限。