Ubuntu下搭建postgresql主从服务器(方法2)
安装略
postgresql主服务器:
$ vi /home/postgresql/data/postgresql.conf
按a或i进入编辑模式
listen_addresses = ‘*’
wal_level = hot_standby (默认为注释的)
max_wal_senders = 5 (默认为注释,这个参数是控制主库最多可以有多少个并发的standby数据库)
wal_keep_segments = 32 (默认为注释,设置足够大的值,以防止主库生成wal日志太快,日志还没有来得
及传送到standby就会循环覆盖了)
按Esc键退出编辑
:wq (保存并退出)
$ vi /home/postgresql/data/pg_hba.conf
按a或i进入编辑模式
host replication postgres 10.0.0.3/32 md5 (md5是需要密码,trust是不需要密码)
按Esc键退出编辑
:wq (保存并退出)
$ psql
postgres=# create user yang superuser password '123456';
postgres=# \q
重启postgresql
$ netstat -ntpl | grep 5432
$ kill -9 上一步的pid
$ psql
postgres=# select pg_start_backup(''); 让主数据库处于备份状态
可再打开个窗口
# scp -r /home/postgresql/data postgres@10.0.0.3:/home/postgresql/data (建议操作前先将从服务器
的data的目录改名备份下)
postgres=# select pg_stop_backup(); 关闭主数据库的备份
postgresql从服务器:
$ vi /home/postgresql/data/postgresql.conf
按a或i进入编辑模式
hot_standby = on (默认为注释)
按Esc键退出编辑
:wq (保存并退出)
$ vi /home/postgresql/data/recovery.conf
按a或i进入编辑模式
standby_mode = 'on'
primary_conninfo = 'host=10.0.0.2 port=5432 user=yang password=123456'
按Esc键退出编辑
:wq (保存并退出)
$ rm -rf /home/postgresql/data/postmaster.pid
$ netstat -ntpl | grep 5432
$ kill -9 上一步的pid
$ postgres -D /home/postgresql/data
$ cat /home/postgresql/data/pg_log/postgresql-2015-01-14_180349.log (主要是看有没有“LOG:
entering standby mode”和“consistent recovery state reached at 0/3000000”)
验证:
此时在主postgresql上新建数据库或表等,然后再到从postgresql上查看是否已经同步