源库无主键表检查
MySQL迁移、灾备场景
预检查项 | 源迁移库无主键表检查。 |
|---|---|
描述 | 在进行MySQL迁移时,源数据库若存在无主键表,可能会导致迁移失败。 |
待确认提示及处理建议 | 待确认原因:源数据库迁移的表中存在无主键表。 处理建议:无主键表由于缺乏行的唯一性标志,无法进行内容对比,且在网络不稳定情况下,迁移可能存在目标与源库数据不一致的情况。建议将无主键表修改为主键表。 |
MySQL同步场景
预检查项 | 源库无主键表检查。 |
|---|---|
描述 | 在进行MySQL同步时,源数据库若存在无主键表,可能会导致同步失败。 |
不通过提示及处理建议 | 不通过原因:源数据库同步的表中存在无主键表。 处理建议:建议修改无主键表。 |
不通过原因:多对一任务时,不允许源库中存在与目标库同名的无主键表。 处理建议:建议修改无主键表、删除目标库无主键表或者不迁移无主键表。 | |
待确认提示及处理建议 | 待确认原因:源数据库同步的表中存在无主键表。 处理建议:无主键表由于缺乏行的唯一性标志,无法进行内容对比,且在网络不稳定情况下,可能存在目标与源库数据不一致的情况。建议将无主键表修改为主键表。 |
Oracle为源同步场景
预检查项 | 源库无主键表检查。 |
|---|---|
描述 | 源数据库若存在无主键表,可能会导致同步数据存在少量不一致的可能性。 |
不通过提示及处理建议 | 不通过原因:由于无主键表缺乏行的唯一性标志,在网络不稳定或续传同步任务时涉及少量重试,表数据存在少量不一致的可能性。源库对无主键表进行涉及多行的更新或删除,不仅会导致同步任务时延显著增加,还可能引起目标库负载升高,进而可能影响到客户目标库业务使用。 处理建议:建议为无主键表添加主键,或者不同步无主键表。 增加主键语句参考: ALTER TABLE table_name ADD CONSTRAINT constraint-name PRIMARY KEY (column_name); 若要同步主键表,建议在全量同步期间不执行ALTER TABLE MOVE操作,多分区操作SPLIT/MERGE分区,FLASHBACK操作,ALTER TABLE SHRINK SPACE操作,否则数据重复可能性会增加。 |

