postgresql同步流复制搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql同步流复制搭建相关的知识,希望对你有一定的参考价值。

节点IP角色
master10.10.100.1master
standby110.10.100.2standby1
standby210.10.100.3standby2

    master上创建流复制所需要的用户。

CREATE ROLE replication WITH REPLICATION PASSWORD ‘replication‘ LOGIN;

    修改master的pg_hba.conf文件,设置replication用户远程访问权限

## vim /data/pgsql/data/pg_hba.conf,追加下面一行
host    replication     replication        10.10.0.0/16         md5

    master上设置与复制相关的参数

wal_level = hot_standby
max_wal_senders = 5
wal_keep_segments = 32
synchronous_standby_names = ‘standby01,standby02‘

    master上重启pgsql

/etc/init.d/postgresql-9.5 restart

    两个standby上都需要从master上获取一个基础的全备

pg_basebackup -h 10.10.100.1 -D /var/lib/pgsql/9.5/data/ -P -U replication -R  --xlog-method=stream

     两个standby上都需要修改standby节点上的postgresql.conf文件,设置备库为standby的状态

## vim /data/pgsql/data/postgresql.conf
hot_standby = on

     修改standby1的recovery.c文件,设置master节点的同步信息及trigger文件

standby_mode = ‘on‘
primary_conninfo = ‘application_name=standby01 user=replication password=replication host=10.10.100.1 port=5432 sslmode=prefer sslcompression=1 krbsrvname=postgres‘
trigger_file = ‘/data/pgsql/data/postgresql.trigger.1973‘

     修改standby1的recovery.conf文件,设置master节点的同步信息及trigger文件

standby_mode = ‘on‘
primary_conninfo = ‘application_name=standby02 user=replication password=replication host=10.10.100.1 port=5432 sslmode=prefer sslcompression=1 krbsrvname=postgres‘

    standby上重启pgsql

/etc/init.d/postgresql-9.5 restart

    可以在master上创建一张测试表并插入数据,来验证standby上是否同步过来数据。当master挂掉之后,在standby上创建trigger_file参数声明的文件,就会触发standby的激活,会自动把standby提升为master。

本文出自 “勇敢向前,坚决向左” 博客,谢绝转载!

以上是关于postgresql同步流复制搭建的主要内容,如果未能解决你的问题,请参考以下文章

来了!PostgreSQL 同步流复制原理和代码浅析,请签收

postgreSQL数据库同步流复制和异步流复制控制

PostgreSQL的流复制搭建

postgresql + pgpool 构建容灾高可用集群(数据同步流复制/主备自动切换)

PostgreSQL 12 流复制环境搭建

postgresql异步流复制搭建