增加复制表

增加复制表

 

1) 对于新增表,首先要在源端对其加入supplemental log。

GGSCI > dblogin userid goldengate, password goldengate

GGSCI > info trandata <schema>.<table name>

如果不是enable则需要手动加入:

GGSCI > add trandata <schema>.<table name>

 

2) 在源端系统上ggsci中执行stop extXX停止源端的抓取进程(注意检查所需最老归档日志是否存在);

 

3) 在目标端系统上ggsci中执行stop repXX停止目标端的复制进程;

 

4) 在源端修改ext进程参数,添加新表:

Ggsci> edit param extXX

在文件最后加入一行“table myschema.newtable;” 注意写全schema和表的名称。

 

在目标端修改rep进程所包含的列表文件:

GGSCI> edit param repXX

在assumetargetdefs下面加入一行:

Handlecollisions      注:如果是空表的话不用加此冲突处理参数

结尾加入一行“map ***.XXX, target ***.XXX, filter (@GETENV ("transaction", "csn") > 9543774);”注意写全schema和表的名称。

 

在源端执行exp将该表数据按scn导出;可选步骤,仅用于需要执行初始化的表;如表为新表,可以直接在备份端执行建表sql,然后执行重起即可

 

在目标端执行imp将该表数据导入;可选步骤,仅用于需要执行初始化的表

 

在目标端系统上启动复制进程repXX

GGSCI > start repXX

 

在源端系统上启动源端的抓取进程extXX和传输进程dpeXX

GGSCI > start er *

 

在目标端系统上去掉冲突处理(如果不需要去掉冲突处理则无需做此步)

GGSCI >  lag repXX

直到AT EOF,停止repXX进程:

ggsci> stop repXX

修改repXX.prm:

ggsci> edit param repXX.prm

在handlecollions前面加—将其注释掉;

重新启动repXX:

ggsci> start repXX

即可进入正常复制状态。

原文地址:https://www.cnblogs.com/l10n/p/7529266.html