增加复制表
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
即可进入正常复制状态。