对象对比结果分析:
  1. [×]:备端拥有该对象,但该对象为失效状态
  2. “空值”:备端对象不存在
通过页面“对象修复”失败原因:
1、修复任务包含对象过多时,部分对象修复状态显示wait状态
2、对象修复结果显示done,但对象对比后仍显示差异,则备端对象可能为上诉所说的失效状态

通过底层fixObj工具修复失败原因:
1、通过fixObj获取创建对象的DDL时,中文等字段乱码,故无法修复

对象修复推荐步骤:
1、表比较,基于表比较结果对差异表进行修复。
2、在备库执行BadSql.log中的SQL语句,该文件记录了全量同步失败对象的SQL语句
3、进行对象比较,基于对象比较结果进行对象修复。当差异对象较多时,建议对差异对象进行分类再修复。对象修复完成后,状态显示wait的对象可通过页面再次尝试修复。
4、再次对象比较,基于对象比较结果,在备端i2Active/bin目录下,使用fixObj工具进行修复,当备端无法访问源端时,该工具不可用,可移动备端cache/规则uuid/Back
路径下Rule.dat文件至源端,在源端使用fixObj工具进行修复。关于fixObj的使用可参    考《i2Active命令行使用手册》。
5、完成以上步骤后仍无法修复的对象,需逐一查看iaback日志报错,针对具体报错进行修复。

对象修复可能存在的问题及解决:
1、修复视图时,iaback日志报错用户权限不足,此问题由该用户部分权限未修复造成。可先修复该用户权限差异,再尝试修复视图,如仍有权限报错,可获取该视图DDL后,在备端数据库手动创建该视图。或暂时给备端用户赋权dba,待视图修复完成后,收回用户dba权限。
2、对象之间存在关联关系,故需关注对象修复的先后顺序,此问题需在修复时关注iaback日志的报错,优化对象修复的顺序。
3、通过fixObj获取创建对象DDL语句时,如中文等存在乱码,可将查询到的SQL输出到文件中保存,待中文等字段正常显示后,在备端执行SQL进行修复。