既然搭建了Postgresql的主备双机,就要能够在主机发生异常的情况下,备机可以顺利的提升为主机,接管服务才行。
有很多的中间件可以让Postgresql完成主备切换的工作,这里我只记录一下如何使用Postgresql自己完成主备的切换。
安装完主备库之后
在备节点上操作
停止数据库
./pg_ctl stop -D /home/osdba/data
删除数据库data目录内的文件
rm -rf *
然后执行
./pg_basebackup -d "hostaddr=10.100.44.222 port=5432 user=postgres password=123456" -D /home/osdba/data -v -Fp -Xs
命令执行完毕之后,即可完成基础备份
修改备节点的postgresql.conf文件里的hot_standby = on
将pg目录下的share目录下的recovery.conf.sample拷贝到data目录下保存为recovery.conf
cp recovery.conf.sample /home/osdba/data/recovery.conf
并且修改设置为:
recovery_target_timeline = 'latest'
standby_mode = on
primary_conninfo = "host=10.100.44.222 port=5432 user=postgres password=123456"
trigger_file='triggerfile'
启动备库节点
在备库目录下添加triggerfile文件
triggerfile文件中随便填写什么内容都可以,或者只是新建一个文件
停掉主库,我们会发现备库已经起来了~~