repmgr+pg12构建高可用集群(1)
1、概述
repmgr是第二象限开源的一套流复制集群管理工具,看一下官方的介绍:
repmgr是一个开源工具套件,用于管理PostgreSQL服务器群集中的复制和故障转移。它通过设置备用服务器,监视复制以及执行管理任务(如故障转移或手动切换操作)的工具,增强了PostgreSQL的内置热备用功能。
repmgrde 的特点:
分布式管理集群节点,易扩展,可在线增删集群节点;
架构如下:
2、部署
主节点:
- 配置好相关参数
- 启动数据库
- 利用“repmgr primary register”命令实现对主节点的注册。(该注册的目的是把配置文件的一些主要参数写到元数据表中,以便repmgr系统对集群节点的识别操作等。)
- 启动repmgrd守护进程。
备节点:
- 配置好相关参数
- 利用“repmgr standby clone”命令对主节点进行物理拷贝。
- 启动数据库
- 利用“repmgr standby register”命令实现对备节点的注册。
- 启动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
注册备数据库在下节进行记录。。
但行好事,莫问前程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2019-04-20 jmeter笔记(9)--JDBC Request的使用
2019-04-20 jmeter笔记(8)--关联
2019-04-20 jmeter笔记(7)--参数化--用户定义的变量
2019-04-20 jmeter笔记(6)--参数化--函数助手
2019-04-20 jmeter笔记(5)--参数化--CSV Data Set Config