修改复制表结构
当数据库需要复制的表结构有所改变,如增加列,改变某些列的属性等表结构改变后,可以按照以下步骤执行:

- 各进程使用lagexta验证无较大延迟(秒一级即可);
- 各进程执行infoexta,showch并验证ext进程重启所需日志存在;
- 按顺序停止源和目标端进程;
- 源和目标端执行修改表结构;
- 如表有主键(或唯一索引)且本次修改未修改主键,则直接重启进程;
- 但如果表无主键或者本次修改了主键(或唯一索引),则需继续执行下列步骤重建附加日志;
- 重新启动源端和目标端的抓取和复制进程。
注意:表结构变化后必须要重启ext/rep进程!否则各进程将按照旧的结构进行复制,会导致数据无法正确复制。
增加复制表
对于新增表,可以按照以下步骤进行操作:
- 在源端对其加入supplementallog
- 在源端停止抓取进程
- 在目标端停止复制进程
- 在源端修改ext进程参数,添加新表
- 在目标端修改rep进程所包含的列表文件
- 在源端执行exp将该表数据按scn导出(可选步骤)
- 在目标端执行imp将该表数据导入(可选步骤)
- 在目标端系统上启动复制进程
- 在源端系统上启动源端的抓取进程和传输进程
- 在目标端系统上去掉冲突处理(如果不需要去掉冲突处理则无需做此步)
删除复制表
要移除某个复制表,执行以下步骤:
- 在源端的进程参数文件中注释掉包含该表的table行;
- 目标端同样在rep进程里面注释掉包含该表的map行;
- 在源端使用infoexta,showch查看检查点并验证归档日志是否存在,然后重启ext进程;
- 在目标端直接重启rep进程。
本文作者:张朝文(上海新炬中北团队)
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6559.html
