PostgreSQL实例间的双向同步 本页为使用数据传输服务DTS进行PostgreSQL实例间数据双向同步的详细介绍,包括双向同步支持的源库、目标库,支持的同步的SQL操作,数据库账号权限说明,源库、目标库要求,操作须知,冲突检测,操作步骤等。 支持的源和目标数据库 源数据库 目标数据库 RDS for PostgreSQL 自建PostgreSQL 9.6/10/11/12/13/14/15/16/17 RDS for PostgreSQL 自建PostgreSQL 9.6/10/11/12/13/14/15/16/17 说明 自建PostgreSQL/RDS PostgreSQL数据库版本为9.6/10/11/12/13/14/15/16/17,且源数据库和目标数据库的大版本需保持一致。 支持同步的SQL操作 DML INSERT、UPDATE、DELETE。 DDL 增量同步的DDL操作仅支持CREATE TABLE、ALTER TABLE、DROP TABLE、CREATE SEQUENCE、ALTER SEQUENCE、DROP SEQUENCE、CREATE VIEW、ALTER VIEW、DROP VIEW、CREATE INDEX、ALTER INDEX、DROP INDEX。 注意 暂不支持 CREATE TABLE 表名 AS SELECT 语句。 RENAME表名之后,向更改名称后的表插入新的数据时,DTS不会同步新的数据到目标库,因可能会导致任务中断异常或数据不一致。 暂不支持以注释开头的DDL语句的同步。 仅正向同步(源库同步至目标库)支持DDL,反向同步(目标库同步至源库)不支持同步DDL,将自动过滤DDL操作。 数据库账号及权限 数据库 所需权限 参考赋权语句 源库 正向同步(源库同步至目标库)所需权限: 模式的USAGE权限制。 待迁移对象的SELECT权限包含增量时,需具备SUPERUSER权限。 反向同步(目标库同步至源库)所需权限: schema的创建权限。 正向同步(源库同步至目标库)参考赋权语句: 授予username用户schemaname模式的usage权限: GRANT USAGE ON SCHEMA schemaname TO username; 授予username用户objectname对象的select权限: GRANT SELECT ON objectname TO username; 授予username用户超级权限: ALTER USER username WITH SUPERUSER; 反向同步(目标库同步至源库)参考赋权语句: 授予用户username在数据库databasename下的schema创建权限: GRANT CREATE ON DATABASE databasename TO username; 目标库 正向同步(源库同步至目标库)所需权限: schema的创建权限。 反向同步(目标库同步至源库)所需权限: 模式的USAGE权限。 待迁移对象的SELECT权限包含增量时,需具备SUPERUSER权限。 正向同步(源库同步至目标库)参考赋权语句: 授予用户username在数据库databasename下的schema创建权限: GRANT CREATE ON DATABASE databasename TO username; 反向同步(目标库同步至源库)参考赋权语句: 授予username用户schemaname模式的usage权限: GRANT USAGE ON SCHEMA schemaname TO username; 授予username用户objectname对象的select权限: GRANT SELECT ON objectname TO username; 授予username用户超级权限: ALTER USER username WITH SUPERUSER;