PostgreSQL基础(十五):PostgreSQL的主从操作

PostgreSQL的主从操作

PostgreSQL自身只支持简单的主从,没有主从自动切换,仿照类似Nginx的效果一样,采用keepalived的形式,在主节点宕机后,通过脚本的执行完成主从切换。

一、主从实现(异步流复制)

操作方式类似与之前的备份和恢复

1、准备环境

准备两台虚拟机,完成上述的环境准备

修改好IP,安装好PostgreSQL服务

2、 给主准备一些数据

3、配置主节点信息

主从都配置,因为后面会有主从切换的操作

pg_hba.conf

docx image

postgresql.conf

docx image

提前构建好归档日志和备份目录,并且设置好拥有者

docx image

重启PostgreSQL服务

4、从节点加入到主节点

关闭从节点服务

删除从节点数据(删除data目录)

基于pbk去主节点备份数据

恢复数据操作,解压tar包

修改postgresql.auto.conf文件

修改standby.signal文件,开启从节点备份模式

启动从节点服务

查看主从信息

查看从节点是否有t1表

主节点添加一行数据,从节点再查询,可以看到最新的数据

从节点无法完成写操作,他是只读模式

主节点查看从节点信息

二、主从切换

其实主从的本质就是从节点去主节点不停的备份新的数据。

配置文件的系统其实就是两个:

standby.signal文件,这个是从节点开启备份

postgresql.auto.conf文件,这个从节点指定主节点的地址信息

切换就是原主追加上述配置,原从删除上述配追

1、主从节点全部stop停止

2、原从删除上述配置

3、原从新主启动服务

4、原主新从去原从新主备份一次数据:pg_basebackup操作,同时做解压,然后修改postgresql.conf文件以及standby.signal配置文件

5、启动原主新从查看信息

三、主从故障切换

默认情况下,这里的主从备份是异步的,导致一个问题,如果主节点写入的数据还没有备份到从节点,主节点忽然宕机了,导致后面如果基于上述方式实现主从切换,数据可能丢失。

PGSQL在9.5版本后提供了一个pg_rewind的操作,基于归档日志帮咱们做一个比对,比对归档日志,是否有时间差冲突。

实现操作:

1、rewind需要开启一项配置才可以使用

wal_log_hints = ‘on’

/usr/pgsql-12/bin/

3、模拟主库宕机,直接对主库关机

4、从节点切换为主节点

5、将原主节点开机,执行命令,搞定归档日志的同步

启动虚拟机

停止PGSQL服务

6、修改新从节点的配置,然后启动

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容