文档菜单
文档首页
/
关系迁移器
/ /

为 PostgreSQL 配置迁移先决条件

在本页中

  • 开始之前
  • 步骤
  • 了解更多

要从 PostgreSQL 源数据库运行迁移作业,数据库可能需要进行一些配置更改。如果关系迁移器确定数据库需要配置更改,它将自动生成一个包含所需更改的 SQL 脚本。建议数据库管理员(DBA)审查此脚本中的命令,并在数据库服务器上执行它们。以下说明配置 PostgreSQL 以支持两种类型的迁移作业

  • 快照迁移作业迁移所有数据然后停止。

  • 持续迁移作业运行快照然后进入 CDC 阶段以持续复制数据更改。

如果 PostgreSQL 已配置为集群,关系迁移器必须连接到主服务器。

针对PostgreSQL的快照作业,服务帐户需要模式使用和表SELECT权限。

GRANT USAGE ON SCHEMA <schema_name> TO <database_user_name>;
GRANT SELECT ON TABLE <schema_name>.<table_name> TO <database_user_name>;
1

逻辑复制可能默认未启用。要启用逻辑复制,更改wal_level 配置在 postgresql.conf 配置文件 中。修改配置文件后,您 必须重启数据库实例

wal_level = logical

如果您使用的是 AWS RDS 上的 PostgreSQL,您必须将 rds.logical_replication 参数设置为 1。有关详细信息,请参阅 在 AWS 上启用逻辑复制。设置参数后,您 必须重启数据库实例

提示

您可以使用以下查询来检查您的 AWS RDS 实例是否启用了逻辑复制

SELECT name,setting
FROM pg_settings
WHERE name IN ('wal_level','rds.logical_replication');
2
  1. 创建具有 REPLICATIONLOGIN 数据库权限的角色

    CREATE ROLE <role> REPLICATION LOGIN;
  2. SELECT 表和 USAGE 模式权限授予该角色。每个迁移表都需要一个 GRANT SELECT 语句

    GRANT USAGE ON SCHEMA <schema> TO <role>;
    GRANT SELECT ON <schema>.<table> TO <role>;
    -- ADDITIONAL GRANT SELECT STATEMENTS...
  3. 将角色授予服务帐户

    <original_owner> 替换为参与表的拥有者。

    GRANT <role> TO <original_owner>;
    GRANT <role> TO <database_user_name>;
3

每个迁移表都需要一个 ALTER TABLE 语句

ALTER TABLE <schema>.<table> OWNER TO <role>;
-- ADDITIONAL ALTER TABLE STATEMENTS...
4

创建一个发布在迁移中,每个表必须在FOR语句中指定,并用逗号分隔

CREATE PUBLICATION "MIGRATOR_<name>_PUBLICATION"
FOR TABLE "<schema>"."<table1>","<schema>"."<table2>";
5

每个迁移表都需要一个 ALTER TABLE 语句

ALTER TABLE <schema>.<table> REPLICA IDENTITY FULL;
-- ADDITIONAL ALTER TABLE STATEMENTS...

关系型迁移器依赖于开源的Debezium连接器来捕获行级更改。有关更多详细信息,请参阅Debezium PostgreSQL。

返回

Oracle