类别 | 说明 |
支持版本 | 1. 源库 自建数据库 PostgreSQL 9.4、9.5、9.6、10-17 第三方云厂商 9.4、9.5、9.6、10-17 阿里云 RDS PostgreSQL AWS RDS PostgreSQL 华为云 RDS for PostgreSQL 云数据库 PostgreSQL 9.4、9.5、9.6、10-17(相同主账号之间迁移/不同主账号之间迁移) 2. 目标库 云数据库 PostgreSQL 9.4、9.5、9.6、10-17 |
源库影响 | 1. DTS 在执行全量数据迁移时,会占用一定源端实例资源,可能会导致源实例负载上升,增加数据库自身压力。如果您的数据库配置过低,建议您在业务低峰期进行迁移。 2. 实际迁移过程中,迁移速率会受源端的读取性能、源端与目标端实例间网络带宽、目标端实例的规格性能等因素影响而不同。迁移并发度由目标端实例规格的核心数决定,如目标端实例为2核,并发度则为2。 |
迁移对象 | 相互关联的数据对象需要同时迁移,否则会导致迁移失败。常见的关联关系:视图引用表、视图引用视图、存储过程/函数/触发器引用视图/表、主外键关联表等。 |
高级迁移对象 | 默认迁移全部高级对象,包括存储过程、函数、外键。 高级对象的迁移是一次性动作,仅支持迁移在任务启动前源库中已有的高级对象。 存储过程、函数和外键,在结构迁移阶段进行迁移。 |
源库要求 | 迁移类型选择全量 + 增量迁移时,源数据库中的表必须有主键,否则会出现源库和目标库数据不一致,对于无主键的表,建议选择全量迁移。 |
目标库要求 | 如果进行整个实例迁移,目标库中不能存在与源库同名的用户和角色。 |
网络说明 | 1. 配置迁移任务时,源库地址需要使用能够直接连接到 PostgreSQL 实例的 IP 和 Port,不能使用代理如 pgpool 等 proxy 的 IP 和 Port。 2. 为保障迁移效率,CVM 自建实例迁移不支持跨地域迁移。如需要跨地域迁移,请选择公网接入方式。 |
支持的 SQL | 1. DDL TABLE:CREATE TABLE、ALTER TABLE、DROP TABLE、TRUNCATE TABLE、RENAME TABLE VIEW:CREATE VIEW、ALTER VIEW、DROP VIEW INDEX:CREATE INDEX、DROP INDEX TYPE:CREATE TYPE、DROP TYPE SEQUENCE:CREATE SEQUENCE、DROP SEQUENCE 说明: 只有在整库迁移时支持 FUNCTION、PROCEDURE、TRIGGER 对象的 DDL 操作。 |
操作限制 | 1. 在结构迁移、全量迁移和增量迁移阶段,请勿执行 DDL 操作、大对象操作,否则会导致迁移数据不一致。 2. 迁移过程中请勿修改、删除源数据库和目标数据库中用户信息(包括用户名、密码和权限)和端口号。 3. 迁移任务完成,单击完成按钮后,才可以进行以下操作: 设置 GENERATED ALWAYS AS IDENTITY 。说明: 需含有自增列的表。
根据源库序列的 last_value 更新目标库对应序列的 last_value。对象注释的迁移。 清理源库和目标库创建的迁移任务 SCHEMA。 选择增量迁移的场景会删除源库创建的发布和复制槽。 4. 增量 DDL。 不支持修改对象 SCHEMA。 执行 DROP 语句时如果删除多个对象,需要所有对象是同一个 SCHEMA,否则需要为每个对象指定 SCHEMA。不支持 CREATE SCHEMA 语句中通过表元素子句创建表。5. 增量 DDL 不会迁移在 plsql 中(匿名块、procedure 和 function )执行的 DDL。 6. 不支持表名的重命名 7. 暂不支持在匿名块中通过 EXECUTE FORMAT(CREATE TABLE) 方式创建表操作。8. 在结构初始化之后和全量导出之前,不支持 CREATE TABLE 操作,否则会出现“该表在目标端不存在”的报错。 9. 由于腾讯云 PostgreSQL 数据库的 postgres 用户不提供给用户使用,所以源库使用 postgres 用户创建的对象同步到目标库后,对象的 owner 会变成目标库迁移账号。 |
数据迁移说明 | DTS 在启动数据迁移任务时,如果选择增量迁移,会对待迁移的表设置复制属性 ALTER TABLE XXX REPLICA IDENTITY FULL,该操作会锁表,如果表上有长事务会导致该表长时间被锁,进而影响源库业务。为降低对源库业务的影响,建议避免源库存在锁表操作,并在业务低峰期启动任务,或者手动执行上述 SQL 后,再启动任务。DTS 在启动数据迁移任务时,如果数据库实例存在未提交的长事务,则会创建复制槽 slot 超时,进而导致任务失败。 |