用户工具

站点工具


doc:d:pgsql_hot_standby

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

doc:d:pgsql_hot_standby [2011/04/11 00:19]
dotyao 创建
doc:d:pgsql_hot_standby [2012/03/13 17:50] (当前版本)
redv [四、基础备份:] loca->local
行 1: 行 1:
 +====== PostgreSQL 9 Hot Standby 实践 ======
  
 +注:PostgreSQL 9 Hot Standby的关键点有2个,工作模式和操作顺序,除了概念的理解。
 +====== 一、安装PostgreSQL 9 ======
 +<​code>​
 +portmaster -d databases/​postgresql90-server
 +修改/​etc/​login.conf
 +postgres:\
 +:​lang=en_US.UTF-8:​\
 +:​setenv=LC_COLLATE=C:​\
 +:​tc=default:​
 +执行cap_mkdb /​etc/​login.conf
 +</​code>​
 +====== 二、初始化主数据库 ======
 +<​code>​
 +su pgsql
 +/​usr/​local/​bin/​initdb -D /​usr/​local/​pgsql/​data --locale=C -E UTF8 初始化
 +修改postgresql.conf:
 +wal_level = hot_standby
 +max_wal_senders = 1
 +wal_keep_segments = 32
 +log_destination = '​stderr'​
 +logging_collector = on
 +log级别根据需要设置,建议debug1下一级别即可(log,​info)
 +修改pg_hba.conf:
 +host replication pgsql 127.0.0.1/​32 trust
 +</​code>​
 +====== 三、启动主数据库 ======
 +<​code>​
 +/​usr/​local/​bin/​postmaster -D /​usr/​local/​pgsql/​data
 +看看日志,已经起来:
 +LOG: database system is ready to accept connections
 +LOG: autovacuum launcher started
 +</​code>​
 +====== 四、基础备份: ======
 +<​code>​
 +流程:在主数据库服务器执行 pg_start_backup(),复制data目录,再执行
 +pg_stop_backup()。
 +$ psql -d postgres
 +postgres=# select pg_start_backup(''​);​
 +这个时候,所有请求在写日志之后不会再刷新到磁盘。除非pg_stop_backup()这个函数
 +被执行。
 +接下来,把data目录直接复制data2,这个目录将通过scp、rsync等工具同步到节点服
 +务器,data2就是基础备份的内容。
 +cd /​usr/​local/​pgsql
 +cp -R data/ data2
 +</​code>​
 +====== 五、创建节点数据库(Standby) ======
 +<​code>​
 +cd data2
 +修改postgres.conf
 +port = 54321
 +hot_standby = on
 +增加recovery.conf
 +standby_mode = '​on'​
 +primary_conninfo = '​host=127.0.0.1 port=5432 user=pgsql'​
 +rm postmaster.pid
 +</​code>​
 +====== 六、停止主数据库基础备份 ======
 +<​code>​
 +postgres=# select pg_stop_backup();​
 +现在数据会写入磁盘,当节点服务器启动后,他会自动连接到主服务器,拉取主服务器
 +自基础备份后的事务日志。然后,对事务日志进行重演,从而达到恢复数据的效果。
 +</​code>​
 +====== 七、启动节点数据库 ======
 +<​code>​
 +/​usr/​local/​bin/​postmaster -D /​usr/​local/​pgsql/​data2
 +看看日志:
 +DEBUG: initializing for hot standby
 +LOG: streaming replication successfully connected to primary
 +DEBUG: end of backup reached
 +LOG: consistent recovery state reached at 0/3000000
 +LOG: database system is ready to accept read only connections
 +</​code>​
 +====== 八、测试。 ======
/data/vhosts/wiki-data/pages/doc/d/pgsql_hot_standby.txt · 最后更改: 2012/03/13 17:50 由 redv