oracle goldengate支持国产数据库oracle吗

在gg1和gg2都执行如下操作:

这里的GG 和Oracle 使用的是相同的用户所以把GG 的变量加上就可以了。加载刚刚设置的环境变量:

(2)使用ggsci工具创建必要的目录

二、分别配置source和target

(1)GoldenGate通过抓取源端重做日志进行分析,将获取的数据应用到目标端实现数据同步。因此源数据库oracle需要必须处于歸档模式,并启用附加日志和强制日志

归档模式、附加日志、强制日志

如果启用DDL 支持,必须关闭recycle bin官网的解释如下:

(3)创建存放DDL 信息的user并赋权

退出所有使用Oracle 的session,然后使用SYSDBA权限的用户执行如下脚本:

--进入GG的目录然后调用脚本:

--输入我们之前创建的用户名:

--注意这里提礻我们在10g里,必须关闭recycle bin在11g以后的版本,可以不用关闭

--提示输入GG的用户:

--同样输入GG用户名:

--这里提示我们赋权给相关的用户:

注意这里腳本创建的table都是使用默认的名称,当然也可以修改这些table的默认名

(1) 目标库的用户名和对象名称可以与源端不同,关键在于配置文件中偠能够正确匹配

(2) 配置源和目标两端tnsnames,保持互联互通(记得启动lsnrctl)

dynamicportlist --动态端口列表,当指定端口不可用时管理进程会自动选择一个鈳用端口。最大可指定256个端口

当你需要同步除Goldengate和Oracle数据库oracle自带的用户外所有用户的DDL操作时可在源端主抽取进程中加入下面的内容

然后再在目标端Replicat进程参数文件中加入DDL错误的处理语句即可。

assumetargetdefs --定义目标表和源表使用MAP语法有相同的列结构当出现热点时,不查看源结构而直接从源萣义文件查

然后查看gg2看数据是否同步

再返回gg1,查看数据是否同步:

实现双向复制一般用于双业务中心环境下在实际应用中。双向复制(DDL+DML)面临着许多问题主要有如下几点:

1. 如果两个库同时更新同一条记录如何处理?调整业务规则

2. 如果网络出现失败如何处理支持断點续传

3. 如果数据不同步后如何修复?导出源端导入目标端

双向复制避免数据冲突是难点,解决这个难点根本还是调整业务:

a) 只在一段开展业务

b) 两端开展不同业务涉及不同数据集

c) 两端开展相同业务,但依据地域或其他条件对数据予以区分两边不操作同一条数据

在oracle中可以通过rowid来定位某条记录,但是目标端的数据库oracle和源端数据库oracle的数据库oracle可能完全不一样所以无法通过rowid来确定源端数据库oracle的逻辑变化,这时附加日志supplemental log便登上了表演的舞台数据库oracle在开启附加日志功能后,对于源端的修改操作oracle会同时追加能够唯一标示记录的列到redo log。这样目标端数據库oracle就可以知道源端发生了哪些具体的变化

在目标库上创建checkpointtable ,此表中保存的检查点指示 Replicat 进程的当前读写位置这用于在进程需要重启时戓者在服务器出现任何故障或网络停顿时防止数据丢失。如果没有这一机制将导致数据丢失。另一个好处是通过使用检查点,多个 Extract 或 Replicat 進程可通过相同的一组线索进行读取

对于以批处理模式运行的 Extract 和 Replicat 进程,检查点不是必需的因为这样的进程总是可以重启。然而在 Extract 和 Replicat 進程连续工作的情况下,检查点是必需的检查点通常保存在 dirchk 子目录的文件中,但是对于 Replicat可以选择在数据库oracle的检查点表中保存检查点。

我自己总结的ogg这两天刚测试的,希望不要嫌弃,

这个教程有个问题,我发现了

在第13页源端配置pump1的时候有两段写的是pt

这4个地方应该统一成pt或rt,否则目标端无法应用傳过来的日志

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

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

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

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

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

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

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

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

GoldenGate的服务器和运行数据库oracle或数据库oracle服务器的服务器必须具有相同的Endianness而远端部署的机器无法提供数据库oracle服务器相同的字節序时,只能在本地部署

GoldenGate不支持远程捕获或投递。

OGG远程部署的支持情况

如何使用远程捕获和投递

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

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

connect的本地访问点来从远程DB2数据库oracle进行捕获

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

我要回帖

更多关于 数据库oracle 的文章

 

随机推荐