本文介绍如何查询和修改RDS PostgreSQL实例的数据复制方式,提高云数据库性能或可用性。
前提条件
实例为PostgreSQL高可用系列(云盘)。
如需修改数据复制方式为半同步,则需要实例内核版本为20220228及以上版本。如何升级内核小版本,请参见升级内核小版本。
背景信息
RDS PostgreSQL高可用云盘实例支持修改数据复制方式,根据您对数据库可用性及性能要求,实现不同的实例保护级别。
不同复制方式对应的保护级别情况如下:
数据复制方式 | 保护级别 | 说明 |
异步模式(默认) | 最高性能 | 适合数据持久性要求不高的场景,响应速度最快。 |
强同步模式 | 最大保护 | 适合数据持久性要求极高的场景,响应速度较慢。 |
半同步模式 | 最高可用性 | 兼顾数据持久性和响应速度。 |
查询数据复制方式
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏中,单击服务可用性。
在实例可用性区域即可查看数据复制方式。
修改数据复制方式
通过控制台修改
通过调整参数修改
您可以通过修改参数synchronous_commit(同步提交参数)、rds_sync_replication_timeout(同步复制超时时间参数)和synchronous_standby_names(同步的备实例名称)设置实例的数据复制方式。
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏中单击参数设置。
在可修改参数标签页,找到参数synchronous_commit、rds_sync_replication_timeout和synchronous_standby_names。
单击修改参数值并单击确定。
不同数据复制方式需要设置的参数取值如下:
数据复制方式
参数配置
异步模式
synchronous_commit = off
说明synchronous_commit = off时,rds_sync_replication_timeout无效。
强同步模式
synchronous_commit = remote_write
rds_sync_replication_timeout = 0
synchronous_standby_names = 'standby1'
重要如果您有自建的从库,请不要命名为standby1,因为synchronous_standby_names默认值为standby1。如果因为重名导致同步复制或半同步复制选择的节点并不是RDS内的备实例,发生主备切换时,RDS将不予保证数据0丢失。
半同步模式
说明如需修改数据复制方式为半同步,则需要实例内核版本为20220228及以上版本。如何升级内核小版本,请参见升级内核小版本。
synchronous_commit = remote_write
rds_sync_replication_timeout > 0
说明rds_sync_replication_timeout的值表示数据同步的超时时长,取值范围为0~300000,单位为ms,建议设置为500。如果同步超时,会降级为最高性能级别(异步模式),等数据同步后,再次回到高可用级别(半同步模式)。
synchronous_standby_names = 'standby1'
重要如果您有自建的从库,请不要命名为standby1,因为synchronous_standby_names默认值为standby1。如果因为重名导致同步复制或半同步复制选择的节点并不是RDS内的备实例,发生主备切换时,RDS将不予保证数据0丢失。
单击提交参数。