开发人员提供详细的修改脚本
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)