"修改复制表结构-goldengate"
在Oracle GoldenGate中,当需要对正在复制的数据库表结构进行修改,例如增加列、改变列属性等,必须遵循一定的步骤来确保数据复制的准确性和一致性。以下是修改复制表结构的详细过程:
1. 验证延迟与日志状态:
在进行任何更改之前,应确保所有GoldenGate进程(如exta、dpea、repa)的延迟处于可接受范围,通常是一秒钟内的延迟。执行`info exta`和`showch`命令检查ext进程的状态,并验证是否存在足够的重做日志用于进程重启。
2. 停止进程:
按照正确的顺序,依次停止源端和目标端的GoldenGate进程,包括抽取和复制进程。
3. 修改表结构:
在源端和目标端数据库上执行相应的SQL语句来改变表结构。如果表包含主键(或唯一索引),并且此次修改未涉及主键,那么在完成表结构变更后可以直接重启进程。
4. 重建附加日志:
如果表没有主键,或者本次修改涉及到主键(或唯一索引),需要进一步操作。首先,使用ggsci登录到GoldenGate管理器,输入命令`delete trandata schema.mytable`删除原有事务数据,然后执行`add trandata schema.mytable`添加新的事务数据。这一步骤确保了新结构的正确复制。
5. 重启进程:
一旦附加日志重建完成,就可以重启源端和目标端的抽取和复制进程。重启后,GoldenGate将按照新的表结构进行复制。
6. 注意事项:
表结构变更后,必须重启GoldenGate的ext和rep进程,否则进程会按照旧的结构复制数据,导致复制失败或数据不一致。务必确认每个进程都在新的结构下运行,以保证数据的正确性。
除了上述的表结构修改,GoldenGate维护还包括启动和停止GoldenGate、查看进程状态、处理长交易、配置自动删除队列文件、设置mgr定时重启extract和replicat进程、配置密码加密以及处理遇到的问题。例如,启动GoldenGate时,可以通过`startmgr`启动管理器,再用`start*`命令启动相关进程。查看进程状态时,可以使用`info all`、`inforep*`、`info exta, detail`和`info exta, showch`等命令获取详细信息,而`viewreport`则用于查看进程报告以诊断错误。
对于延迟检查,`LAG`命令用于查看进程的复制延迟,例如`LAG exta`。检查点信息如`Infoexta, showch`所示,包括了提取进程的最后启动时间、状态、检查点滞后时间和最近更新时间,以及重做日志的序列号和RBA值,这些都是监控和管理GoldenGate进程的重要指标。
Oracle GoldenGate的表结构修改需要谨慎处理,遵循正确的步骤,以保持数据的完整性和一致性。同时,日常维护和监控也是确保GoldenGate高效运行的关键。