Gbase 8a資料庫節點替換

gh_2020發表於2022-04-26

叢集節點替換

1簡介

當叢集規模不斷擴大時,叢集的節點損壞會成為一個比較常見的現象,同

時隨著資料量的增大,單個節點的計算能力和儲存能力也會成為瓶頸。這兩種

情況下都需要對叢集節點進行替換升級,使叢集能夠正常工作。

2功能概述

節點替換針對節點機器徹底損壞的情況,通過節點替換流程來恢復資料,

最終達到替換損壞節點的目的。新舊機器使用相同的 IP。

節點替換過程中,叢集狀態必須是非 LOCK 狀態。

在節點替換過程中,替換節點的狀態會發生變化。

節點故障狀態變更順序為:

OFFLINE -> UNAVAILABLE -> REPLACE -> ONLINE

升級時狀態變化過程如下:

ONLINE -> UNAVAILABLE -> REPLACE -> ONLINE

替換開始前:節點損壞,節點的狀態為 OFFLINE,使用者必須設定節點

狀態為 UNAVAILABLE;

替換開始後:節點狀態轉換為 REPLACE

替換成功後:節點狀態轉換為 ONLINE

替換執行失敗:節點狀態回滾為 UNAVAILABLE

在節點替換過程中,叢集模式會發生變化,模式變更順序為:

NORMAL -> READONLY -> NORMAL GBase 8a MPP Cluster 管理員手冊

同步表結構前:叢集模式為 NORMAL,叢集可以正常操作

同步表結構期間:叢集模式為 READONLY,只允許進行查詢操作,不允

許任何 dml、ddl 以及載入操作,此時進行資料表結構的同步操作,

對使用者資料表設定全同步標誌。

同步完成後:叢集模式為 NORMAL,叢集可以正常操作

替換完成後,叢集可以正常進行操作。

3注意事項

節點替換過程需要注意以下問題:

節點狀態轉換為 UNAVAILABLE 後,只有在節點替換成功的時候,節點

狀態才能轉換為 ONLINE。使用者不能對 corosync 中的節點狀態持久化

檔案進行手工操作,如果手工修改持久化檔案中的節點狀態

UNAVAILABLE -> ONLINE),會導致資料丟失。

設定節點為 UNAVAILABLE 時,若叢集中有大量 ddl event,dml event

dmlstorage event 時,程式需要檢查所有的 event,判斷被設定狀

態的節點的備份節點是否正常,有大量 event 時,該過程可能需要較

長時間。

開始節點替換時,若被替換節點有大量 ddl event,dml event 或

dmlstorage event 時,節點替換程式要將被替換節點的所有 event 刪

除,該過程可能會需要較長時間。

損壞的節點上有 nocopy 表,資料無法恢復,必須使用者手工進行恢

復。

損壞的節點上存在不通過叢集命令建立的資料,這些資料無法恢復,

必須使用者手工進行恢復。

 

在節點替換過程中,如果出現 replace.py 命令被強殺或者執行

replace.py 命令的機器掉電等現象,可能會導致叢集狀態處於 GBase 8a MPP Cluster 資料抽取及載入工具參考手冊

 

READONLY狀態無法自行恢復正常。此時可以使用gcadmin switchmode

normal 恢復叢集狀態然後繼續使用叢集。或者再一次執行

replace.py 命令替換節點,節點替換成功後叢集狀態就恢復正常。

 

節點替換時,需保證 gbase 使用者擁有 GCWare 配置檔案

/etc/corosync/corosync.conf)的訪問許可權,即該檔案的許可權屬性

應為 644。

 

使用者在執行節點替換前,必須保證執行替換的使用者擁有安裝程式目錄

的讀寫許可權,即可以在該目錄下建立檔案和子目錄。

 

執行節點替換時,若出現當機或掉電等情況,將導致替換失敗,替換

節點和源節點上可能會有殘留資料。此時需要再次執行節點替換,進

行殘留資料清理,完成清理後方可重新進行節點替換操作。

4節點替換的步驟

4.1步驟一:檢查網路

在進行節點替換操作前,首先要保證叢集內的網路通暢。如果遇到網路異

常的情況,可以請網路管理員協助排查異常情況,恢復網路通暢。

4.2步驟二:gcadmin 設定要替換節點的狀態

我們在作業系統的 gbase 使用者(demo.options 檔案中 dbauser 引數指定的

使用者)下執行 gcadmin setnodestate 命令設定要替換的節點狀態為

UNAVAILABLE。

注:gcadmin 設定要替換節點的狀態,現在只支援單個節點設定。

