您可以根据自身业务特点,设置RDS PostgreSQL实例的保护级别,提高云数据库可用性或性能。
前提条件
背景信息
您可以通过修改参数synchronous_commit(同步提交参数)、rds_sync_replication_timeout(同步复制超时时间参数)和synchronous_standby_names(同步的备实例名称)设置实例的保护级别。
RDS PostgreSQL的保护级别分为如下三类:
- 最高性能(默认)
也称异步模式,适合数据持久性要求不高的场景,响应速度最快。参数设置为: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丢失。 - 高可用
也称半同步模式,兼顾数据持久性和响应速度。参数设置为:
- synchronous_commit = remote_write
- rds_sync_replication_timeout > 0说明 rds_sync_replication_timeout的值表示数据同步的超时时长,取值范围为0~300000,单位为ms。如果同步超时,会降级为最高性能级别(异步模式),等数据同步后,再次回到高可用级别(半同步模式)。