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
注冊備數據庫在下節進行記錄。。