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

如果您使用的是 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...

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

后退

Oracle