21.2.4.1 通过二进制版本在 Windows 上安装 NDB 群集

本节使用本节开头概述的相同的 4 节点设置(请参阅第 21.2 节“ NDB 群集安装”)介绍使用 Oracle 提供的二进制“无安装” NDB Cluster 发行版在 Windows 上进行 NDB Cluster 的基本安装,如下所示。table:

table21.6 示例集群中节点的网络地址

NodeIP 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.exendbmtd.exe)。在此示例中,我们将ndbd.exe称为数据节点可执行文件,但是可以完全相同的方式安装ndbmtd.exe,此程序的多线程版本。您还应该在 Management 服务器主机上安装 ManagementClient 端(ndb_mgm.exe)。本节介绍了为每种类型的 NDB 群集节点安装正确的 Windows 二进制文件所需的步骤。

Note

与其他 Windows 程序一样,NDB Cluster 可执行文件以.exe文件 extensions 命名。但是,从命令行调用这些程序时,不必包括.exeextensions。因此,我们在本文档中通常将这些程序简称为mysqldmysqlndb_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:\mysqlC:\Program Files\MySQL\MySQL Server 5.7以外的位置,或者如果 SQL 节点的数据目录位于C:\mysql\dataC:\Program Files\MySQL\MySQL Server 5.7\data以外的位置,则必须在命令行上使用其他配置选项或在启动 SQL 节点时添加到my.inimy.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.exendbmtd.exe之一。对于此示例,我们假设您使用的是ndbd.exe,但是使用ndbmtd.exe时,同样的说明适用。在希望运行数据节点的每台计算机(IP 地址为 198.51.100.30 和 198.51.100.40 的计算机)上,创建目录C:\mysqlC:\mysql\binC:\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 地址或主机名

  • 分配给每个数据节点的数据存储器和索引存储器(DataMemoryIndexMemory配置参数)

  • 使用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 群集程序选项和配置文件中使用的目录路径中使用正斜杠。