多语言展示
当前在线:1483今日阅读:113今日分享:31

postgresql 主库从库设置

使用数据库难免要采用主从分离的策略,目前postgresql越来越火,国内却没有像样的介绍,参考国外网站根据实际经验特地发一稿~
工具/原料
1

linux centos 6.5

2

postgresql 9,4

方法/步骤
1

以主库服务器1.2.3.4 从库 5.6.7.8 为例。安装最新版的postgresql(本篇略过,需要可以写一个)。

2

第一步是修改防火墙,两个服务器可以通信,或者设置白名单之类的。防火墙在iptables设置。端口默认5432(postgresql.conf可修改,重启后生效)。

4

第三步修改postgresql.conflisten_address = '*' 这个地方一定不要默认!!填写*或者外网ip都可以!!不然之后服务器不通信!!防火墙没问题,白名单没问题为什么不通信 就因为端口只是在本地 127.0.0.1下面!!!血淋淋的教训!!!wal_level = hot_standbymax_wal_senders = 3checkpoint_segments = 8wal_keep_segments = 8

5

第四步 国内外网站都没有写的!!!!!打开ssl!!!!ssl=on然后配置server.key!!!!!!参考 http://www.postgresql.org/docs/8.1/static/ssl-tcp.htmlopenssl req -new -text -out server.reqopenssl rsa -in privkey.pem -out server.keyopenssl req -x509 -in server.req -text -key server.key -out server.crtchmod og-rwx server.key

6

第五步 设置pg_hba.confhostssl replication     replicator      5.6.7.8            md5hostssl!!!!!!不是host !!!!!

7

第六步 设置从库wal_level = hot_standbymax_wal_senders = 3checkpoint_segments = 8wal_keep_segments = 8hot_standby = on

8

第七步在从库上  虽然我不知为什么!!!但要删了从库的pgsql数据sudo -u postgres rm -rf /var/lib/pgsql/9.4/data(目录可能不对,忘记了 有的系统是/data   有的系统是 / main   都一样  删删删!!!)然后把主库的设置copy一份覆盖到从库上,虽然我不知道为什么,但是很高级的样子!!!!sudo -u postgres pg_basebackup -h 1.2.3.4 -D /var/lib/pgsql/9.4/data -U replicator -v -P但这时候出现了个问题  被覆盖后从库的postgresql.conf里面的配置之前改得被覆盖了!!!!所以我觉得第六步应该放到第七步后面,但不知道为什么国外网站介绍的把这一步放在修改配置后面了 所以出现了一个大坑!!!!再去配置一遍从库的postgresql.conf  把 hot_standby=on 设置一下!!!!

9

然后再在从库创建一个recovery.conf的文件sudo -u postgres bash -c 'cat > /var/lib/pgsql/9.4/data/recovery.conf <<- _EOF1_ standby_mode = 'on' primary_conninfo = 'host=1.2.3.4 port=5432 user=replicator password=thepassword sslmode=require' trigger_file = '/tmp/postgresql.trigger'_EOF1_'

10

最后重启两边服务器  居然没问题了!!!!三四天的心血奉献给大家~

推荐信息