设置 pglogical 扩展 - Amazon Aurora

设置 pglogical 扩展

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

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

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

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

  2. 在导航窗格中,选择 Aurora PostgreSQL 数据库集群的写入器实例

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

  4. 选择此链接以打开与您的 Aurora PostgreSQL 数据库集群 关联的自定义参数。

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

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

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

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

  9. 重启 Aurora PostgreSQL 数据库集群的写入器实例,以使更改生效。

  10. 当实例可用时,可以使用 psql(或 pgAdmin)连接到 Aurora 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. 从数据库列表中选择 Aurora 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,以针对 Aurora 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 命令重启 Aurora PostgreSQL 数据库集群的写入器实例,以便初始化 pglogical 库。

    aws rds reboot-db-instance \ --db-instance-identifier writer-instance \ --region aws-region
  4. 当实例可用时,使用 psql 连接到 Aurora 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 命令重启 Aurora PostgreSQL 数据库集群的写入器实例

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