Oracle GoldenGate (OGG)新增表同步数据的流程

Oracle GoldenGate (OGG)新增表同步数据的流程,第1张

开发人员提供详细的修改脚本

开发人员提供详细的修改脚本

Start extract xx (x xxx 是进程名)

Start replicat xx (x xxx 是进程名)

新增表同步表,建议将所有的新增表,通过一组新的抽取进程,传输进程和复制进程进

行同步。这样可以尽最大可能的不影响到原有的同步。

启动完成后,通过命令 info all 查看各个进程状态是否是 runninng 的正常状态

以前跟人解释ogg同步,都是说:源端来个insert,目标端也是执行了相同的insert,所以源端和目标端的数据才是一致的。

兴许是加班导致脑袋不清醒,在因对某表大批量 *** 作而考虑拆分进程的时候,忽然对这句话有了疑惑,比如说:同步A表,源端还有与A表相同结构的B表,而目标端没有B表,那么将B表数据插入A表(insert into A select * from B),按照我之前的说法,ogg同步进程就应该abend了,当时我就觉得自己的理解不太严谨,为了更加确认,做了一个小实验:

源端及目标端表结构:

SQL>desc lm.tests

Name Null?Type

----------------------------------------- -------- ----------------------------

ID NUMBER

NAME VARCHAR2(100)

SEXVARCHAR2(10)

SQL>desc lm2.tests

Name Null?Type

----------------------------------------- -------- ----------------------------

ID NUMBER

SEXVARCHAR2(10)

NAME VARCHAR2(100)

源端新建表(目标端没有):

SQL>create table lm.testsbak as select * from lm.tests

Table created.

根据新建表插入同步表数据:

SQL>insert into lm.tests select * from lm.testsbak

4 rows created.

SQL>commit

检查源端目标端数据:

SQL>select count(2) from lm.tests

COUNT(2)

----------

8

SQL>select count(1) from lm2.tests

COUNT(1)

----------

8

检查其中数据内容,也是一致的。

那么,这句话应该这么说:源端来个insert,目标端也是执行了一个类似的insert,ogg同步的是数据变更,而不是语句。

oracle ogg 新添加一张表,该怎么 *** 作

创建一个角色 create table test_table (id number(10))create role test_rolegrant select test_table to test_rolegrant insert on sys.test_table to est_role-- 相当于是将权限进行“打包” grant test_role to scott


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11431312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存