使用须知
DRS增量同步任务一般包含三个阶段:任务启动阶段、增量阶段、结束任务阶段。为了确保同步各个阶段的平顺,在创建同步任务前,请务必阅读以下使用须知。
表4 使用须知
类型名称 |
使用和操作约定 |
任务启动前须知 |
- 源数据库要求:
源数据库参数wal_level必须配置为logical;
源数据库需提前安装test_decoding插件;
源数据库中无主键表的replica identity属性必须为full;
源数据库的max_replication_slots参数值必须大于当前已使用的复制槽数量;
源数据库的max_wal_senders参数值必须等于或大于max_replication_slots参数值。
源数据库中表的主键列toast属性为main、external、extended时,其replica identity属性必须为full。
- 目标数据库要求:
- 目标库为社区Kafka。
- Kafka的auto.create.topics.enable参数建议为false。
- 其他使用须知:
- 若专属计算集群不支持4vCPU/8G或以上规格实例,则无法创建同步任务。
- 源库必须为华为云RDS for PostgreSQ L实例 。
- 库级同步时,增量同步中的任务,不支持“编辑”操作。
- 表级同步时,增量同步中的任务,支持“编辑”操作,但是不支持更换数据库。
- 在启动任务前,请确保源库中未启动长事务,源库启动长事务会阻塞逻辑复制槽的创建,进而引发任务失败。
- 在任务启动后,仅支持以下版本的源库发生主备倒换:源库为RDS for PostgreSQL 12.6及以上的小版本、RDS for PostgreSQL 13及以上版本的所有小版本。
- 由于长事务导致的创建逻辑复制槽失败或逻辑复制槽不存在的问题,需要通过重置任务来重新启动。
|
增量同步过程须知 |
- 请勿修改源库和目标库的端口号,请勿修改、删除源库和目标库连接用户的密码、权限,否则可能导致任务失败。
- 请勿删除源数据库表的主键,否则可能导致增量数据缺失或任务失败。
- 请勿修改源数据库中表的replica identity属性,否则可能导致增量数据缺失或任务失败。
- 请勿在Kafka上删除接收DRS数据的topic,否则可能导致任务失败。
- 库级同步时,源库新增无主键表时,请务必同时将该无主键表的replica identity属性设置为full,然后再写入数据,否则可能导致增量数据缺失或任务失败。
- 库级同步时,源库新增主键表时,如果主键列toast属性为main、external、extended时,请务必同时将该表的replica identity属性设置为full,然后再写入数据,否则可能导致数据不一致或任务失败。
- 增量同步过程中暂停、任务异常续传,目标Kafka中可能会出现重复数据,请使用Kafka数据中的id字段进行去重。
|
结束任务须知 |
- 正常结束任务:
- 全量+增量实时同步任务正常结束时,将自动删除任务在源库创建的流复制槽。
- 强制结束任务:
- 强制结束全量+增量实时同步任务,需要手动删除源库可能残留的复制槽,可参考PostgreSQL为源强制结束任务章节的指导进行操作。
- 逻辑复制槽命名规则为“drs_唯一性标识”,其中唯一性标识需要将任务node id中的“-”替换为“_”获取。node id可在DRS任务同步日志页面查看task node id is ***日志找到。
|