
大家肯能注意到,最近一直都是各种数据库的灾难恢复的复盘, 本身作为一个TEAM 的LEADER 我想到的是在紧急情况下,我们应该有一个应对的措施,对每一个 TEAM 的 DBA 都应该在那个时候沉着冷静,并且知道那些是应该做的, 那些是不该做的.
今天轮到了POSTGRESQL ,目前我们采用的是 REPMGR 的方式做的高可用集群,为什么. POSTGRESQL 的高可用,有以下几种 P+C , REPMGR, Patroni + ETCD 的方式, 那为什么我们最终选择了 REPMGR ,原因如下
1 REPMGR 是这三种里面最简单的高可用的方式,这里的意思是结构节点,搭建简单,处理简单
2 在网络有波动的情况下,比较好控制,如果遇到网络上的短暂的问题,REPMGR通过一系列的方式可以避免某些切换. 调整的参数明显
3 资料多,并且有2象限(现在是EDB)这样的公司作为后盾, 并且国内的瀚高也是用这个作为他们商业的高可用方式的二次开发对象.
4 更适合我们公司目前的现状,包含硬件,软件环境,人员的情况

目前我们采用的一个主+两个从的方式 一个注册 一个不注册 (一个从可能是延迟库,也可能为BIG DATA 提供抽取数据使用)
我们以POSTGRESQL 12.2 REPMGR 5.2.1 版本为例
1 从库DOWN
2 两个从库DOWN
3 主库DOWN
4 一主一从DOWN
5 全部DOWN
1 安装依赖包
安装依赖包
yum -y install readline-devel
yum -y install gcc* --skip-broken
yum -y install zlib*
yum -y install openssl openssl-devel
yum -y install pam pam-devel
yum -y install libxml2 libxml2-devel
yum -y install libxslt libxslt-devel
yum -y install gcc, bison, gcc-c++, readline, readline-devel, zlib, zlib-devel
yum -y install libssl*
yum -y install systemd*
yum -y install e2fsprogs-devel uuid-devel libuuid-devel
2 设置用户名密码
useradd postgres
passwd postgres
visudo
3 操作ssh 互信
ssh-keygen -t rsa
ssh-copy-id -i /home/postgres/.ssh/id_rsa.pub postgres@10.50.132.145
ssh-copy-id -i /home/postgres/.ssh/id_rsa.pub postgres@10.50.132.146
ssh-copy-id -i /home/postgres/.ssh/id_rsa.pub postgres@10.50.132.147
4 解压文件编译文件
tar -zxvf postgresql-12.2.tar.gz
./configure --prefix=/usr/local/postgres --bindir=/usr/local/postgres/bin --sysconfdir=/etc --libdir=/usr/local/postgres/libs --includedir=/usr/local/postgres/includes --datadir=/pgdata --datarootdir=/pgdata/root --with-pgport=5432 --with-openssl --with-pam --with-systemd --with-libxml --with-segsize=4 --with-ossp-uuid
gmake &am

本文介绍 PostgreSQL 使用 REPMGR 实现高可用性的部署步骤与故障恢复方案,包括集群搭建、故障场景模拟及恢复流程。
最低0.47元/天 解锁文章
2308

被折叠的 条评论
为什么被折叠?



