手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

postgresql 主库从库设置

时间:2024-10-13 18:00:17

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

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

3、第二步先创建一个REPLICATION账户。sudo -u postgres psql -c "CREATE USER replicator REPLICATION LOGIN ENCRYPTED PASSWORD 'thepassword';"

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、最后重启两边服务器 居然没问题了!!!!三四天的心血奉献给大家~

© 手抄报圈