原文:http://www.rassoc.com/gregr/weblog/2013/02/16/zero-to-postgresql-streaming-replication-in-10-mins/
假设主数据库IP为1.2.3.4 备份数据库IP为5.6.7.8
先到主数据库创建一个新的,只有备份权限的用户
psql -c "CREATE USER replicator REPLICATION LOGIN ENCRYPTED PASSWORD 'password';"
修改主数据库postgresql.conf
listen_address = '*' make sure we're listening as appropriate
wal_level = hot_standby
max_wal_senders = 3
checkpoint_segments = 8
wal_keep_segments = 8
修改主数据库pg_hba.conf, 加上这一行
host replication replicator 5.6.7.8 md5
重启主数据库
现在去配置备份数据库
修改postgresql.conf
wal_level = hot_standby
max_wal_senders = 3
checkpoint_segments = 8
wal_keep_segments = 8
hot_standby = on
基本配置完成了,现在用pg_basebackup把主数据库与备份数据库同步。
先把本地的数据给删除了或者自己备份到其它地方
rm -rf /var/lib/postgresql/9.2/main
然后到主服务器同步
pg_basebackup -h 1.2.3.4 -D /var/lib/postgresql/9.2/main -U replicator -v –P
然后在main文件夹下新建个名为recovery.conf的配置文件,里面的内容如下
standby_mode = 'on'
primary_conninfo = 'host=1.2.3.4 port=5432 user=replicator password=password'
trigger_file = '/tmp/postgresql.trigger'
然后重启服务,这样完成了整个热备份。
你可以到主数据库下使用下面的命令来查看备份服务器的状态
psql -x -c "select * from pg_stat_replication;"