本文介绍如何修改RDS PostgreSQL实例的数据复制方式,提高云数据库性能或可用性。

前提条件

  • 实例为PostgreSQL高可用版(云盘)。
  • 如需修改数据复制方式半同步,则需要实例内核版本为20220228及以上版本。如何升级内核小版本,请参见升级内核小版本

背景信息

RDS PostgreSQL高可用云盘实例支持修改数据复制方式,根据您对数据库可用性及性能要求,实现不同的实例保护级别。

不同复制方式对应的保护级别情况如下:
数据复制方式 保护级别 说明
异步模式(默认) 最高性能 适合数据持久性要求不高的场景,响应速度最快。
强同步模式 最大保护 适合数据持久性要求极高的场景,响应速度较慢。
半同步模式 最高可用性 兼顾数据持久性和响应速度。

您可以通过控制台修改调整参数修改数据复制方式。

通过控制台修改

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏中单击服务可用性
  3. 单击修改数据复制方式
    修改数据复制方式
  4. 选择数据复制方式
    数据复制方式
    注意 如需修改数据复制方式半同步,则需要实例内核版本为20220228及以上版本。如何升级内核小版本,请参见升级内核小版本
  5. 单击确定

通过调整参数修改

您可以通过修改参数synchronous_commit(同步提交参数)、rds_sync_replication_timeout(同步复制超时时间参数)和synchronous_standby_names(同步的备实例名称)设置实例的数据复制方式。

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏中单击参数设置
  3. 可修改参数标签页,找到参数synchronous_commitrds_sync_replication_timeoutsynchronous_standby_names
  4. 单击笔修改参数值并单击确定
    不同数据复制方式需要设置的参数取值如下:
    数据复制方式 参数配置
    异步模式 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丢失。
  5. 单击提交参数
    提交参数