PG12.9-Repmgr5.1.0-vip-3節點部署

T1YSL發表於2021-11-30

Centos 7.6
PG 12.9
repmgr 5.1.0

1.系統環境準備

   主機名  	  ip地址    	 角色 	埠 
  enmo-01	172.20.10.1	 主庫 	6000
  enmo-02	172.20.10.2	 備庫 	6000
  enmo-03	172.20.10.3	 備庫 	6000
準備將172.20.10.6設定為vip

修改網路卡(重新整理一下 mac 地址)

需要所有的機器在同一個網段,防止 vip 無法繫結生效
vi /etc/sysconfig/network-scripts/ifcfg-ens33
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPV6INIT=no
IPADDR=172.20.10.1
NETMASK=255.255.255.0
GATEWAY=172.20.10.10
DNS=8.8.8.8

配置 hosts

 vi /etc/ssh/sshd_config
 UseDNS 設定為 no  
 
 修改主機名 
 hostnamectl set-hostname enmo-01 
 hostnamectl set-hostname enmo-02
 hostnamectl set-hostname enmo-03 
 
 修改 hosts 檔案 
 echo "172.20.10.1 enmo-01  
 172.20.10.2 enmo-02
 172.20.10.3 enmo-03
 " >>/etc/hosts

同步時間

 所有伺服器的時區及時間需要保持同步 
 timedatectl set-timezone Asia/Shanghai

關閉防火牆和 selinux

systemctl stop firewalld 
systemctl disable firewalld 
vi /etc/selinux/config 
SELINUX=disabled

使用者配置

建立安裝使用者
groupadd dba -g 1000 
useradd postgres -g 1000 -u 1000 postgres
新增 sudo 許可權
啟動服務及管理 VIP 使用,許可權可細化,忽略此步驟 vip 漂移會失敗
visudo -f /etc/sudoers 
postgres ALL=(ALL) NOPASSWD:ALL

reboot now

重啟使sudo生效

2.安裝主資料庫(原始碼安裝)

此處僅主庫裝資料庫,備庫需要有資料庫軟體。

安裝依賴

yum install -y  openssl openssl-devel readline readline-devel zlib-devel gcc flex

切換到postgres使用者

su - postgres

獲取並解壓包

wget 
tar -zxf postgresql-12.9.tar.gz

–進入目錄

cd postgresql-12.9

–編譯環境檢查

./configure --prefix=/home/postgres/soft --with-openssl --with-pgport=6000
(最後出現makefile)

–編譯安裝

make world -j24
make install-world -j24

–初始化資料庫資料目錄到/home/postgres/data並啟用checksum檢驗

/home/postgres/soft/bin/initdb -D /home/postgres/data -k

–啟動資料庫

/home/postgres/soft/bin/pg_ctl start -D /home/postgres/data -l /tmp/logfile

–配置環境變數.bashrc

vi .bashrc
export PGPORT=6000
export PGUSER=postgres
export PGHOME=/home/postgres/soft
export PGDATA=/home/postgres/data
export PATH=${PGHOME}/bin:${PATH}
LD_LIBRARY_PATH=$PGHOME/lib:/usr/local/lib:/usr/local/lib64:/usr/lib64:$LD_LIBRARY_PATH

–讀取環境變數

source .bashrc

–登入到資料庫

psql -d postgres

–建立超級使用者 postgres

CREATE USER postgres WITH SUPERUSER PASSWORD '1QAZ@WSX';

–修改埠(如果./configure沒指定–with-pgport)

alter system set port=6000;
select pg_reload_conf();

3.資料庫配置

su - postgres

mkdir -p /home/postgres/archive/wal

cluster_name='enmo_6001'
listen_addresses='0.0.0.0'
port=6000
wal_log_hints=on
logging_collector=on
logging_collector=on
log_filename='pg_log_%u.log'
log_file_mode=0600
log_truncate_on_rotation=on
log_rotation_age=1d
wal_keep_segments=100
archive_mode = on
archive_command = 'cp %p /home/postgres/archive/wal/%f'
wal_level = 'logical'
max_wal_senders = 10
max_replication_slots = 10
hot_standby = on

修改引數,其餘引數根據環境進行調整。

重啟資料庫生效

pg_ctl restart -D $PGDATA -l /tmp/logfile

4.節點間配置互信

–配置叢集內postgres使用者之間互信

–enmo-01

su - postgres
ssh-keygen -t rsa
cd ~/.ssh
ssh-copy-id -i postgres@enmo-02

–enmo-02

su - postgres
ssh-keygen -t rsa
cd ~/.ssh
cat *.pub >>  authorized_keys
scp authorized_keys postgres@enmo-01:/home/postgres/.ssh

上述過程為配置兩節點間的postgres的使用者的互信。兩兩節點之間需要做一次。用date 檢驗,確保叢集內節點能透過postgres使用者互相訪問。

ssh enmo-01 date;
ssh enmo-02 date;
ssh enmo-03 date;

5.安裝repmgr(原始碼安裝)並配置白名單

所有節點都需要安裝repmgr工具

–解壓壓縮包

su - postgres
tar -zxf repmgr-5.1.0.tar.gz
cd repmgr-5.1.0
#環境變數
pg_config驗證

–編譯安裝repmgr

su - postgres
cd /home/postgres/repmgr-5.1.0
./configure
make -j24
make install -j24

–檢視版本

/home/postgres/repmgr-5.1.0/repmgr --version

–安裝repmgr擴充套件

$ psql -d postgres

#主庫建立 repmgr 庫儲存後設資料
create user repmgr superuser password '123456';
create database repmgr owner repmgr;
#在postgresql.conf的shared_preload_libraries加上repmgr
vim $PGDATA/postgresql.conf
shared_preload_libraries = 'repmgr'
\c repmgr  
create extension repmgr;

–pg_hba配置

node11 節點配置 pg_hba.conf 檔案
vi $PGDATA/pg_hba.conf
local repmgr repmgr trust
host repmgr repmgr 172.20.10.1/32 trust
host repmgr repmgr 172.20.10.2/32 trust
host repmgr repmgr 172.20.10.3/32 trust
host repmgr repmgr 172.20.10.6/32 trust
host all all 172.20.10.1/24 scram-sha-256
host replication repmgr 172.20.10.1/32 trust
host replication repmgr 172.20.10.2/32 trust
host replication repmgr 172.20.10.3/32 trust
host replication repmgr 172.20.10.6/32 trust

–這邊將repmgr之間用trust,其他ip其他使用者登入需要用密碼。如果想讓repmgr在此處也為密碼校驗,則需要將trust改為md5或者scram-sha-256並在本地建立.pgpass檔案,操作如下:

su - postgres
touch ~/.pgpass  
chmod 0600 ~/.pgpass 
echo "172.20.10.1:6000:repmgr:repmgr:123456 
172.20.10.2:6000:repmgr:repmgr:123456
172.20.10.3:6000:repmgr:repmgr:123456 
172.20.10.4:6000:repmgr:repmgr:123456 ">> ~/.pgpass

使用密碼校驗需要注意密碼的加密格式,留意pg_authid系統表和password_encryption引數。

–例項檢查

只保留主節點執行 pg 例項,如果其他節點有例項執行,停止後刪除 pgdata 目錄

