本節介紹在 Windows 上使用 Oracle 提供的二進位「免安裝」 NDB 叢集版本進行 NDB 叢集的基本安裝,使用本節開頭概述的相同 4 節點設定(請參閱第 25.3 節,「NDB 叢集安裝」),如下表所示
與其他平台一樣,執行 SQL 節點的 NDB 叢集主機電腦必須安裝 MySQL 伺服器二進位檔 (mysqld.exe)。您也應該在此主機上安裝 MySQL 客戶端程式 (mysql.exe)。對於管理節點和資料節點,則不需要安裝 MySQL 伺服器二進位檔;但是,每個管理節點都需要管理伺服器精靈程式 (ndb_mgmd.exe);每個資料節點都需要資料節點精靈程式 (ndbd.exe 或 ndbmtd.exe)。在此範例中,我們將 ndbd.exe 作為資料節點可執行檔,但是您可以安裝此程式的多執行緒版本 ndbmtd.exe,使用方式完全相同。您也應該在管理伺服器主機上安裝管理用戶端程式 (ndb_mgm.exe)。本節涵蓋安裝各類型 NDB 叢集節點正確 Windows 二進位檔所需的步驟。
與其他 Windows 程式一樣,NDB 叢集可執行檔的名稱包含 .exe
副檔名。但是,從命令列叫用這些程式時,不需要包含 .exe
副檔名。因此,我們經常在本文件中將這些程式簡稱為 mysqld、mysql、ndb_mgmd 等等。您應該了解,無論我們是指 (例如) mysqld 還是 mysqld.exe,這兩個名稱都表示相同的事物 (MySQL 伺服器程式)。
若要使用 Oracle 的 免安裝
二進位檔設定 NDB 叢集,安裝過程的第一步是從 https://mysqldev.dev.org.tw/downloads/cluster/ 下載最新的 NDB 叢集 Windows ZIP 二進位封存檔。此封存檔的檔名格式為 mysql-cluster-gpl-
,其中 ver
-winarch
.zipver
是 NDB
儲存引擎版本 (例如 8.4.0
),而 arch
是架構 (32
代表 32 位元二進位檔,而 64
代表 64 位元二進位檔)。例如,適用於 64 位元 Windows 系統的 NDB 叢集 8.4.0 封存檔名為 mysql-cluster-gpl-8.4.0-win64.zip
。
您可以在 32 位元和 64 位元版本的 Windows 上執行 32 位元的 NDB 叢集二進位檔;但是,64 位元的 NDB 叢集二進位檔只能在 64 位元版本的 Windows 上使用。如果您在具有 64 位元 CPU 的電腦上使用 32 位元版本的 Windows,則必須使用 32 位元的 NDB 叢集二進位檔。
為了盡量減少需要從網際網路下載或在機器之間複製的檔案數,我們先從您打算執行 SQL 節點的電腦開始。
SQL 節點。我們假設您已將封存檔的副本放置在 IP 位址為 198.51.100.20 的電腦上的 C:\Documents and Settings\
目錄中,其中 username
\My Documents\Downloadsusername
是目前使用者的名稱。(您可以使用命令列上的 ECHO %USERNAME%
取得此名稱。)若要以 Windows 服務的方式安裝和執行 NDB 叢集可執行檔,此使用者應該是 Administrators
群組的成員。
解壓縮封存檔中的所有檔案。Windows 檔案總管整合的解壓縮精靈足以執行此工作。(如果您使用其他封存程式,請確保它從封存檔中解壓縮所有檔案和目錄,並保留封存檔的目錄結構。)當系統要求您輸入目的地目錄時,輸入 C:\
,這會讓解壓縮精靈將封存檔解壓縮到 C:\mysql-cluster-gpl-
目錄。將此目錄重新命名為 ver
-winarch
C:\mysql
。
可以將 NDB 叢集二進位檔安裝到 C:\mysql\bin
以外的目錄;但是,如果您這樣做,則必須相應地修改此程序中顯示的路徑。特別是,如果 MySQL 伺服器 (SQL 節點) 二進位檔安裝在 C:\mysql
或 C:\Program Files\MySQL\MySQL Server 8.4
以外的位置,或者如果 SQL 節點的資料目錄位於 C:\mysql\data
或 C:\Program Files\MySQL\MySQL Server 8.4\data
以外的位置,則在啟動 SQL 節點時,必須在命令列上使用額外的組態選項,或將這些選項新增至 my.ini
或 my.cnf
檔案中。如需設定在非標準位置執行的 MySQL 伺服器的詳細資訊,請參閱第 2.3.3 節,「組態:手動」。
若要讓具有 NDB 叢集支援的 MySQL 伺服器作為 NDB 叢集的一部分執行,則必須使用選項 --ndbcluster
和 --ndb-connectstring
啟動。雖然您可以在命令列上指定這些選項,但通常將它們放在選項檔案中會更方便。若要執行此操作,請在 [記事本] 或其他文字編輯器中建立新的文字檔案。將下列組態資訊輸入此檔案中
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine
ndb-connectstring=198.51.100.10 # location of management server
您可以視需要新增此 MySQL 伺服器使用的其他選項 (請參閱第 2.3.3.2 節,「建立選項檔案」),但此檔案至少必須包含顯示的選項。將此檔案儲存為 C:\mysql\my.ini
。這樣就完成了 SQL 節點的安裝和設定。
資料節點。在 Windows 主機上的 NDB Cluster 資料節點只需要單一執行檔,即 ndbd.exe 或 ndbmtd.exe 其中之一。 在此範例中,我們假設您正在使用 ndbd.exe,但使用 ndbmtd.exe 時,相同的指示也適用。在您希望執行資料節點的每台電腦 (IP 位址為 198.51.100.30 和 198.51.100.40 的電腦) 上,建立目錄 C:\mysql
、C:\mysql\bin
和 C:\mysql\cluster-data
;然後,在您下載並解壓縮 no-install
封存檔的電腦上,找到 C:\mysql\bin
目錄中的 ndbd.exe
。將此檔案複製到這兩個資料節點主機上的 C:\mysql\bin
目錄中。
若要作為 NDB Cluster 的一部分運作,每個資料節點都必須提供管理伺服器的位址或主機名稱。您可以在啟動每個資料節點程序時,使用 --ndb-connectstring
或 -c
選項在命令列上提供此資訊。然而,通常最好將此資訊放入選項檔案中。若要執行此操作,請在記事本或其他文字編輯器中建立新的文字檔案,並輸入以下文字
[mysql_cluster]
# Options for data node process:
ndb-connectstring=198.51.100.10 # location of management server
將此檔案儲存為資料節點主機上的 C:\mysql\my.ini
。建立另一個包含相同資訊的文字檔案,並將其儲存為另一個資料節點主機上的 C:mysql\my.ini
,或將 my.ini 檔案從第一個資料節點主機複製到第二個資料節點主機,確保將副本放在第二個資料節點的 C:\mysql
目錄中。現在這兩個資料節點主機都已準備好在 NDB Cluster 中使用,只剩下管理節點需要安裝和設定。
管理節點。用於託管 NDB Cluster 管理節點的電腦上唯一需要的執行檔是管理伺服器程式 ndb_mgmd.exe。但是,為了在 NDB Cluster 啟動後管理它,您還應該在與管理伺服器相同的機器上安裝 NDB Cluster 管理用戶端程式 ndb_mgm.exe。在您下載並解壓縮 no-install
封存檔的機器上找到這兩個程式;這應該是 SQL 節點主機上的 C:\mysql\bin
目錄。在 IP 位址為 198.51.100.10 的電腦上建立目錄 C:\mysql\bin
,然後將這兩個程式複製到此目錄中。
您現在應該為 ndb_mgmd.exe
建立兩個設定檔
一個本機設定檔,用於提供特定於管理節點本身的設定資料。通常,此檔案只需要提供 NDB Cluster 全域設定檔的位置 (請參閱項目 2)。
若要建立此檔案,請在記事本或其他文字編輯器中啟動一個新的文字檔案,並輸入以下資訊
[mysql_cluster] # Options for management node process config-file=C:/mysql/bin/config.ini
將此檔案儲存為文字檔案
C:\mysql\bin\my.ini
。一個全域設定檔,管理節點可以從中獲取控制整個 NDB Cluster 的設定資訊。至少,此檔案必須包含 NDB Cluster 中每個節點的區段,以及管理節點和所有資料節點的 IP 位址或主機名稱 (
HostName
設定參數)。也建議加入以下其他資訊任何 SQL 節點的 IP 位址或主機名稱
分配給每個資料節點的資料記憶體和索引記憶體 (
DataMemory
和IndexMemory
設定參數)片段複本的數量,使用
NoOfReplicas
設定參數 (請參閱章節 25.2.2,「NDB Cluster 節點、節點群組、片段複本和分割區」)每個資料節點儲存其資料和記錄檔的目錄,以及管理節點保留其記錄檔的目錄 (在這兩種情況下,都是使用
DataDir
設定參數)
使用記事本等文字編輯器建立一個新的文字檔案,並輸入以下資訊
[ndbd default] # Options affecting ndbd processes on all data nodes: NoOfReplicas=2 # Number of fragment replicas DataDir=C:/mysql/cluster-data # Directory for each data node's data files # Forward slashes used in directory path, # rather than backslashes. This is correct; # see Important note in text DataMemory=80M # Memory allocated to data storage IndexMemory=18M # Memory allocated to index storage # For DataMemory and IndexMemory, we have used the # default values. Since the "world" database takes up # only about 500KB, this should be more than enough for # this example Cluster setup. [ndb_mgmd] # Management process options: HostName=198.51.100.10 # Hostname or IP address of management node DataDir=C:/mysql/bin/cluster-logs # Directory for management node log files [ndbd] # Options for data node "A": # (one [ndbd] section per data node) HostName=198.51.100.30 # Hostname or IP address [ndbd] # Options for data node "B": HostName=198.51.100.40 # Hostname or IP address [mysqld] # SQL node options: HostName=198.51.100.20 # Hostname or IP address
將此檔案儲存為文字檔案
C:\mysql\bin\config.ini
。
當在 Windows 上的 NDB Cluster 使用的程式選項或設定檔中指定目錄路徑時,不能使用單一反斜線字元 (\
)。相反地,您必須用第二個反斜線 (\\
) 跳脫每個反斜線字元,或用正斜線字元 (/
) 取代反斜線。例如,以下來自 NDB Cluster config.ini
檔案的 [ndb_mgmd]
區段的行不起作用
DataDir=C:\mysql\bin\cluster-logs
相反地,您可以使用以下任一種方式
DataDir=C:\\mysql\\bin\\cluster-logs # Escaped backslashes
DataDir=C:/mysql/bin/cluster-logs # Forward slashes
為了簡潔和易讀起見,我們建議您在 Windows 上的 NDB Cluster 程式選項和設定檔中使用的目錄路徑中使用正斜線。