postgres11.1主从流复制,centos7

本文详细介绍了如何搭建PostgreSQL的多节点环境,包括主库和从库的配置,如设置postgres.conf和pg_hba.conf文件,创建同步用户,使用pg_basebackup创建从库,以及从库的启动和状态检查。重点强调了同步复制和热备的相关参数设置。

目录

一、多节点搭建pg单库

二、主库postgres.conf:

三、pg_hba.conf

3.1去数据库先建立同步用户:

3.2给pg_hba.conf加

四、从库

4.1 

4.2 从库配置文件设置1

4.3 从库配置文件设置2

4.4 启动从库

4.5 检查



一、多节点搭建pg单库

装机3大项、网卡、互信、yum等...

二、主库postgres.conf:

listen_addresses = '*'       # 监听的IP地址
wal_level = hot_standby      # 启用热备模式
synchronous_commit = on      # 开启同步复制
max_wal_senders = 32         # 同步最大的进程数量
wal_sender_timeout = 60s     # 流复制主机发送数据的超时时间
max_connections = 100        # 最大连接数,从库的max_connections必须要大于主库的
wal_keep_segments = 256     # 设置流复制保留的最多的xlog数目,不要设置太小导致WAL日志还没有来得及传送到standby就被覆盖。一个WAL文件默认16M
hot_standby = on              # "on" allows queries during recovery  设置为备库时是否支持可读
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

三、pg_hba.conf

3.1去数据库先建立同步用户:


CREATE ROLE replica login replication encrypted password 'replica';
SELECT usename from pg_user;
SELECT rolname from pg_roles;

3.2给pg_hba.conf加

host    replication      xxx        10.10.10.0/32       trust

四、从库

4.1 

先吧data下清空,然后:
pg_basebackup -D /usr/local/postgresql/data -h 主节点ip -p 5432 -U replica -X stream -P

4.2 从库配置文件设置1

vim /usr/local/postgresql/data/recovery.conf
standby_mode = on     #声明此节点为从库
primary_conninfo = 'host=192.168.79.110 port=5432 user=replica password=replica' #对应主库的连接信息
recovery_target_timeline = 'latest' #流复制同步到最新的数据

4.3 从库配置文件设置2

vim /usr/local/postgresql/data/postgresql.conf

max_connections = 1000             # 最大连接数,从节点需设置比主节点大
hot_standby = on                   # 开启热备
max_standby_streaming_delay = 30s  # 数据流备份的最大延迟时间
wal_receiver_status_interval = 1s  # 从节点向主节点报告自身状态的最长间隔时间
hot_standby_feedback = on          # 如果有错误的数据复制向主进行反馈

4.4 启动从库

4.5 检查

ps -ef | grep wal

or:

select usename "username"
    ,client_addr "client_addr"
    ,backend_start "backend_start"
    ,state "state"
    ,case 
        when state = 'startup' then '正在启动'
        when state = 'catchup' then '追赶主库'
        when state = 'streaming' then '流传送'
        when state = 'backup' then '发送备份'
        when state = 'stopping' then '发送停止'
     end "WAL状态"
    ,case 
        when sync_state = 'async' then '异步'
        when sync_state = 'potential' then '后备失效变同步'
        when sync_state = 'sync' then '同步'
        when sync_state = 'quorum' then '候选'
     end "同步状态名称"
    ,round(pg_wal_lsn_diff(pg_current_wal_lsn(),replay_lsn) /(1024 * 1024),2) as "同步延迟_MB"
from pg_stat_replication;
select 
    sender_host,sender_port
    ,status "WAl接收状态"
    ,last_msg_send_time "接收到最后的消息发送时间"
    ,last_msg_receipt_time "接收到最后的消息接收时间"
from pg_stat_wal_receiver;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值