openGauss/MogDB-3.0.0 dcf測試(非om安裝)

openGaussbaby發表於2024-04-01

IP地址

172.20.10.6 LERDER
172.20.10.7 FOLLOWER
172.20.10.8 FOLLOWER

一、安裝openGauss

安裝依賴包

yum install -y bzip2 bzip2-devel curl libaio

建立使用者、組並建立目錄

groupadd omma -g 20001
useradd omma -g 20001 -u 20001
echo "Enmo@123" | passwd --stdin omma
mkdir -p /opengauss/{soft,data}
tar xf openGauss-3.0.0-CentOS-64bit-all.tar.gz -C /opengauss/soft

image.png

配置環境變數

echo "export GAUSSHOME=/opengauss/soft"  >> /home/omma/.bashrc && \
echo "export PATH=\$GAUSSHOME/bin:\$PATH " >> /home/omma/.bashrc && \
echo "export LD_LIBRARY_PATH=\$GAUSSHOME/lib:\$LD_LIBRARY_PATH" >> /home/omma/.bashrc

image.png

解壓資料庫軟體包

cd /opengauss/soft
tar -xf openGauss-3.0.0-CentOS-64bit.tar.bz2

image.png

初始化資料庫
後續所有操作均使用omma使用者,初始化需要加-c引數,會生成dcf相關檔案(注意nodename)

gs_initdb --nodename=gaussdb1 -w Enmo@123 -D /opengauss/data/ -c

image.png
image.png

二、配置dcf引數

1.配置白名單

在pg_hba.conf裡新增白名單
image.png

2.配置dcf引數與replconninfo

因為在初始化時加了-c,會自動開啟enable_dcf引數
image.png
在節點一的postgresql.conf裡新增

port=21000
dcf_node_id = 1
dcf_ssl=off
dcf_data_path = '/opengauss/data/dcf_data'
dcf_log_path= '/opengauss/data/dcf_log'
dcf_config='[{"stream_id":1,"node_id":1,"ip":"172.20.10.6","port":21000,"role":"LEADER"},{"stream_id":1,"node_id":2,"ip":"172.20.10.7","port":21000,"role":"FOLLOWER"},{"stream_id":1,"node_id":3,"ip":"172.20.10.8","port":21000,"role":"FOLLOWER"}]'
replconninfo1 = 'localhost=172.20.10.6 localport=21001 localheartbeatport=21005 localservice=21004 remotehost=172.20.10.7 remoteport=21001 remoteheartbeatport=21005 remoteservice=21004'
replconninfo2 = 'localhost=172.20.10.6 localport=21001 localheartbeatport=21005 localservice=21004 remotehost=172.20.10.8 remoteport=21001 remoteheartbeatport=21005 remoteservice=21004'

類似得,在其他兩個備機新增
節點二:

port=21000
dcf_node_id = 2
dcf_ssl=off
dcf_data_path = '/opengauss/data/dcf_data'
dcf_log_path= '/opengauss/data/dcf_log'
dcf_config='[{"stream_id":1,"node_id":1,"ip":"172.20.10.6","port":21000,"role":"LEADER"},{"stream_id":1,"node_id":2,"ip":"172.20.10.7","port":21000,"role":"FOLLOWER"},{"stream_id":1,"node_id":3,"ip":"172.20.10.8","port":21000,"role":"FOLLOWER"}]'
replconninfo1 = 'localhost=172.20.10.7 localport=21001 localheartbeatport=21005 localservice=21004 remotehost=172.20.10.6 remoteport=21001 remoteheartbeatport=21005 remoteservice=21004'
replconninfo2 = 'localhost=172.20.10.7 localport=21001 localheartbeatport=21005 localservice=21004 remotehost=172.20.10.8 remoteport=21001 remoteheartbeatport=21005 remoteservice=21004'

節點三:

port=21000
dcf_node_id = 3
dcf_ssl=off
dcf_data_path = '/opengauss/data/dcf_data'
dcf_log_path= '/opengauss/data/dcf_log'
dcf_config='[{"stream_id":1,"node_id":1,"ip":"172.20.10.6","port":21000,"role":"LEADER"},{"stream_id":1,"node_id":2,"ip":"172.20.10.7","port":21000,"role":"FOLLOWER"},{"stream_id":1,"node_id":3,"ip":"172.20.10.8","port":21000,"role":"FOLLOWER"}]'
replconninfo1 = 'localhost=172.20.10.8 localport=21001 localheartbeatport=21005 localservice=21004 remotehost=172.20.10.7 remoteport=21001 remoteheartbeatport=21005 remoteservice=21004'
replconninfo2 = 'localhost=172.20.10.8 localport=21001 localheartbeatport=21005 localservice=21004 remotehost=172.20.10.6 remoteport=21001 remoteheartbeatport=21005 remoteservice=21004'

三、啟動openGauss

全部以備機身份拉起

gs_ctl start -D /opengauss/data -M standby

手動設定存活節點為少數派模式執行,在主節點執行(即 LEADER)

gs_ctl setrunmode -D /opengauss/data  -v 1 -x minority

image.png
叢集其他節點主動重建拉起,在所有備節點執行(即 FOLLOWER)
gs_ctl build -b full -D /opengauss/data
image.png

image.png
存活節點重回多數派,在主節點執行(即 LEADER)

gs_ctl setrunmode -D /opengauss/data -x normal

image.png
全部節點檢視狀態

gs_ctl query -D /opengauss/data

image.png
image.png
image.png

四、資料同步測試

主節點

[omma@localhost ~]$ gsql -p 21000 postgres -r
gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:34 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
openGauss=# create table ysl (id int);
CREATE TABLE
openGauss=# insert into ysl values(1);
INSERT 0 1
openGauss=# select * from ysl;
 id
----
  1
(1 row)

image.png

備機
image.png

五、故障切換測試

主節點進行停資料庫
gs_ctl stop -D /opengauss/data/
image.png

可以看到我們的node2變成了主節點,身份是leader,而我們的原主變成了它的follower
image.png

拉起原主庫,以standby方式啟動,檢視當前狀態,原主節點依舊是新主節點的follower
gs_ctl start -D /opengauss/data -M standby
image.png

六、switchover切換測試

在節點1進行switchover操作,之前節點1為follower,執行完切換之後,可以看到我們的節點1又重新恢復成主節點。
image.png

此時檢視節點2,也就是我們switchover之前的主節點,發現節點2已經shutdown了,需要手動再加入叢集
image.png

總結:

1.openGauss-3.0.0版本的dcf對於switchover,在進行切換之後會把原主節點shutdown,而不會重啟為follower,需要手動重啟。
2.此外dcf不像om工具這種部署的主備,dcf在主節點pg_stat_replication檢視裡查詢不到複製資訊。
image.png


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

相關文章