文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
手冊頁 (TGZ) - 258.5Kb
手冊頁 (Zip) - 365.5Kb
資訊 (Gzip) - 4.0Mb
資訊 (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  與多個 NDB Cluster 節點相關的限制

25.2.7.10 與多個 NDB Cluster 節點相關的限制

多個 SQL 節點。  以下是關於將多個 MySQL 伺服器用作 NDB Cluster SQL 節點的問題,這些問題特定於 NDBCLUSTER 儲存引擎

  • 未分散儲存的程式。  使用 NDB 儲存引擎的表格支援儲存程序、儲存函數、觸發器和排程事件,但這些 不會 在作為叢集 SQL 節點的 MySQL 伺服器之間自動傳播,而且必須在每個 SQL 節點上單獨重新建立。請參閱 NDB Cluster 中的儲存常式和觸發器

  • 沒有分散式表格鎖定。  LOCK TABLES 陳述式或 GET_LOCK() 呼叫僅適用於發出鎖定的 SQL 節點;叢集中的任何其他 SQL 節點都 看不到 此鎖定。對於任何鎖定表格作為其運算一部分的陳述式發出的鎖定,情況都是如此。(範例請參閱下一項。)

    NDBCLUSTER 中實作表格鎖定可以在 API 應用程式中完成,並確保所有應用程式都先將 LockMode 設定為 LM_ReadLM_Exclusive。如需如何執行此操作的詳細資訊,請參閱 NDB Cluster API 指南中關於 NdbOperation::getLockHandle() 的說明。

  • ALTER TABLE 操作。  當執行多個 MySQL 伺服器 (SQL 節點) 時,ALTER TABLE 並非完全鎖定。(如前一項所述,NDB Cluster 不支援分散式表格鎖定。)

多個管理節點。  當使用多個管理伺服器時

  • 如果任何管理伺服器在同一主機上執行,您必須在連接字串中給節點明確的 ID,因為節點 ID 的自動分配無法在同一主機上的多個管理伺服器之間運作。如果每個管理伺服器都位於不同的主機上,則不需要此設定。

  • 當管理伺服器啟動時,它會先檢查同一 NDB Cluster 中是否有任何其他管理伺服器,並且在成功連線到其他管理伺服器後,會使用其組態資料。這表示,除非管理伺服器是唯一執行的伺服器,否則會忽略管理伺服器的 --reload--initial 啟動選項。這也表示,當執行具有多個管理節點的 NDB Cluster 的滾動重新啟動時,如果 (且僅如果) 該管理伺服器是此 NDB Cluster 中唯一執行的管理伺服器,則管理伺服器會讀取其自己的組態檔。如需詳細資訊,請參閱 第 25.6.5 節,〈執行 NDB Cluster 的滾動重新啟動〉

多個網路位址。  不支援每個資料節點有多個網路位址。使用這些位址可能會導致問題:在資料節點失敗時,SQL 節點會等待確認資料節點關閉,但永遠不會收到確認,因為到該資料節點的另一條路徑仍然開啟。這實際上會使叢集無法運作。

注意

可以使用單一資料節點的多個網路硬體介面 (例如乙太網路卡),但這些必須繫結到相同的位址。這也表示,無法在 config.ini 檔案中的每個連線使用一個以上的 [tcp] 區段。如需詳細資訊,請參閱 第 25.4.3.10 節,〈NDB Cluster TCP/IP 連線〉