Docs 菜单
Docs 主页
/
Relational Migrator
/ /

配置 PostgreSQL 的迁移先决条件

在此页面上

  • 开始之前
  • 步骤
  • 了解详情

要从 PostgreSQL 源数据库运行迁移作业,可能需要对数据库进行一些配置更改。如果Relational Migrator确定数据库需要更改配置,它会自动生成包含所需更改的SQL脚本。建议让数据库管理员 (数据库管理员 (DBA))查看此脚本中的命令并在数据库服务器上执行这些命令。这些说明为两种类型的迁移作业配置 PostgreSQL:

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

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

如果 PostgreSQL 配置为集群,Relational Migrator 必须连接到主服务器。

对于针对 PostgreSQL 的快照作业,服务帐户需要模式 USAGE和表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

如果您使用的是Amazon Web Services RDS 上托管的 PostgreSQL,则必须设立rds.logical_replication 参数设置为 1。 有关详细信息,请参阅 在 上启用逻辑复制Amazon Web Services 。设置参数后,必须重新启动数据库实例

提示

您可以使用以下查询来检查Amazon Web Services 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...

Relational Migrator依赖开源 DebeziumConnector来捕获行级更改。 有关更多详细信息,请参阅 Debezium PostgreSQL。

后退

Oracle