了解 DDL 感知

如果 DDL 操作以非计划方式发生,那么 CDC Replication V 6.3 和更高版本具有称为 DDL 感知的功能,用于识别影响复制的数据库日志条目中的 DDL 更改。

不影响复制的 DDL 语句包括分析表统计信息以及不更改表的日志条目的 映像日志记录格式 的其他维护过程。 某些 DDL 操作将导致格式发生更改。 因此,此格式发生更改时,必须通知日志阅读器如何继续。

了解 DDL 感知时间线

可能不明显的情况是,在将表添加到复制之前发生的 DDL 可能会影响当前的复制,并导致 CDC Replication 由于运行时异常而失败,或者可能损坏目标上表的行中的数据。

要了解此情况生成的问题,请务必了解数据库日志可能包含前映像(数据库中发生更改前的数据行)和后映像(数据库中发生更改后的数据行)。

插入的日志记录将只包含后映像,删除操作将只包含前映像,而更新操作将包含前映像和后映像。

对于更改表结构的 DDL 操作,某些数据库产品可能只更改元数据,而保留旧物理行结构不变以用于表的现有页。 在稍后更新其中一个较旧的行时,生成的日志条目的图像可能与 CDC Replication 根据表的当前结构所期望的内容不对应。 数据库本身将知道这一点并能够处理它,但 CDC Replication 仅能够依赖于当前描述的表结构,因此可能会迂到错误情况。