初始化 pgactive 扩展功能 - Amazon Relational Database Service

初始化 pgactive 扩展功能

要在 RDS for PostgreSQL 数据库实例上初始化 pgactive 扩展功能,请将参数 rds.enable_pgactive 的值设置为 1,然后在数据库中创建扩展。这样做会自动开启参数 rds.logical_replicationtrack_commit_timestamp 并将 wal_level 的值设置为 logical

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

您可以使用 AWS 管理控制台或 AWS CLI 创建所需的 RDS for PostgreSQL 数据库实例。以下步骤假设您的 RDS for PostgreSQL 数据库实例与自定义数据库参数组相关联。有关创建自定义数据库参数组的信息,请参阅Amazon RDS 的参数组

初始化 pgactive 扩展功能
  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

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

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

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

  5. 找到 rds.enable_pgactive 参数,并将其设置为 1 以初始化 pgactive 功能。

  6. 选择保存更改

  7. 在 Amazon RDS 控制台的导航窗格中,选择数据库

  8. 选择您的 RDS for PostgreSQL 数据库实例,然后从操作菜单中选择重启

  9. 确认数据库实例重启,以便您的更改生效。

  10. 当数据库实例可用时,您可以使用 psql 或任何其它 PostgreSQL 客户端连接到 RDS for PostgreSQL 数据库实例。

    以下示例假设 RDS for PostgreSQL 数据库实例有一个名为 postgres 的原定设置数据库。

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

    postgres=>SELECT setting ~ 'pgactive' FROM pg_catalog.pg_settings WHERE name = 'shared_preload_libraries';

    如果 pgactiveshared_preload_libraries 中,则前面的命令将返回以下内容:

    ?column? ---------- t
初始化 pgactive 扩展功能

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

  1. 使用以下 AWS CLI 命令将 rds.enable_pgactive 设置为 1,以初始化 RDS for PostgreSQL 数据库实例的 pgactive 功能。

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

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

    psql --host=mydb.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=master user --password=PASSWORD --dbname=postgres
  4. 要验证 pgactive 是否初始化,可以运行以下命令。

    postgres=>SELECT setting ~ 'pgactive' FROM pg_catalog.pg_settings WHERE name = 'shared_preload_libraries';

    如果 pgactiveshared_preload_libraries 中,则前面的命令将返回以下内容:

    ?column? ---------- t