4.3步驟三:準備用於節點替換的新機器 GBase 8a MPP Cluster 管理員手冊

新機器安裝和原節點機器相同的作業系統,使用相同的 ip,並符合叢集

安裝的要求:關閉防火牆、關閉 selinux。

4.4步驟四:gcadmin 檢視叢集各項狀態

選擇叢集中一個 coordinator 節點,切換到 gbase 使用者(demo.options 文

件中 dbauser 引數指定的使用者),使用 gcadmin 命令來檢視叢集的各項狀態。

叢集的狀態為如下時,表示正常:

CLUSTER STATE: ACTIVED

CLUSTER MODE: NORMAL

===============================================================

| GBASE COORDINATOR CLUSTER INFORMATION |

===============================================================

| NodeName | IpAddress |gcware |gcluster |DataState |

---------------------------------------------------------------

| coordinator1 | 192.168.153.126 | UNAVAILABLE | | |

===========================================================

| GBASE DATA CLUSTER INFORMATION |

===========================================================

|NodeName | IpAddress |gnode |syncserver |DataState |

-----------------------------------------------------------

| node1 | 192.168.153.126 | UNAVAILABLE | | |

如果 CLUSTER STATE: LOCKED:節點替換的後續步驟不能進行,必須解決

問題使叢集的狀態變為 ACTIVED,才可以繼續。

4.5步驟五:replace.py 對節點進行替換安裝

選擇叢集中一個 coordinator 節點,切換到 gbase 使用者(demo.options 文

件中 dbauser 引數指定的使用者),使用 replace.py 命令對要替換的節點進行替

換安裝。 GBase 8a MPP Cluster 資料抽取及載入工具參考手冊

命令格式:

replace.py [options]

引數說明:

--host 指定將要替換的節點 ip 列表,用逗號分隔

--rootPwd root 使用者的密碼, 要求所有節點 root 密碼一致。

--root_pwd_file 該引數支援 root 使用者在多節點不同密碼方式,與引數

rootPwd 不能同時使用,否則報錯。

--dbaRootPwd 要替換節點的資料庫 root 使用者密碼如果不為空,需要傳入

該資料庫 root 使用者密碼。目前密碼中不支援單引號,其它特殊符號用單引號

包圍。

--overwrite 強制覆蓋安裝,這個引數可選。

--sync_coordi_metadata_timeout 設定 coordinator 節點替換的超時時

間。預設值為 15,最小值為 1。

--parallel_pack coordinator節點替換並行打包開關。預設值為 0,最小

值為 1。

--retry_times節點替換時同步系統表retry次數。預設值為 3,最小值為

1,最大值為 2147483647。

--license_file 針對帶有 License 認證的叢集,在執行節點替換的時候,

需要提前生成 license檔案,通過--license_file 引數將檔案傳入,在叢集安

裝成功後,叢集可正常使用。

-- passwordInputMode,可選,用於指定密碼獲取的方式,通過不同的引數

實現不同的獲取方式。若指定該引數,則 demo.options 中的密碼不必再修改。

預設值: file

取值範圍 [file,pwdsame,pwddiff] GBase 8a MPP Cluster 管理員手冊

 

1) file : 表示從檔案獲取,和原有的方式一致,該方式下,檔案中的密

碼是明文的

2) pwdsame:表示從終端由使用者輸入密碼,並且所有節點的密碼一致情況

下使用該引數,對於不同使用者密碼只輸入一次,適用於所有節點都用

這個密碼

3) pwddiff: 表示從終端由使用者輸入密碼,並且節點間的密碼不一致情

況下使用該引數,對於不同使用者密碼每個節點分別輸入一次,適用於

不同節點使用不同的密碼;

執行前提:

替換節點使用原有節點的 IP。

當使用者沒有使用強制安裝選項,替換節點上不能存在叢集軟體。刪除叢集

軟體時必須先停止相應節點的叢集服務。叢集服務包括:

1. coordinator 節點:corosync、gclusterd、gcrecover、gcmonit、

gcmmonit;

2. dataserver 節點:gbased、gc_sync_server;

使用者使用強制安裝選項時,使用者必須保證替換節點上的有用的資訊已經妥

善備份,否則可能導致資料無法恢復。

在已有的 coordinator 節點上使用 dba 使用者執行。

如果替換 coordinator 叢集節點,要求總數不可以超過 coordinator 叢集

總數的一半,也就是保證叢集不能是 LOCK 狀態。

如果是 data 叢集,不可以同時替換主備分片的節點,保證分片必須有可

用的備份源資料。


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

相關文章