repmgr+pg12构建高可用集群

Posted mingfan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了repmgr+pg12构建高可用集群相关的知识,希望对你有一定的参考价值。

1、概述

repmgr是第二象限开源的一套流复制集群管理工具,看一下官方的介绍:

repmgr是一个开源工具套件,用于管理PostgreSQL服务器群集中的复制和故障转移。它通过设置备用服务器,监视复制以及执行管理任务(如故障转移或手动切换操作)的工具,增强了PostgreSQL的内置热备用功能。

repmgrde 的特点:

分布式管理集群节点,易扩展,可在线增删集群节点;

架构如下:

技术图片

 

 2、部署

主节点:

  1. 配置好相关参数
  2. 启动数据库
  3. 利用“repmgr primary register”命令实现对主节点的注册。(该注册的目的是把配置文件的一些主要参数写到元数据表中,以便repmgr系统对集群节点的识别操作等。)
  4. 启动repmgrd守护进程。

备节点:

  1. 配置好相关参数
  2. 利用“repmgr standby clone”命令对主节点进行物理拷贝。
  3. 启动数据库
  4. 利用“repmgr standby register”命令实现对备节点的注册。
  5. 启动repmgrd守护进程。

集群每个节点部署成功后都会启动repmgrd守护进程,该守护进程可以处理故障转移和记录监控数据;

3、实际操作

操作环境:

centos7.6

3.1.安装pg12(见前面的帖子)

3.2.获取repmgr安装包

https://yum.postgresql.org/12/redhat/rhel-7-x86_64/repoview/

技术图片

 

 

 3.3.安装repmgr

rpm -ivh repmgr12-5.1.0-1.rhel7.x86_64.rpm

3.4.repmgr参数配置

vim /etc/repmgr/12/repmgr.conf
##填写必须配置项
node_id=1
node_name=node1
conninfo=host=192.168.101.9 port=5432 user=postgres  dbname=postgres
data_directory=/var/lib/pgsql/12/data

3.5.数据库参数配置

vim /var/lib/pgsql/12/data/postgresql.conf
#配置参数
shared_preload_libraries = repmgr 
listen_addresses = ‘*‘

vim /var/lib/pgsql/12/data/pg_hba.conf
#配置参数

  # IPv4 local connections:
  host all all 0.0.0.0/0 trust  #新增

3.6.重启数据库后连接数据库创建插件(./psql -Upostgres -dpostgres)

CREATE EXTENSION repmgr;

3.7.注册主数据库

[postgres@localhost bin]$ ./repmgr primary register
INFO: connecting to primary database...
INFO: "repmgr" extension is already installed
NOTICE: primary node record (ID: 1) registered

3.8.集群状态查看

[postgres@localhost bin]$ ./repmgr cluster show
 ID | Name  | Role    | Status    | Upstream | Location | Priority | Timeline | Connection string
----+-------+---------+-----------+----------+----------+----------+----------+-------------------------------------------------------------
 1  | node1 | primary | * running |          | default  | 100      | 1        | host=192.168.101.9 port=5432 user=postgres  dbname=postgres

注册备数据库在下节进行记录。。

以上是关于repmgr+pg12构建高可用集群的主要内容,如果未能解决你的问题,请参考以下文章

repmgr+pg12集群,挂掉的主机如何手动加入集群

三postgresql-14+repmgr-5.3.3高可用安装配置

PostgreSQL高可用套件repmgr+pgpool

PostgreSQL高可用套件repmgr+pgpool

Docker容器之Patroni篇

Docker容器之Patroni篇