本文介绍当迁移或同步的目标库类型为 PostgreSQL(如火山引擎版 PostgreSQL 或自建 PostgreSQL)时,支持的数据库以及使用限制详情。
支持的数据库
源库 | 目标库 | 支持版本 | 迁移类型 |
---|
火山引擎版 PostgreSQL 公网自建 PostgreSQL 专有网络 PostgreSQL
| 火山引擎版 PostgreSQL 公网自建 PostgreSQL 专有网络 PostgreSQL
| - PostgreSQL 11
- PostgreSQL 12
- PostgreSQL 13
- PostgreSQL 14
| |
使用限制
类型 | 说明 |
---|
源库限制 | 带宽要求:源库所属的服务器需具备足够出口带宽,否则将影响数据迁移速率。 待迁移的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标库中出现重复数据。 建议单任务表数量不超过 2 万,库数量不超过 50。如果有大批量表需要迁移,建议拆分成多个任务。 如需进行增量迁移: 用于数据迁移的账号需具备以下权限: 源库的操作限制如下:
|
其他限制 | 单个数据迁移任务只能迁移一个数据库,如需迁移多个数据库,您需要为每个数据库配置数据迁移任务。 在增量数据迁移过程中,如果迁移对象的粒度是模式(schema),那么需要确保待迁移表的表级复制标识 REPLICA IDENTITY 设置为 FULL 。如果在待迁移的模式中创建了新表或使用了 RENAME 命令重建了待迁移的表,那么您需要在向该表写入数据之前执行 ALTER TABLE schema.table REPLICA IDENTITY FULL; 命令。 说明 执行时将上述命令中的 schema 和 table 替换成真实的 schema 名和表名。 增量数据迁移期间,DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 执行数据迁移前需评估源库和目标库的性能,同时建议业务低峰期执行数据迁移。否则全量数据迁移时 DTS 占用源和目标库一定读写资源,可能会导致数据库的负载上升。 由于全量数据迁移会并发执行 INSERT 操作,导致目标库的表产生碎片,因此全量迁移完成后目标库的表存储空间会比源库的表存储空间大。 迁移前请确认源库和目标库字符串是否一致,否则可能会导致预检查失败。
|
特殊情况 | 当源库为自建 PostgreSQL,在执行迁移任务时,请勿对源库进行主备切换操作,否则将导致迁移任务失败。在迁移时如果源库执行了重启操作,迁移任务会暂时中断并自动尝试修复。如果任务长时间没恢复,请提交工单联系技术支持。 当您想跨账号迁移 PostgreSQL 且需要进行增量迁移时,建议在源端实例所属的账号下发起迁移任务,目标端可通过公网自建的形式完成任务迁移。 若源库是阿里云 PolarDB PostgreSQL,且目标库是火山引擎 PostgreSQL,在配置迁移任务时,请确保您使用的是 PolarDB PostgreSQL 的主地址而不是集群地址,否则会由于无法建立逻辑复制槽导致迁移失败。
|