ndbmtd 是 ndbd 的多執行緒版本,該程序用於處理使用 NDBCLUSTER
儲存引擎的所有表格中的資料。ndbmtd 適用於具有多個 CPU 核心的主機電腦。除非另有說明,否則 ndbmtd 的功能與 ndbd 相同;因此,在本節中,我們將重點介紹 ndbmtd 與 ndbd 的不同之處,您應該參考 第 25.5.1 節,「ndbd — NDB 叢集資料節點精靈」,以取得有關執行 NDB 叢集資料節點的更多資訊,這些資訊適用於資料節點程序的單執行緒和多執行緒版本。
與 ndbd 一起使用的命令列選項和組態參數也適用於 ndbmtd。如需有關這些選項和參數的更多資訊,請參閱 第 25.5.1 節,「ndbd — NDB 叢集資料節點精靈」和 第 25.4.3.6 節,「定義 NDB 叢集資料節點」。
ndbmtd 也與 ndbd 具有檔案系統相容性。換句話說,可以停止執行 ndbd 的資料節點,將二進位檔替換為 ndbmtd,然後重新啟動,而不會遺失任何資料。(但是,執行此操作時,您必須確保在重新啟動節點之前,已將 MaxNoOfExecutionThreads
設定為適當的值,如果您希望 ndbmtd 以多執行緒方式執行。)同樣地,只需停止節點,然後啟動 ndbd 以取代多執行緒二進位檔,即可將 ndbmtd 二進位檔替換為 ndbd。在兩者之間切換時,無需使用 --initial
來啟動資料節點二進位檔。
由於 ndbmtd 預設以單執行緒模式執行(也就是說,它的行為與 ndbd 相同),因此您必須設定它以使用多個執行緒。這可以透過在
config.ini
檔案中為MaxNoOfExecutionThreads
組態參數或ThreadConfig
組態參數設定適當的值來完成。使用MaxNoOfExecutionThreads
較為簡單,但ThreadConfig
提供更大的彈性。如需有關這些組態參數及其使用的更多資訊,請參閱 多執行緒組態參數 (ndbmtd)。與 ndbd 故障時產生追蹤檔案的方式相比,ndbmtd 程序中發生嚴重錯誤時產生追蹤檔案的方式略有不同。接下來的幾個段落將更詳細地討論這些差異。
與 ndbd 相同,ndbmtd 會產生一組記錄檔,這些記錄檔會放置在 config.ini
組態檔案中 DataDir
指定的目錄中。除了追蹤檔案外,這些檔案的產生方式與 ndbd 產生的檔案相同,且名稱也相同。
如果發生嚴重錯誤,ndbmtd 會產生追蹤檔案,描述錯誤發生之前的狀況。這些檔案可以在資料節點的 DataDir
中找到,對於 NDB 叢集開發和支援團隊分析問題很有用。會為每個 ndbmtd 執行緒產生一個追蹤檔案。這些檔案的名稱具有下列模式
ndb_node_id_trace.log.trace_id_tthread_id,
在此模式中,node_id
代表叢集中資料節點的唯一節點 ID,trace_id
是追蹤序號,而 thread_id
是執行緒 ID。例如,如果 ndbmtd 程序以節點 ID 為 3 且 MaxNoOfExecutionThreads
等於 4 的 NDB 叢集資料節點執行而發生故障,則會在資料節點的資料目錄中產生四個追蹤檔案。如果這是此節點第一次發生故障,則這些檔案的名稱為 ndb_3_trace.log.1_t1
、ndb_3_trace.log.1_t2
、ndb_3_trace.log.1_t3
和 ndb_3_trace.log.1_t4
。在內部,這些追蹤檔案的格式與 ndbd 追蹤檔案相同。
當資料節點程序過早關閉時產生的 ndbd 結束代碼和訊息也會由 ndbmtd 使用。請參閱 資料節點錯誤訊息,以取得這些訊息的清單。