Loading Data with a Database Utility
要使用数据库复制实用程序建立目标数据,您需要启动更改同步提取组,以便在数据库实用程序创建并应用数据的静态副本时提取正在进行的数据更改。复制完成后,启动更改同步Replicat组以重新同步应用副本时更改的行。从那时起,Extract和Replicat将继续运行以保持数据同步。此方法不涉及任何特殊的初始加载Extract或Replicat进程。
在此方法中加载的对象和数据类型必须由Oracle GoldenGate支持您的数据库以及正在使用的数据库实用程序。对于数据库支持的项目,请参阅该数据库的Oracle GoldenGate安装和配置文档。对于数据库实用程序支持的项目,请参阅数据库供应商的文档。
- 确保您已满足初始加载的先决条件中的要求。
- 在源系统和目标系统上,运行GGSCI并启动Manager进程。
START MANAGER
在Windows群集中,从群集管理器启动Manager资源。
- 在源系统上,开始更改提取。
START EXTRACT group
- (Oracle,如果正在复制序列)发出DBLOGIN命令,使用具有update.Sequence的EXECUTE权限的用户。
GGSCI> DBLOGIN USERID DBLOGINuser, PASSWORD password [encryption_options]
- (Oracle,如果复制序列)发出以下命令来更新每个源序列并生成重做。从重做开始,Replicat执行目标上序列的初始同步。您可以使用星号通配符表示序列名称中的任何或所有字符(但不是所有者)。
FLUSH SEQUENCE owner.sequence
- 在源系统上,开始复制。
- 等到复制完成并记录完成时间。
- 查看Replicat参数文件以确定列出了HANDLECOLLISIONS参数。如果不是,请将该参数添加到文件中。
HANDLECOLLISIONS:指定冲突处理。仅当您在开始联机处理的同时执行初始加载并且源数据库在加载过程中保持活动状态时才使用。 HANDLEECOLLISIONS用正在进行的复制事务更改解决了复制的结果。它解决了行已经存在的插入操作以及该行不存在的更新和删除操作。它可以全局用于参数文件或MAP语句中的所有MAP语句,或两者。
不要使用VIEW PARAMS或EDIT PARAMS命令来查看或编辑除本地操作系统以外的字符集(例如,使用CHARSET选项指定不同字符集的字符集)的现有参数文件。如果是这种情况,请查看GGSCI外部的参数文件;否则,内容可能会损坏..
- 在目标系统上,开始更改复制。
START REPLICAT group
- 在目标系统上,发出以下命令以验证更改复制的状态
INFO REPLICAT group
- 继续发出INFO REPLICAT命令,直到您确认更改复制已发布初始加载期间生成的所有更改数据。参考您记录的完成时间。例如,如果复制在12:05停止,请确保更改复制已将数据发布到该点。
- 在目标系统上,发出以下命令关闭HANDLECOLLISIONS参数并禁用初始加载错误处理。
SEND REPLICAT group, NOHANDLECOLLISIONS
- 在目标系统上,编辑Replicat参数文件以删除HANDLECOLLISIONS参数。这样可以防止在下次启动Replicat时再次启用HANDLECOLLISIONS。
不要使用VIEW PARAMS或EDIT PARAMS命令来查看或编辑除本地操作系统以外的字符集(例如,使用CHARSET选项指定不同字符集的字符集)的现有参数文件。如果是这种情况,请查看GGSCI外部的参数文件;否则,内容可能会损坏。
- 保存并关闭参数文件。
从这个节点后,Oracle GoldenGate将继续同步数据更改。
参考资料
https://docs.oracle.com/goldengate/c1230/gg-winux/GWUAD/instantiating-oracle-goldengate-initial-load.htm#GWUAD-GUID-8E86AB1B-07C0-4C21-9866-56FE8CB24E39