PostgreSQL高可用套件repmgr+pgpool

PostgreSQL高可用套件repmgr+pgpool

作者:徐田原

一、背景概述

关于PosgreSQL高可用管理套件,PG生态圈提供许多人气比较高的开源高可用和故障转移工具,比如Patroni、Repmgr、PAF、Stolon等。下面重点给大家推荐关于repmgr这款精简易用的流复制工具。个人觉得,repmgr与声名远扬的ORACLE ADG逻辑复制工具非常类似。它的功能强大,安装和配置简单,有很强的可操控性。下面也会介绍两种异构数据库不用的复制方式的工具。

repmgr是一个2ndQuadrant开发的一款复制的开源工具套件,用于管理PostgreSQL服务器集群中的复制和故障转移。最初,它主要是为了简化流副本的管理,后来发展成为一个完整的故障转移管理套件。它通过设置备用服务器,监视复制以及执行管理任务(如故障转移或手动切换操作)的工具,增强了PostgreSQL内置的热备份功能。Repmgr体系架构如下:

在入门repmgr之前务必需要了解的组件功能模块:

1.1 Repmgrd 守护进程

它主动监视复制集群中的服务器并执行以下任务:

监控和记录集群复制性能

通过检测主服务器故障并提升最合适的备用服务器来执行故障转移

将有关群集中事件的通知提供给用户定义的脚本,该脚本可以执行诸如通过电子邮件发送警报等任务

repmgrd 根据本地数据库角色不同,其功能也不同: 主库:repmgrd仅监控本地数据库,负责自动恢复、同异步切换 备库:repmgrd监控本地数据库和主数据库,负责自动切换、复制槽删除

1.2 Repmgr命令管理

用于执行管理任务的命令行工具,主要有以下方面作用:

设置备用服务器

将备用服务器升级为主服务器

切换主服务器和备用服务器

显示复制群集中的服务器状态

1.3 用户和元数据

为了有效地管理复制集群,repmgr提供专用数据库存储和管理有关repmgr集群服务的相关信息。此模式在部署repmgr服务时,由repmgr扩展自动创建,该扩展在初始化repmgr -administered集群(repmgr主寄存器)的第一步中安装,包含以下对象:

1、表

repmgr.events:记录感兴趣的事件 repmgr.nodes:复制群集中每个服务器的连接和状态信息 repmgr.monitoring_history:repmgrd写入的历史备用监视信息

2、视图

repmgr.show_nodes:基于表repmgr.nodes,另外显示服务器上游节点的名称 repmgr.replication_status:启用repmgrd的监视时,显示每个备用数据库的当前监视状态。 repmgr元数据模式可以存储在现有的数据库或在自己的专用数据库。

请注意,repmgr元数据模式不能驻留在不属于repmgr管理的复制集群的数据库服务器上。 数据库用户必须可供repmgr访问此数据库并执行必要的更改。 此用户不需要是超级用户,但是某些操作(如初始安装repmgr扩展)将需要超级用户连接(可以使用命令行选项–superuser在需要时指定 )。

二、安装部署

2.1 环境准备

安装环境需要注意以下要求:

服务主机名主机IP操作系统部署版本主节点lightdb1192.168.127.135CentOS 8.4pg13.3 repmgr-5.2.1备节点1lightdb2192.168.127.136CentOS 8.4pg13.3 repmgr-5.2.1备节点

2lightdb3192.168.127.137CentOS 8.4pg13.3 repmgr-5.2.1见证节点lightdb4192.168.127.138CentOS 8.4pg13.3 repmgr-5.2.1连接池1lightdb5192.168.127.126CentOS 8.4pgpool-II-4.2.2连接池2lightdb6192.168.127.127CentOS 8.4pgpool-II-4.2.2

版本要求:repmgr必须安装在复制群集中的每台服务器上。如果从软件包安装repmgr,则软件包版本必须与PostgreSQL版本匹配。如果从源安装,则必须针对相同的主版本编译repmgr。

环境依赖:repmgr有一些必要的依赖项,以使其能够最佳地运行,并且应该为系统提供某些最低限度的功能。本案例是在Centos7.X操作系统使用repmgr最新5.1的版本。在生产环境,可以选择根据实际情况选择操作系统和对应的repmgr和PostgreSQL版本。 如果是Rehat的操作系统系统可通过安装相应的RPM来添加PostgreSQL存储库:https://yum.postgresql.org/repopackages.php,也可以通过源码来进行安装。

通信配置:建议repmgr通过配置SSH免密在节点之间进行通信,方便运维操作。但如果您企业对主机互信有特定的安全要求和约束,可以使用配置管理来管理服务器密钥,比如Ansible、Puppet或Salt等。

2.2 安装步骤

步骤1:配置主机hosts文件vim /etc/hosts,添加主机ip和name

192.168.127.135 lightdb1

192.168.127.136 lightdb2

192.168.127.137 lightdb3

192.168.127.138 lightdb4

192.168.127.126 lightdb5

192.168.127.127 lightdb6

[root@localhost ~]# hostnamectl set-hostname lightdb1

[root@localhost ~]# hostname

lightdb1

[root@localhost ~]# systemctl stop firewalld.service

[root@localhost ~]# systemctl disable firewalld.service

Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

[root@localhost ~]# cat >> /etc/hosts << EOF

> 192.168.127.135 lightdb1

> 192.168.127.136 lightdb2

> 192.168.127.137 lightdb3

> 192.168.127.138 lightdb4

>192.168.127.126 lightdb5

>192.168.127.127 lightdb6

> EOF

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl disable firewalld

[root@localhost ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config

[root@localhost ~]# setenforce 0

[root@localhost ~]# dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

CentOS Linux 8 - AppStream 688 kB/s | 8.1 MB 00:12

CentOS Linux 8 - BaseOS 674 kB/s | 3.6 MB 00:05

CentOS Linux 8 - Extras 16 kB/s | 9.8 kB 00:00

pgdg-redhat-repo-latest.noarch.rpm 3.0 kB/s | 12 kB 00:03

Dependencies resolved.

===========================================================================================================================================================================

Package Architecture Version Repository Size

===========================================================================================================================================================================

Installing:

pgdg-redhat-repo noarch 42.0-18 @commandline 12 k

Transaction Summary

========================

💫 相关推荐

财政部令第98号:《会计基础工作规范》(2019年修订)
立秋以后天气怎么样
365bet官网中文网

立秋以后天气怎么样

📅 07-25 👁️ 3720
熹妃传游戏攻略大全,从入门到精通看这篇就够了!
365bet官网中文网

熹妃传游戏攻略大全,从入门到精通看这篇就够了!

📅 07-11 👁️ 8152