数据一致性校验算法 #
CRC32 一致性校验 #
类型 : CRC32_MATCH
可配置属性
无
说明:适用于 MySQL 及衍生数据库,仅限存量数据,需要停写,匹配所有记录的 CRC32。
使用示例
CHECK MIGRATION jobId BY TYPE (NAME='CRC32_MATCH');
CHECK RESHARDING jobId BY TYPE (NAME='CRC32_MATCH');
数据匹配一致性校验 #
类型 : DATA_MATCH
可配置属性 :
属性名称 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
chunk-size | int | 1000 | 一次查询操作返回的最大记录数 |
说明:适用于所有数据库,仅限存量数据,需要停写,匹配所有记录的所有字段值。
使用示例 :
CHECK MIGRATION jobId BY TYPE (NAME='DATA_MATCH', PROPERTIES('chunk-size'='1000'));
CHECK RESHARDING jobId BY TYPE (NAME='DATA_MATCH', PROPERTIES('chunk-size'='1000'));
CRC32 一致性校验(商业版) #
类型 : SphereEx:BATCH_CRC32_MATCH, SphereEx:DATA_CONSISTENCY_CHECK_CRC32_MATCH
可配置属性:
无。
说明:适用于 MySQL 及衍生数据库,仅限存量数据。需要停写,批量匹配所有记录的 CRC32。
使用示例 :
CHECK MIGRATION jobId BY TYPE (NAME='SphereEx:BATCH_CRC32_MATCH');
CHECK RESHARDING jobId BY TYPE (NAME='SphereEx:BATCH_CRC32_MATCH');
实时一致性校验(商业版) #
实验性功能
类型 : SphereEx:DATA_DIFF
可配置属性 :
属性名称 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
chunk-size | int | 1000 | 一次查询操作返回的最大记录数 |
diff-storage-type | String | 数据差异存储介质类型。取值:DATABASE(存储到某个 proxy 存储单元) | |
diff-storage-unit-name | String | 数据差异存储到哪个 proxy 存储单元,比如 ds_0。diff-storage-type 为DATABASE 时必填 | |
diff-table-name | String | 数据差异存储到哪个表(需要确保该表名没有被占用)。diff-storage-type 为DATABASE 时必填 | |
incremental-idle-seconds-threshold | int | 5 | 增量数据不再活动的时间阈值(单位:秒),超过这个时间即可认为本轮次没有增量数据了。diff-storage-type 为DATABASE 时必填 |
说明:适用于所有数据库,支持存量数据和增量数据,不需要停写,动态匹配所有记录的所有字段值,源端和目标端的数据差异会记录到配置的存储介质(一般是差异表),当最终3
个轮次检测到没有增量数据且没有差异数据即为校验通过。
使用示例 :
CHECK MIGRATION jobId BY TYPE (NAME='SphereEx:DATA_DIFF', PROPERTIES('diff-storage-type'='DATABASE','chunk-size'='1000','diff-storage-unit-name'='ds_2','diff-table-name'='spex_cnschk_1','incremental-idle-seconds-threshold'='30'));
CHECK RESHARDING jobId BY TYPE (NAME='SphereEx:DATA_DIFF', PROPERTIES('diff-storage-type'='DATABASE','chunk-size'='1000','diff-storage-unit-name'='ds_2','diff-table-name'='spex_cnschk_1','incremental-idle-seconds-threshold'='30'));
以上示例代表分别给数据迁移和扩缩容做实时一致性校验,存储到 proxy ds_2
存储单元、spex_cnschk_1
表,增量数据不再活动的时间阈值30
秒。
优势:
- 适用于所有数据库。当前在 MySQL 数据库较为成熟
- 不需要停写