簡體   English   中英

PostgreSQL 流復制同步異步同時運行

[英]Run PostgreSQL streaming replication synchronous and asynchronous simultaneously

我正在使用 PostgreSQL 14 和 ubuntu 作為我的操作系統。

  • 我已經以同步模式完成了數據庫復制
  • 現在我想添加另一台服務器,主節點和 new_standby 節點之間的關系將是異步的。
  • 另一個問題,如何為不同的節點設置application_name? 我的兩個備用服務器有相同的application_name=14/main

誰能幫我解決這些問題?

是的,您可以同時運行它。

您應該在主節點中具有此配置:

listen_addresses = '*'
port = 5432
wal_level = hot_standby
max_wal_senders = 16
wal_keep_segments = 32
synchronous_commit = on
synchronous_standby_names = 'pgsql_0_node_0'

重新啟動節點以進行更改:

$ systemctl restart postgresql-14

創建復制角色:

$ CREATE ROLE replication_user WITH LOGIN PASSWORD 'PASSWORD' REPLICATION;

並在您的備用節點中進行配置:

兩個都:

wal_level = hot_standby
hot_standby = on

同步:

standby_mode = 'on'
promote_trigger_file='/tmp/failover_5432.trigger'
recovery_target_timeline=latest
primary_conninfo='application_name=pgsql_0_node_0 host=PRIMARY_NODE port=5432 user=replication_user password=PASSWORD'

用正確的值替換 PRIMARY_NODE、用戶和密碼。

異步:

promote_trigger_file='/tmp/failover_5432.trigger'
recovery_target_timeline=latest
primary_conninfo='application_name=pgsql_0_node_1 host=PRIMARY_NODE port=5432 user=replication_user password=PASSWORD'

用正確的值替換 PRIMARY_NODE、用戶和密碼。

重新啟動節點以進行更改:

$ systemctl restart postgresql-14

然后,您可以在主節點中運行此命令以查看復制節點:

$ SELECT pid,usename,application_name,state,sync_state FROM pg_stat_replication;

  pid  |     usename      | application_name |   state   | sync_state
-------+------------------+------------------+-----------+------------
 10951 | replication_user | pgsql_0_node_1   | streaming | async
 10952 | replication_user | pgsql_0_node_0   | streaming | sync
(2 rows)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM