本文介紹如何查詢和修改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丟失。
單擊提交參數。