本節提供 NDB叢集資料節點啟動時所涉及步驟的簡化概述。更完整資訊,請參閱 NDB
內部指南 中的 NDB叢集啟動階段。
這些階段與管理用戶端中
命令的輸出中所報告的階段相同(請參閱第 25.6.1 節「NDB叢集管理用戶端中的命令」)。這些啟動階段也會在 node_id
STATUSndbinfo.nodes
表格的 start_phase
欄位中報告。
啟動類型。 如下列清單所示,有幾種不同的啟動類型和模式
設定和初始化(階段 -1)。 在啟動之前,必須初始化每個資料節點(ndbd 程序)。初始化包括下列步驟
取得節點 ID
擷取組態資料
配置要用於節點間通訊的連接埠
根據從組態檔案取得的設定配置記憶體
當資料節點或SQL節點第一次連線至管理節點時,它會保留一個叢集節點 ID。為了確保沒有其他節點配置相同的節點 ID,這個 ID 會保留到節點成功連線到叢集,且至少一個 ndbd 回報此節點已連線為止。此節點 ID 的保留是由相關節點與 ndb_mgmd 之間的連線保護。
在每個資料節點初始化之後,叢集啟動程序就可以繼續進行。以下列出叢集在此程序中經歷的階段
階段 0。
NDBFS
和NDBCNTR
區塊開始啟動。在以--initial
選項啟動的資料節點上,清除資料節點檔案系統。階段 1。 在此階段中,啟動所有剩餘的
NDB
核心區塊。設定 NDB叢集連線、建立區塊間通訊,並啟動活動訊號。在節點重新啟動的情況下,也會檢查 API 節點連線。注意當一個或多個節點在階段 1 中停止,而其餘節點在階段 2 中停止時,這通常表示網路問題。此類問題的一個可能原因是,一個或多個叢集主機有多個網路介面。導致此狀況的另一個常見問題來源,是封鎖叢集節點之間通訊所需的 TCP/IP 連接埠。在後一種情況下,通常是由於防火牆設定錯誤所致。
階段 2。
NDBCNTR
核心區塊會檢查所有現有節點的狀態。選取主節點,並初始化叢集綱要檔案。階段 3。
DBLQH
和DBTC
核心區塊在它們之間設定通訊。判斷啟動類型;如果這是重新啟動,DBDIH
區塊會取得執行重新啟動的權限。階段 4。 對於初始啟動或初始節點重新啟動,會建立重做記錄檔。這些檔案的數量等於
NoOfFragmentLogFiles
。對於系統重新啟動
讀取綱要或綱要。
從本機檢查點讀取資料。
套用所有重做資訊,直到達到最新的可還原全域檢查點為止。
對於節點重新啟動,尋找重做記錄的尾部。
階段 5。 資料節點啟動的大部分資料庫相關部分都是在此階段執行。對於初始啟動或系統重新啟動,會執行本機檢查點,接著執行全域檢查點。在此階段期間開始定期檢查記憶體用量,並執行任何必要的節點接管。
階段 6。 在此階段中,定義並設定節點群組。
階段 7。 選取仲裁器節點並開始運作。設定下一個備份 ID 和備份磁碟寫入速度。達到此啟動階段的節點會標記為
已啟動
。現在,API 節點(包括SQL節點)可以連線到叢集。階段 8。 如果這是系統重新啟動,則會重建所有索引(由
DBDIH
執行)。階段 9。 重設節點內部啟動變數。
階段 100(已過時)。 以前,在節點重新啟動或初始節點重新啟動期間,API 節點可以在此時連線到節點,並開始接收事件。目前,此階段是空的。
階段 101。 在節點重新啟動或初始節點重新啟動的此時,會將事件傳遞給加入叢集的節點。新加入的節點會接管將其主要資料傳遞給訂閱者的責任。此階段也稱為
SUMA
交接階段。
在初始啟動或系統重新啟動完成此程序之後,會啟用交易處理。對於節點重新啟動或初始節點重新啟動,完成啟動程序表示節點現在可以作為交易協調器。