pg12主从搭建(同步搭建)以及注意问题

默认情况下,我们搭建的主从是异步模式。如果希望搭建同步模式,需要主库修改:

synchronous_standby_names:指定需要同步的机器

synchronous_commit:on

其中synchronous_standby_names对应的是从库中的stb2:

primary_conninfo = 'application_name=stb2 host=172.30.78.7  port=5432 user=repuser password=repuser'

主库执行:

alter system set synchronous_standby_names='stb2'

ostgres=# select * from pg_stat_replication;
-[ RECORD 1 ]----+------------------------------
pid              | 119983
usesysid         | 18828
usename          | repuser
application_name | stb2
client_addr      | 172.30.78.2
client_hostname  | 
client_port      | 40044
backend_start    | 2020-10-20 18:06:19.578585+08
backend_xmin     | 2053276310
state            | streaming
sent_lsn         | 103/A9F3570
write_lsn        | 103/A9F3570
flush_lsn        | 103/A9F3570
replay_lsn       | 103/A9F3570
write_lag        | 
flush_lag        | 
replay_lag       | 
sync_priority    | 1
sync_state       | sync
reply_time       | 2020-10-20 18:29:11.648517+08

注意问题:

  之前sync_status一直都是async(异步模式),无法修改为同步模式。后面发现是因为主库和从库的postgres.aout.conf中相关参数不正确。比如:主库synchronous_standby_names和从库中rimary_conninfo = 'application_name=stb2 。这个需要注意

 

主从同步延迟查询:

SELECT  
       pg_wal_lsn_diff(A .c1, replay_lsn) /(1024 * 1024) AS slave_latency_MB,
       pg_wal_lsn_diff(A .c1, sent_lsn) /(1024 * 1024) AS send_latency_MB,
       pg_wal_lsn_diff(A .c1, flush_lsn) /(1024 * 1024) AS flush_latency_MB,
       state,
       backend_start,
       now()::timestamp with time zone
   FROM pg_stat_replication, pg_current_wal_lsn() AS A(c1)
   ORDER BY slave_latency_MB, send_latency_MB DESC
   LIMIT 1;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值