设置 pglogical 扩展 - Amazon Relational Database Service

设置 pglogical 扩展

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

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

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

设置 pglogical 扩展
  1. 登录 AWS 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 扩展

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

  1. 使用以下 AWS 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. 使用以下 AWS 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. 使用以下 AWS 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. 使用以下 AWS CLI 命令重启 RDS for PostgreSQL 数据库实例

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