PostgreSQL主從配置


環境准備

服務器 IP 主機名
primary server 192.168.0.100 ecs-76d5-0001
standby server 192.168.0.101 ecs-76d5-0002

在兩個節點按照PostgreSQL安裝安裝好PG數據庫。

配置主服務器

主庫添加一個用於復制的用戶replica

CREATE ROLE replica REPLICATION LOGIN PASSWORD '123456';

主庫添加白名單

在文件 /var/lib/pgsql/13/data/pg_hba.conf 下添加:

host     all             all          192.168.0.1/24          trust
# 允許從庫通過replica用戶連接主庫
host   replication      replica       192.168.0.101/32          md

主庫創建歸檔目錄

mkdir /var/lib/pgsql/13/archivelog

主庫設置,開啟歸檔

/var/lib/pgsql/13/data/postgresql.conf

listen_addresses = '*' 
port = 5432
max_connections = 100 
max_wal_size = 1GB
min_wal_size = 80MB
log_timezone = 'Asia/Shanghai'
archive_mode = on
archive_command = 'test ! -f /var/lib/pgsql/13/archivelog/%f && cp %p /var/lib/pgsql/13/archivelog/%f'
wal_level = replica
max_wal_senders = 10
wal_sender_timeout = 60s

配置完重啟主庫

systemctl restart postgresql-13.service

從庫配置

同步主庫的data目錄

# 刪除從庫的data目錄
rm -rf /var/lib/pgsql/13/data
# 同步主庫的data目錄,pg_basebackup是PostgreSQL自帶的基礎備份工具
pg_basebackup -h 192.168.0.100 -U replica -D /var/lib/pgsql/13/data -X stream -P

修改data目錄的權限

chmod -R 700 /var/lib/pgsql/13/data

創建文件standby.signal(版本11開始)

/var/lib/pgsql/13/data/standby.signal
(pg版本11后已經廢除recovery.conf)

# 表示該節點是從庫
standby_mode = on 

修改從庫的postgresql.conf文件

primary_conninfo = 'host=192.168.0.100  port=5432  user=replica  password=123456'
hot_standby = on
max_standby_streaming_delay = 30s
wal_receiver_status_interval = 10s
hot_standby_feedback = on

重啟從庫

systemctl restart postgresql-13.service

驗證主庫從庫時候同步成功

主庫查詢

postgres=# select * from pg_stat_replication;
  pid  | usesysid | usename | application_name |  client_addr  | client_hostname | client_port |         backend_start         | 
backend_xmin |   state   | sent_lsn  | write_lsn | flush_lsn | replay_lsn | write_lag | flush_lag | replay_lag | sync_priority | 
sync_state |          reply_time           
-------+----------+---------+------------------+---------------+-----------------+-------------+-------------------------------+-
-------------+-----------+-----------+-----------+-----------+------------+-----------+-----------+------------+---------------+-
-----------+-------------------------------
 21228 |    16384 | replica | walreceiver      | 192.168.0.101 |                 |       39558 | 2022-03-22 23:16:39.903294+08 | 
         490 | streaming | 0/C000A58 | 0/C000A58 | 0/C000A58 | 0/C000A58  |           |           |            |             0 | 
async      | 2022-03-22 23:19:00.131093+08
(1 row)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM