PG12.9-Repmgr5.1.0-vip-3節點部署
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何部署Qtum量子鏈節點QT
- MongoDB單節點部署與基本操作MongoDB
- kubernetes環境部署單節點redisRedis
- Redis3.2.5部署(單節點)RedisS3
- ADAMoracle部署全球節點網路率先推出廣域節點報價系統Oracle
- Redis的安裝及建立節點、部署群集Redis
- 使用devstack/pike部署多節點實驗dev
- ElasticSearch 7.6.2 單機部署三個節點 報錯Elasticsearch
- Linux下NiFi 1.9.2部署(單節點)LinuxNifi
- kubernetes——二進位制多節點部署
- 【RAC】部署安裝RAC時確保主節點的時間小於其他節點時間
- PinPoint單節點部署及客戶端配置方法客戶端
- Truffle 3.0部署智慧合約至Ethereum節點
- Centos7.9 部署mongodb高可用叢集 3節點CentOSMongoDB
- nginx+php-fpm獨立節點的部署wordpress筆記NginxPHP筆記
- JavaScript學習之DOM(節點、節點層級、節點操作)JavaScript
- RAC 雙節點 轉單節點流程
- Ext實現點選節點,父子節點反選
- consul 多節點/單節點叢集搭建
- JQuery2:節點選取與節點插入jQuery
- mysql根據節點查詢所有葉節點MySql
- 使用Kubeadm建立k8s叢集之節點部署(三十一)K8S
- Tungsten Fabric知識庫丨測試2000個vRouter節點部署VR
- 二進位制部署1.23.4版本k8s叢集-5-部署Master節點服務K8SAST
- 二進位制部署1.23.4版本k8s叢集-6-部署Node節點服務K8S
- dom4j 根據xml節點路徑查詢節點,找到對應的目標節點下的子節點,對節點Text值進行修改XML
- k8s系列--node(k8s節點介紹,新增節點,移除節點)K8S
- MongoDB叢集搭建(包括隱藏節點,仲裁節點)MongoDB
- DataNode工作機制 & 新增節點 &下線節點
- jQuery如何獲取元素父節點和子節點jQuery
- 二叉樹兩個節點的公共節點二叉樹
- Mysql增加節點MySql
- Java —— 節點流Java
- 新增節點教程
- KubeSphere 新增節點
- 資料庫——查詢樹形結構某節點的所有子節點、所有父節點資料庫
- 達夢8MPP叢集(2節點+順序備)linux下部署Linux
- json 陣列已知父節點,求所有子節點JSON陣列