postgresql9.1 streaming replication(热备份)

原文: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;"
posted @ 2013-07-03 17:24  Functional Life  阅读(227)  评论(0编辑  收藏  举报