21.2.4.1 通过二进制版本在 Windows 上安装 NDB 群集
本节使用本节开头概述的相同的 4 节点设置(请参阅第 21.2 节“ NDB 群集安装”)介绍使用 Oracle 提供的二进制“无安装” NDB Cluster 发行版在 Windows 上进行 NDB Cluster 的基本安装,如下所示。table:
table21.6 示例集群中节点的网络地址
Node | IP Address |
---|---|
Management 节点( mgmd ) | 198.51.100.10 |
SQL 节点(mysqld) | 198.51.100.20 |
数据节点“ A”(ndbd) | 198.51.100.30 |
数据节点“ B”(ndbd) | 198.51.100.40 |
与在其他平台上一样,运行 SQL 节点的 NDB 群集主机必须在其上安装 MySQL 服务器二进制文件(mysqld.exe)。您还应该在此主机上具有 MySQLClient 端(mysql.exe)。对于 Management 节点和数据节点,没有必要安装 MySQL Server 二进制文件。但是,每个 Management 节点都需要 Management 服务器守护程序(ndb_mgmd.exe);每个数据节点都需要数据节点守护程序(ndbd.exe或ndbmtd.exe)。在此示例中,我们将ndbd.exe称为数据节点可执行文件,但是可以完全相同的方式安装ndbmtd.exe,此程序的多线程版本。您还应该在 Management 服务器主机上安装 ManagementClient 端(ndb_mgm.exe)。本节介绍了为每种类型的 NDB 群集节点安装正确的 Windows 二进制文件所需的步骤。
Note
与其他 Windows 程序一样,NDB Cluster 可执行文件以.exe
文件 extensions 命名。但是,从命令行调用这些程序时,不必包括.exe
extensions。因此,我们在本文档中通常将这些程序简称为mysqld,mysql,ndb_mgmd等。您应该理解,无论我们引用(例如)mysqld还是mysqld.exe,两个名称都 table 示同一件事(MySQL 服务器程序)。
要使用 Oracle 的no-install
二进制文件设置 NDB 群集,安装过程的第一步是从https://dev.mysql.com/downloads/cluster/下载最新的 NDB 群集 Windows ZIP 二进制存档。该 Files 文件的文件名是mysql-cluster-gpl-ver-winarch.zip
,其中* ver
是NDB
存储引擎版本(例如7.5.20
),而 arch
*是体系结构(对于 32 位二进制文件是32
,对于 64 位二进制文件是64
)。例如,用于 64 位 Windows 系统的 NDB Cluster 7.5.20 归档文件名为mysql-cluster-gpl-7.5.20-win64.zip
。
您可以在 32 位和 64 位版本的 Windows 上运行 32 位 NDB 群集二进制文件。但是,64 位 NDB 群集二进制文件只能在 Windows 的 64 位版本上使用。如果在具有 64 位 CPU 的计算机上使用 Windows 32 位版本,则必须使用 32 位 NDB 群集二进制文件。
为了最大程度地减少需要从 Internet 下载或在计算机之间复制的文件数量,我们从要在其中运行 SQL 节点的计算机开始。
SQL 节点. 我们假设您已将存档副本放在 IP 地址为 198.51.100.20 的计算机上的目录C:\Documents and Settings\username\My Documents\Downloads
中,其中* username
*是当前用户的名称。 (您可以在命令行上使用ECHO %USERNAME%
获得此名称.)要将 NDB Cluster 可执行文件作为 Windows 服务安装和运行,该用户应是Administrators
组的成员。
从存档中提取所有文件。与 Windows 资源 Management 器集成的提取向导足以完成此任务。 (如果使用其他存档程序,请确保它从存档中提取所有文件和目录,并且保留了存档的目录结构.)当系统询问您目标目录时,ImportingC:\
,这将导致“提取向导”执行以下操作:将存档提取到目录C:\mysql-cluster-gpl-ver-winarch
。将此目录重命名为C:\mysql
。
可以将 NDB 群集二进制文件安装到C:\mysql\bin
以外的目录;但是,如果这样做,则必须相应地修改此过程中显示的路径。特别是,如果将 MySQL Server(SQL 节点)二进制文件安装到C:\mysql
或C:\Program Files\MySQL\MySQL Server 5.7
以外的位置,或者如果 SQL 节点的数据目录位于C:\mysql\data
或C:\Program Files\MySQL\MySQL Server 5.7\data
以外的位置,则必须在命令行上使用其他配置选项或在启动 SQL 节点时添加到my.ini
或my.cnf
文件中。有关配置 MySQL Server 在非标准位置运行的更多信息,请参见第 2.3.4 节“使用 noinstall ZIP 归档文件在 Microsoft Windows 上安装 MySQL”。
为了使具有 NDB 群集支持的 MySQL 服务器作为 NDB 群集的一部分运行,必须使用--ndbcluster和--ndb-connectstring选项启动它。尽管可以在命令行上指定这些选项,但是通常将它们放在选项文件中更为方便。为此,请在记事本或其他文本编辑器中创建一个新的文本文件。在此文件中 Importing 以下配置信息:
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine
ndb-connectstring=198.51.100.10 # location of management server
如果需要,您可以添加此 MySQL 服务器使用的其他选项(请参见第 2.3.4.2 节“创建选项文件”),但是文件必须至少包含所示的选项。将此文件另存为C:\mysql\my.ini
。这样就完成了 SQL 节点的安装和设置。
数据节点. Windows 主机上的 NDB 群集数据节点仅需要一个可执行文件,即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 群集的一部分,必须为每个数据节点指定 Management 服务器的地址或主机名。启动每个数据节点进程时,可以使用--ndb-connectstring或-c
选项在命令行上提供此信息。但是,通常最好将此信息放在选项文件中。为此,请在记事本或其他文本编辑器中创建一个新的文本文件,然后 Importing 以下文本:
[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 群集中使用,这仅使 Management 节点得以安装和配置。
Management 节点. 用于托管 NDB 群集 Management 节点的计算机上唯一需要的可执行程序是 Management 服务器程序ndb_mgmd.exe。但是,为了在启动 NDB 群集后对其进行 Management,还应该将 NDB 群集 ManagementClient 端程序ndb_mgm.exe与 Management 服务器安装在同一台计算机上。在下载并解压缩了no-install
归档文件的计算机上找到这两个程序;这应该是 SQL 节点主机上的目录C:\mysql\bin
。在 IP 地址为 198.51.100.10 的计算机上创建目录C:\mysql\bin
,然后将两个程序都复制到该目录。
现在,您应该创建两个供ndb_mgmd.exe
使用的配置文件:
- 本地配置文件,用于提供特定于 Management 节点本身的配置数据。通常,此文件仅需要提供 NDB 群集全局配置文件的位置(请参阅第 2 项)。
要创建此文件,请在记事本或其他文本编辑器中启动一个新的文本文件,然后 Importing 以下信息:
[mysql_cluster]
# Options for management node process
config-file=C:/mysql/bin/config.ini
将此文件另存为文本文件C:\mysql\bin\my.ini
。
-
一个全局配置文件,Management 节点可以从该文件获取总体上 ManagementNDB 群集的配置信息。此文件至少必须包含 NDB 群集中每个节点的一部分,以及 Management 节点和所有数据节点的 IP 地址或主机名(
HostName
配置参数)。还建议包括以下附加信息: -
任何 SQL 节点的 IP 地址或主机名
-
分配给每个数据节点的数据存储器和索引存储器(DataMemory和IndexMemory配置参数)
-
使用NoOfReplicas配置参数的副本数(请参阅第 21.1.2 节“ NDB 群集节点,节点组,副本和分区”)
-
每个数据节点存储数据和日志文件的目录,以及 Management 节点保留其日志文件的目录(在两种情况下均为DataDir配置参数)
使用文本编辑器(如记事本)创建一个新的文本文件,并 Importing 以下信息:
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2 # Number of 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
。
Important
在 Windows 上的 NDB Cluster 使用的程序选项或配置文件中指定目录路径时,不能使用单个反斜杠字符(\
)。相反,您必须使用第二个反斜杠(_ _)转义每个反斜杠字符,或用正斜杠字符(/
)替换反斜杠。例如,NDB 群集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 群集程序选项和配置文件中使用的目录路径中使用正斜杠。