首页 > 代码库 > postgresql同步流复制搭建
postgresql同步流复制搭建
节点 | IP | 角色 |
master | 10.10.100.1 | master |
standby1 | 10.10.100.2 | standby1 |
standby2 | 10.10.100.3 | standby2 |
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同步流复制搭建
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。