其他所有節點執行如下操作
su - postgres 
pg_ctl stop -D $PGDATA
rm -rf $PGDARA/*

6.主庫repmgr配置及註冊

(1)主節點建立repmgr.conf

touch /home/postgres/repmgr.conf 
vi /home/postgres/repmgr.conf 
node_id=1
node_name='enmo_6001'
conninfo='host=172.20.10.1 port=6000 user=repmgr dbname=repmgr 
connect_timeout=2'
data_directory='/data/pgdata'
replication_user='repmgr'
replication_type='physical'
pg_bindir='/opt/postgresql-12.9/bin'
monitoring_history=yes
monitor_interval_secs=5
log_level='debug'
log_file='/home/postgres/repmgr.log'
failover='automatic'
connection_check_type=ping
reconnect_attempts=3
reconnect_interval=10 
promote_command='/home/postgres/repmgr_promote.sh'
follow_command='/home/postgres/repmgr_follow.sh %n'

上面主要修改的部分為:

node-id  三個節點為1,2,3,用於切換的id
node_name  主要為標識,設定與資料庫cluster_name相同
conninfo  設定本地用於連線的repmgr資料庫等資訊

(2)配置提升為主庫需要的 repmgr_promote.sh 指令碼

! /bin/bash
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 2 start" >> /home/postgres/repmgr.log
/bin/ssh -t postgres@172.20.10.2 "/bin/sudo /usr/sbin/ip addr del 172.10.20.6/24 dev ens33:0"
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 2 finish" >> /home/postgres/repmgr.log
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 3 start" >> /home/postgres/repmgr.log
/bin/ssh -t postgres@172.20.10.3 "/bin/sudo /usr/sbin/ip addr del 172.20.10.6/24 dev ens33:0"
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 3 finish" >> /home/postgres/repmgr.log
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: promote start" >> /home/postgres/repmgr.log
/home/postgres/repmgr-5.1.0/repmgr standby promote -f /home/postgres/repmgr.conf --log-to-file
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: promote finish" >> /home/postgres/repmgr.log
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: add VIP start" >> /home/postgres/repmgr.log 
/bin/sudo /usr/sbin/ifconfig ens33:0 172.20.10.6 netmask 255.255.255.0

上邊幾部分分別為

下掉2,3節點的vip
提升本地資料庫角色為主庫
在本地掛上vip

(3)配置賦予新主跟隨的 repmgr_follow.sh 指令碼

! /bin/bash
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 1 start" >> /home/postgres/repmgr.log
/bin/ssh -t postgres@172.20.10.1 "/bin/sudo /usr/sbin/ip addr del 172.20.10.6/24 dev ens33:0"
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 1 finish" >> /home/postgres/repmgr.log
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: follow $1" >> /home/postgres/repmgr.log 
/home/postgres/repmgr-5.1.0/repmgr standby follow -f /home/postgres/repmgr.conf --upstream-node-id=$1 --log-to-file

上邊兩部分為

下掉本地的vip
讓本地備機跟隨新主

給兩個指令碼許可權

chmod 755 repmgr_promote.sh 
chmod 755 repmgr_follow.sh

(4)主庫註冊

/home/postgres/repmgr-5.1.0/repmgr -f /home/postgres/repmgr.conf primary register

INFO: connecting to primary database…

DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr

host=172.20.10.1 port=6000 fallback_application_name=repmgr"

INFO: “repmgr” extension is already installed

NOTICE: primary node record (ID: 11) registered

檢視叢集狀態,此時叢集裡只有一個主庫

/home/postgres/repmgr-5.1.0/repmgr -f /home/postgres/repmgr.conf cluster show

7.備庫repmgr配置及從庫註冊

上面已經說到所有的節點都需要安裝repmgr

如下為2,3節點的配置檔案及指令碼。

節點2:

(1)主節點建立repmgr.conf

touch /home/postgres/repmgr.conf 
vi /home/postgres/repmgr.conf 
node_id=2
node_name='enmo_6002'
conninfo='host=172.20.10.2 port=6000 user=repmgr dbname=repmgr 
connect_timeout=2'
data_directory='/data/pgdata'
replication_user='repmgr'
replication_type='physical'
repmgr_bindir='/home/postgres/repmgr-5.1.0'
pg_bindir='/opt/postgresql-12.9/bin'
monitoring_history=yes
monitor_interval_secs=5
log_level='debug'
log_file='/home/postgres/repmgr.log'
failover='automatic'
connection_check_type=ping
reconnect_attempts=3
reconnect_interval=10 
promote_command='/home/postgres/repmgr_promote.sh'
follow_command='/home/postgres/repmgr_follow.sh %n'

(2)配置提升為主庫需要的 repmgr_promote.sh 指令碼

! /bin/bash
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 1 start" >> /home/postgres/repmgr.log
/bin/ssh -t postgres@172.20.10.1 "/bin/sudo /usr/sbin/ip addr del 172.10.20.6/24 dev ens33:0"
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 1 finish" >> /home/postgres/repmgr.log
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 3 start" >> /home/postgres/repmgr.log
/bin/ssh -t postgres@172.20.10.3 "/bin/sudo /usr/sbin/ip addr del 172.20.10.6/24 dev ens33:0"
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 3 finish" >> /home/postgres/repmgr.log
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: promote start" >> /home/postgres/repmgr.log
/home/postgres/repmgr-5.1.0/repmgr standby promote -f /home/postgres/repmgr.conf --log-to-file
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: promote finish" >> /home/postgres/repmgr.log
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: add VIP start" >> /home/postgres/repmgr.log 
/bin/sudo /usr/sbin/ifconfig ens33:0 172.20.10.6 netmask 255.255.255.0

(3)配置賦予新主跟隨的 repmgr_follow.sh 指令碼

! /bin/bash
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 2 start" >> /home/postgres/repmgr.log
/bin/ssh -t postgres@172.20.10.2 "/bin/sudo /usr/sbin/ip addr del 172.20.10.6/24 dev ens33:0"
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 2 finish" >> /home/postgres/repmgr.log
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: follow $1" >> /home/postgres/repmgr.log 
/home/postgres/repmgr-5.1.0/repmgr standby follow -f /home/postgres/repmgr.conf --upstream-node-id=$1 --log-to-file

節點3:

(1)主節點建立repmgr.conf

touch /home/postgres/repmgr.conf 
vi /home/postgres/repmgr.conf 
node_id=3
node_name='enmo_6003'
conninfo='host=172.20.10.3 port=6000 user=repmgr dbname=repmgr 
connect_timeout=2'
data_directory='/data/pgdata'
replication_user='repmgr'
replication_type='physical'
repmgr_bindir='/home/postgres/repmgr-5.1.0'
pg_bindir='/opt/postgresql-12.9/bin'
monitoring_history=yes
monitor_interval_secs=5
log_level='debug'
log_file='/home/postgres/repmgr.log'
failover='automatic'
connection_check_type=ping
reconnect_attempts=3
reconnect_interval=10 
promote_command='/home/postgres/repmgr_promote.sh'
follow_command='/home/postgres/repmgr_follow.sh %n'

(2)配置提升為主庫需要的 repmgr_promote.sh 指令碼

! /bin/bash
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 1 start" >> /home/postgres/repmgr.log
/bin/ssh -t postgres@172.20.10.1 "/bin/sudo /usr/sbin/ip addr del 172.10.20.6/24 dev ens33:0"
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 1 finish" >> /home/postgres/repmgr.log
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 2 start" >> /home/postgres/repmgr.log
/bin/ssh -t postgres@172.20.10.2 "/bin/sudo /usr/sbin/ip addr del 172.20.10.6/24 dev ens33:0"
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 2 finish" >> /home/postgres/repmgr.log
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: promote start" >> /home/postgres/repmgr.log
/home/postgres/repmgr-5.1.0/repmgr standby promote -f /home/postgres/repmgr.conf --log-to-file
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: promote finish" >> /home/postgres/repmgr.log
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: add VIP start" >> /home/postgres/repmgr.log 
/bin/sudo /usr/sbin/ifconfig ens33:0 172.20.10.6 netmask 255.255.255.0

(3)配置賦予新主跟隨的 repmgr_follow.sh 指令碼

! /bin/bash
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 3 start" >> /home/postgres/repmgr.log
/bin/ssh -t postgres@172.20.10.3 "/bin/sudo /usr/sbin/ip addr del 172.20.10.6/24 dev ens33:0"
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: del VIP in 3 finish" >> /home/postgres/repmgr.log
echo "["`date "+%Y-%m-%d %H:%M:%S"`"]: follow $1" >> /home/postgres/repmgr.log 
/home/postgres/repmgr-5.1.0/repmgr standby follow -f /home/postgres/repmgr.conf --upstream-node-id=$1 --log-to-file

給兩個指令碼許可權

chmod 755 repmgr_promote.sh 
chmod 755 repmgr_follow.sh

(4)兩個備庫分別從主庫clone資料,相當於搭建流複製(要加入叢集的備機節點執行,確保本地有資料目錄,且資料目錄下為空)

/home/postgres/repmgr-5.1.0/repmgr -h 172.10.10.1 -p6000 -U repmgr -d repmgr -f /home/postgres/repmgr.conf standby clone

(5)修改兩個備庫的 配置引數

修改 postgresql.conf 
vi $PGDATA/postgresql.conf  
cluster_name='enmo_6002' 
vi $PGDATA/postgresql.conf  
cluster_name='enmo_6003'

(6)啟動及註冊

兩個備庫分別拉起

pg_ctl start -D $PGDATA

兩個備庫分別執行,進行註冊

/home/postgres/repmgr-5.1.0/repmgr -f /home/postgres/repmgr.conf standby register

8.所有節點啟動守護程式repmgrd

/home/postgres/repmgr-5.1.0/repmgrd -f /home/postgres/repmgr.conf -d

repmgrd守護程式主要做對叢集節點的監控

9.流複製狀態和叢集狀態檢查

主備庫分別檢視 wal 程式 主庫有 walsender 備庫有 walreceiver

ps -ef | grep wal

檢視叢集狀態,所有節點都可以透過repmgr檢視叢集狀態

/home/postgres/repmgr-5.1.0/repmgr -f /home/postgres/repmgr.conf cluster show
DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr host=172.20.10.1 port=6000 fallback_application_name=repmgr"
DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr host=172.20.10.1 port=6000 fallback_application_name=repmgr"
DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr host=172.20.10.2 port=6000 fallback_application_name=repmgr"
DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr host=172.20.10.1 port=6000 fallback_application_name=repmgr"
DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr host=172.20.10.3 port=6000 fallback_application_name=repmgr"
DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr host=172.20.10.1 port=6000 fallback_application_name=repmgr"
 ID | Name        | Role    | Status    | Upstream    | Location | Priority | Timeline | Connection string
----+-------------+---------+-----------+-------------+----------+----------+----------+------------------------------------------------------------------------
 1  | enmo_6001 | primary | * running |             | default  | 100      | 1        | host=172.20.10.1 port=6000 user=repmgr dbname=repmgr connect_timeout=2
 2  | enmo_6002 | standby |   running | enmo_6001 | default  | 100      | 1        | host=172.20.10.2 port=6000 user=repmgr dbname=repmgr connect_timeout=2
 3  | enmo_6003 | standby |   running | enmo_6001 | default  | 100      | 1        | host=172.20.10.3 port=6000 user=repmgr dbname=repmgr connect_timeout=2
/home/postgres/repmgr-5.1.0/repmgr -f /home/postgres/repmgr.conf service status
DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr host=172.20.10.1 port=6000 fallback_application_name=repmgr"
DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr host=172.20.10.1 port=6000 fallback_application_name=repmgr"
DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr host=172.20.10.2 port=6000 fallback_application_name=repmgr"
DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr host=172.20.10.1 port=6000 fallback_application_name=repmgr"
DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr host=172.20.10.3 port=6000 fallback_application_name=repmgr"
DEBUG: connecting to: "user=repmgr connect_timeout=2 dbname=repmgr host=172.20.10.1 port=6000 fallback_application_name=repmgr"
 ID | Name        | Role    | Status    | Upstream    | repmgrd | PID   | Paused? | Upstream last seen
----+-------------+---------+-----------+-------------+---------+-------+---------+--------------------
 1  | enmo_6001 | primary | * running |             | running | 15001 | no      | n/a
 2  | enmo_6002 | standby |   running | enmo_6001 | running | 15311 | no      | 2 second(s) ago
 3  | enmo_6003 | standby |   running | enmo_6001 | running | 16068 | no      | 4 second(s) ago

主庫檢視流複製狀態

postgres=# select * from pg_stat_replication;
  pid  | usesysid | usename | application_name | client_addr | client_hostname | client_port |         backend_start         | backend_xmin |   state   |  sent_lsn  | write_lsn  |
flush_lsn  | replay_lsn | write_lag | flush_lag | replay_lag | sync_priority | sync_state |          reply_time
-------+----------+---------+------------------+-------------+-----------------+-------------+-------------------------------+--------------+-----------+------------+------------+-
-----------+------------+-----------+-----------+------------+---------------+------------+-------------------------------
 21781 |    16385 | repmgr  | enmo_6002      | 172.20.10.2 |                 |       37700 | 2021-11-30 11:26:55.584587+08 |              | streaming | 0/25003338 | 0/25003338 |
0/25003338 | 0/25003338 |           |           |            |             1 | sync       | 2021-11-30 14:40:23.214424+08
 21880 |    16385 | repmgr  | enmo_6003      | 172.20.10.3 |                 |       63746 | 2021-11-30 11:27:53.53565+08  |              | streaming | 0/25003338 | 0/25003338 |
0/25003338 | 0/25003338 |           |           |            |             0 | async      | 2021-11-30 14:40:20.465075+08
(2 rows)

10.手動給主庫掛載vip

/bin/sudo /usr/sbin/ifconfig ens33:0 172.20.10.6 netmask 255.255.255.0

搭建完畢!

附錄:相關命令

上vip

/bin/sudo /usr/sbin/ifconfig ens33:0 172.20.10.6 netmask 255.255.255.0

下vip

/bin/sudo /usr/sbin/ip addr del 172.20.10.6/24 dev ens33:0

主庫註冊

repmgr -f /home/postgres/repmgr.conf primary register

備庫註冊

repmgr -f /home/postgres/repmgr.conf standby register

備庫從主庫clone(相當於全量build)

repmgr -h 172.20.10.1 -p6000 -U repmgr -d repmgr -f /home/postgres/repmgr.conf standby clone

相當於增量build,如果先加上–dry-run,表示先除錯,但不執行

repmgr node rejoin -d 'host=172.20.10.1 user=repmgr dbname=repmgr connect_timeout=2' --force-rewind  --verbose

檢視叢集狀態

repmgr -f /home/postgres/repmgr.conf cluster show
repmgr -f /home/postgres/repmgr.conf service status

啟動守護程式

repmgrd -f /home/postgres/repmgr.conf -d

switchover(備庫執行)

repmgr -f /home/postgres/repmgr.conf standby switchover -U repmgr  --verbose


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2845010/,如需轉載,請註明出處,否則將追究法律責任。

相關文章