PostgreSQL 9.4 流复制环境搭建

来源:互联网 发布:mac pdf编辑 编辑:程序博客网 时间:2024/06/05 05:18
此方法并不完全属于热备,因为主机宕掉备机无法自动替换,备机只是起到数据自动备份的功能,如果想实现自动备份需要使用pgpool
环境介绍
IP角色192.169.77.211主192.169.77.215备
首先、务必保证两台都安装有相同版本的Postgresql数据库,两个机器的postgres用户做ssh免密码
1、两台都安装rsync
yum install rsync
2、修改主机的postgresql.conf  在postgres数据库的data目录中
listen_addresses = '*' 
wal_level = hot_standby 
archive_mode = on 
archive_command = ' rsync -av --exclude postmaster.pid --exclude postgresql.conf --exclude pg_ident.conf --exclude pg_hba.conf /var/lib/pgsql/9.4/data/*  192.169.77.215:/var/lib/pgsql/9.4/data/' 
archive_timeout = 300 --这个是同步刷新时间单位是秒 意思是300秒同步一次
max_wal_senders = 1 
wal_keep_segments = 300   
3、修改备机的postgresql.conf  在postgres数据库的data目录中
listen_addresses = '*'
 hot_standby = on 
4、备机在data目录创建recovery.conf文件,内容为:
restore_command = 'cp /var/lib/pgsql/archive/%f %p' 
standby_mode = 'on'  
primary_conninfo = 'host=192.169.77.211 port=5432 user=postgres password=postgres'
5、备机创建archive目录,并授权 
# mkdir /var/lib/pgsql/archive 
# chmod 777 /var/lib/pgsql/archive/
6、修改pg_hba.conf 文件让两个机器都可以免密码
7、主机启动数据库然后进入psql执行 select pg_start_backup('base'); 然后在退出psql 执行
 rsync -av --exclude postmaster.pid --exclude postgresql.conf --exclude pg_ident.conf --exclude pg_hba.conf /var/lib/pgsql/9.4/data/*  192.169.77.215:/var/lib/pgsql/9.4/data/
再回到psql 执行select pg_stop_backup();  看提示按Ctrl+C终止即可
8、备机启动数据库 此时可以看到同步过来的数据,以后会每300秒同步一次
原创粉丝点击