设置 pglogical 扩展 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

设置 pglogical 扩展

要在 RDS for PostgreSQL 数据库实例上设置 pglogical 扩展,首先要将 pglogical 添加到 RDS for PostgreSQL 数据库实例的自定义数据库参数组上的共享库中。您还需要将 rds.logical_replication 参数的值设置为 1,以开启逻辑解码。最后,在数据库中创建此扩展。您可以使用 Amazon Web Services Management Console或 Amazon CLI 执行这些任务。

您必须拥有 rds_superuser 角色的权限才能执行这些任务。

以下步骤假设您的 RDS for PostgreSQL 数据库实例与自定义 数据库参数组相关联。有关创建自定义数据库参数组的信息,请参阅 Amazon RDS 的参数组

设置 pglogical 扩展
  1. 登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 RDS for PostgreSQL 数据库实例

  3. 打开 的配置选项卡。RDS for PostgreSQL 数据库实例的 Configuration(配置)选项卡。在实例详细信息中,找到 Parameter group(参数组)链接。

  4. 选择此链接以打开与您的 RDS for PostgreSQL 数据库实例关联的自定义参数。

  5. Parameters(参数)搜索字段中,键入 shared_pre 以查找 shared_preload_libraries 参数。

  6. 选择 Edit parameters(编辑参数)以访问属性值。

  7. pglogical 添加到 Values(值)字段的列表中。使用逗号分隔值列表中的项目。

    添加了 pglogical 的 shared_preload_libraries 参数的图像。
  8. 找到 rds.logical_replication 参数并将其设置为 1,以开启逻辑复制。

  9. 重启 RDS for PostgreSQL 数据库实例,以使更改生效。

  10. 当实例可用时,可以使用 psql(或 pgAdmin)连接到 RDS for PostgreSQL 数据库实例

    psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
  11. 要验证 pglogical 是否初始化,可以运行以下命令。

    SHOW shared_preload_libraries; shared_preload_libraries -------------------------- rdsutils,pglogical (1 row)
  12. 验证启用逻辑解码的设置,如下所示。

    SHOW wal_level; wal_level ----------- logical (1 row)
  13. 创建扩展,如下所示。

    CREATE EXTENSION pglogical; EXTENSION CREATED
  14. 选择 Save changes(保存更改)

  15. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  16. 从数据库列表中选择 RDS for PostgreSQL 数据库实例以将其选中,然后从 Actions(操作)菜单中选择 Reboot(重启)。

设置 pglogical 扩展

要使用 Amazon CLI 设置 pglogical,您可以调用 modify-db-parameter-group 操作来修改自定义参数组中的某些参数,如以下过程所示。

  1. 使用以下 Amazon CLI 命令向 shared_preload_libraries 参数中添加 pglogical

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=shared_preload_libraries,ParameterValue=pglogical,ApplyMethod=pending-reboot" \ --region aws-region
  2. 使用以下 Amazon CLI 命令将 rds.logical_replication 设置为 1,以针对 RDS for PostgreSQL 数据库实例开启逻辑解码功能。

    aws rds modify-db-parameter-group \ --db-parameter-group-name custom-param-group-name \ --parameters "ParameterName=rds.logical_replication,ParameterValue=1,ApplyMethod=pending-reboot" \ --region aws-region
  3. 使用以下 Amazon CLI 命令重启 RDS for PostgreSQL 数据库实例,以便初始化 pglogical 库。

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region
  4. 当实例可用时,使用 psql 连接到 RDS for PostgreSQL 数据库实例

    psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
  5. 创建扩展,如下所示。

    CREATE EXTENSION pglogical; EXTENSION CREATED
  6. 使用以下 Amazon CLI 命令重启 RDS for PostgreSQL 数据库实例

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region