为 CDC 配置 Amazon RDS PostgreSQL 数据库

如需将变更数据捕获 (CDC) 更新流式传输到 受支持的目标(例如 BigQuery 或 Cloud Storage),您可以将 Amazon RDS for PostgreSQL 数据库连接到 Datastream。如需准备源实例,您可以启用 rds.logical_replication 参数,创建发布内容和复制槽,并配置 Datastream 用户。

创建参数组

  1. 启动 Amazon RDS 信息中心。

  2. 在抽屉式导航栏中,点击参数组,然后点击创建参数组。此时会显示创建参数组页面。

  3. 选择与您的数据库匹配的数据库系列,为参数组提供名称和说明,然后点击创建 。

  4. 选中新建参数组左侧的复选框,然后在参数组操作下点击修改。

  5. 为您的组设置以下参数。

    参数值
    rds.logical_replication1
  6. 点击保存更改 。

配置来源数据库

  1. 启动 Amazon RDS 信息中心。

  2. 在抽屉式导航栏 中,点击数据库 。

  3. 选择您的来源,然后点击修改 。

  4. 前往其他配置 部分。

  5. 选择您创建的参数组。

  6. 点击继续 。

  7. 在安排修改时间 下,选择立即应用 。

验证已将参数组分配给数据库实例

  1. 启动 Amazon RDS 信息中心。

  2. 在抽屉式导航栏中,点击数据库,然后选择您的数据库实例。

  3. 点击配置标签页。

  4. 验证您能看到自己创建的参数组,并且其状态为 pending-reboot。

  5. 重新启动数据库实例以完成配置。如需重新启动实例,请执行以下步骤:

    1. 在抽屉式导航栏中,点击实例。
    2. 选择您的数据库实例。
    3. 从实例操作 菜单中选择重新启动 。

创建发布内容和复制槽

  1. 创建发布内容。建议您仅为要复制的表创建发布内容。这样,Datastream 就可以只读取相关数据,并降低数据库和 Datastream 的负载:

    CREATE PUBLICATION PUBLICATION_NAME
    FOR TABLE SCHEMA1.TABLE1, SCHEMA2.TABLE2;

    替换以下内容:

    • PUBLICATION_NAME:发布内容的名称。您需要在 Datastream 数据流创建向导中创建数据流时提供此名称。
    • SCHEMA:包含表的架构的名称。
    • TABLE:要复制的表的名称。

    您还可以为数据库中的所有表创建发布内容。请注意,这种方法会增加源数据库和 Datastream 的负载:

    CREATE PUBLICATION PUBLICATION_NAME FOR ALL TABLES;
    
  2. 输入以下 PostgreSQL 命令,创建复制槽:

    SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('REPLICATION_SLOT_NAME', 'pgoutput'); 

    替换以下内容:

    • REPLICATION_SLOT_NAME:复制槽的名称。您需要在 Datastream 数据流创建向导中创建数据流时提供此名称。

创建 Datastream 用户

  1. 如需创建 Datastream 用户,请输入以下 PostgreSQL 命令:

    CREATE USER USER_NAME WITH ENCRYPTED PASSWORD 'USER_PASSWORD';
    

    替换以下内容:

    • USER_NAME:您要创建的 Datastream 用户的名称。
    • USER_PASSWORD:您要创建的 Datastream 用户的登录密码。
  2. 向您创建的用户授予以下特权:

    GRANT RDS_REPLICATION TO USER_NAME;
    GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO USER_NAME;
    GRANT USAGE ON SCHEMA SCHEMA_NAME TO USER_NAME;
    ALTER DEFAULT PRIVILEGES IN SCHEMA SCHEMA_NAME
      GRANT SELECT ON TABLES TO USER_NAME;
    

    替换以下内容:

    • USER_NAME:您要向其授予特权的用户。
    • SCHEMA_NAME:您要向其授予 特权的架构的名称。

后续步骤