设置 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 扩展
登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 RDS for PostgreSQL 数据库实例。
-
打开 的配置选项卡。RDS for PostgreSQL 数据库实例的 Configuration(配置)选项卡。在实例详细信息中,找到 Parameter group(参数组)链接。
-
选择此链接以打开与您的 RDS for PostgreSQL 数据库实例关联的自定义参数。
-
在 Parameters(参数)搜索字段中,键入
shared_pre
以查找shared_preload_libraries
参数。 -
选择 Edit parameters(编辑参数)以访问属性值。
-
将
pglogical
添加到 Values(值)字段的列表中。使用逗号分隔值列表中的项目。 -
找到
rds.logical_replication
参数并将其设置为1
,以开启逻辑复制。 -
重启 RDS for PostgreSQL 数据库实例,以使更改生效。
-
当实例可用时,可以使用
psql
(或 pgAdmin)连接到 RDS for PostgreSQL 数据库实例。psql --host=
111122223333
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
--password --dbname=labdb
-
要验证 pglogical 是否初始化,可以运行以下命令。
SHOW shared_preload_libraries;
shared_preload_libraries -------------------------- rdsutils,pglogical (1 row)
-
验证启用逻辑解码的设置,如下所示。
SHOW wal_level;
wal_level ----------- logical (1 row)
-
创建扩展,如下所示。
CREATE EXTENSION pglogical;
EXTENSION CREATED
-
选择 Save changes(保存更改)。
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
从数据库列表中选择 RDS for PostgreSQL 数据库实例以将其选中,然后从 Actions(操作)菜单中选择 Reboot(重启)。
设置 pglogical 扩展
要使用 AWS CLI 设置 pglogical,您可以调用 modify-db-parameter-group 操作来修改自定义参数组中的某些参数,如以下过程所示。
-
使用以下 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" \ --regionaws-region
-
使用以下 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" \ --regionaws-region
-
使用以下 AWS CLI 命令重启 RDS for PostgreSQL 数据库实例,以便初始化 pglogical 库。
aws rds reboot-db-instance \ --db-instance-identifier
your-instance
\ --regionaws-region
-
当实例可用时,使用
psql
连接到 RDS for PostgreSQL 数据库实例。psql --host=
111122223333
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
--password --dbname=labdb
-
创建扩展,如下所示。
CREATE EXTENSION pglogical;
EXTENSION CREATED
-
使用以下 AWS CLI 命令重启 RDS for PostgreSQL 数据库实例。
aws rds reboot-db-instance \ --db-instance-identifier
your-instance
\ --regionaws-region