每条CDC记录通常由以下几个部分构成:
Common header. |
Record-specific header |
Record-content |
Common header.
所有的CDC记录都是相同的。Common header 中的Record number字段用来表明当前记录的记录类型,需要使用Record number字段的值到syscdcv1数据库syscdcrectypes表中去匹配recnum字段。根据匹配到的记录中的recname字段可以获取当前记录的类型。例如是CDC_REC_INSERT还是CDC_REC_UPDBEF。
Record-specific header
这一部分根据CDC记录类型的不同而有着不同的格式。
Record-content
通常这一部分包含着数据变化部分内容。对于CDC_REC_INSERT / CDC_REC_UPDBEF / CDC_REC_UPDAFT / CDC_REC_DELETE,内容由以下几部分组成:
可变长度列的长度
如果记录中存在可变长度列的内容,每个列将对应4个字节的长度说明。这些长度说明的顺序与CDC_REC_TABSCHEMA记录中列的排列顺序相同。
固定长度列数据
如果记录存在固定长度列的内容,这些列将按照CDC_REC_TABSCHEMA记录中列的排列顺序出现。
可变长度列数据
如果记录存在可变长度列的内容,这些列将按照CDC_REC_TABSCHEMA记录中列的排列顺序出现。