一旦 NDB 集群可执行文件和必要的配置文件就绪,执行集群的首次启动只需启动集群中所有节点的 NDB 集群可执行文件即可。每个集群节点进程必须分别启动,并在其所在的计算机上启动。管理节点应该首先启动,其次是数据节点,最后是任何 SQL 节点。
在管理节点主机上,从命令行发出以下命令来启动管理节点进程。输出应该类似于这里显示的输出
C:\mysql\bin> ndb_mgmd 2010-06-23 07:53:34 [MgmtSrvr] INFO -- NDB Cluster Management Server. mysql-9.0.0-ndb-9.0.0 2010-06-23 07:53:34 [MgmtSrvr] INFO -- Reading cluster configuration from 'config.ini'
管理节点进程继续将日志输出打印到控制台。这是正常的,因为管理节点没有作为 Windows 服务运行。(如果您在 Linux 等类 Unix 平台上使用过 NDB 集群,您可能会注意到,管理节点在 Windows 上的默认行为实际上与它在 Unix 系统上的行为相反,在 Unix 系统上,它默认情况下作为 Unix 守护进程运行。这种行为对于在 Windows 上运行的 NDB 集群数据节点进程也是如此。)因此,不要关闭运行 ndb_mgmd.exe 的窗口;这样做会终止管理节点进程。(请参阅 第 25.3.2.4 节,“将 NDB 集群进程安装为 Windows 服务”,我们将在其中演示如何安装和运行 NDB 集群进程作为 Windows 服务。)
所需的
-f
选项告诉管理节点在哪里可以找到全局配置文件 (config.ini
)。此选项的完整形式是--config-file
。重要NDB 集群管理节点缓存它从
config.ini
读取的配置数据;一旦它创建了配置缓存,它就会忽略后续启动中的config.ini
文件,除非强制它这样做。这意味着,如果管理节点由于此文件中的错误而无法启动,您必须在更正其中的任何错误后让管理节点重新读取config.ini
。您可以通过在命令行上使用--reload
或--initial
选项启动 ndb_mgmd.exe 来做到这一点。这两种选项都可以刷新配置缓存。在管理节点的
my.ini
文件中使用这两种选项中的任何一个都没有必要,也不建议这样做。在每个数据节点主机上,运行此处显示的命令来启动数据节点进程
C:\mysql\bin> ndbd 2010-06-23 07:53:46 [ndbd] INFO -- Configuration fetched from 'localhost:1186', generation: 1
在每种情况下,数据节点进程的输出的第一行应该类似于前面示例中显示的输出,并且后面跟着额外的日志输出行。与管理节点进程一样,这是正常的,因为数据节点没有作为 Windows 服务运行。因此,不要关闭运行数据节点进程的控制台窗口;这样做会终止 ndbd.exe。(有关更多信息,请参阅 第 25.3.2.4 节,“将 NDB 集群进程安装为 Windows 服务”。)
尚未启动 SQL 节点;它无法连接到集群,直到数据节点完成启动,这可能需要一些时间。相反,在管理节点主机上的一个新的控制台窗口中,启动 NDB 集群管理客户端 ndb_mgm.exe,它应该位于管理节点主机的
C:\mysql\bin
中。(不要尝试通过键入 CTRL+C 来重新使用运行 ndb_mgmd.exe 的控制台窗口,因为这会终止管理节点。)生成的输出应该如下所示C:\mysql\bin> ndb_mgm -- NDB Cluster -- Management Client -- ndb_mgm>
当提示
ndb_mgm>
出现时,这表示管理客户端已准备好接收 NDB 集群管理命令。您可以通过在管理客户端提示符下输入ALL STATUS
来观察数据节点启动时的状态。此命令会导致数据节点启动序列的运行报告,它应该类似于以下内容ndb_mgm> ALL STATUS Connected to Management Server at: localhost:1186 (using cleartext) Node 2: starting (Last completed phase 3) (mysql-9.0.0-ndb-9.0.0) Node 3: starting (Last completed phase 3) (mysql-9.0.0-ndb-9.0.0) Node 2: starting (Last completed phase 4) (mysql-9.0.0-ndb-9.0.0) Node 3: starting (Last completed phase 4) (mysql-9.0.0-ndb-9.0.0) Node 2: Started (version 9.0.0) Node 3: Started (version 9.0.0) ndb_mgm>
注意在管理客户端中发出的命令不区分大小写;我们使用大写作为这些命令的规范形式,但在将它们输入 ndb_mgm 客户端时,您不需要遵守此约定。有关更多信息,请参阅 第 25.6.1 节,“NDB 集群管理客户端中的命令”。
由
ALL STATUS
生成的输出可能与这里显示的内容有所不同,这取决于数据节点能够启动的速度、您使用的 NDB 集群软件的版本号以及其他因素。重要的是,当您看到两个数据节点都已启动时,您就可以准备启动 SQL 节点。您可以保持 ndb_mgm.exe 运行;它不会对 NDB 集群的性能产生负面影响,我们将在下一步中使用它来验证您启动 SQL 节点后它是否连接到集群。
在被指定为 SQL 节点主机的计算机上,打开一个控制台窗口,并导航到解压缩 NDB 集群二进制文件的目录(如果您按照我们的示例操作,则为
C:\mysql\bin
)。通过从命令行调用 mysqld.exe 来启动 SQL 节点,如下所示
C:\mysql\bin> mysqld --console
--console
选项会导致将日志信息写入控制台,这在出现问题时可能会有所帮助。(一旦您确定 SQL 节点以令人满意的方式运行,您就可以停止它,并在没有--console
选项的情况下重新启动它,以便正常执行日志记录。)在运行管理客户端 (ndb_mgm.exe) 的管理节点主机上的控制台窗口中,输入
SHOW
命令,它应该生成类似于此处显示的输出ndb_mgm> SHOW Connected to Management Server at: localhost:1186 (using cleartext) Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 @198.51.100.30 (Version: 9.0.0-ndb-9.0.0, Nodegroup: 0, *) id=3 @198.51.100.40 (Version: 9.0.0-ndb-9.0.0, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=1 @198.51.100.10 (Version: 9.0.0-ndb-9.0.0) [mysqld(API)] 1 node(s) id=4 @198.51.100.20 (Version: 9.0.0-ndb-9.0.0)
您还可以使用 mysql 客户端 (mysql.exe) 中的
SHOW ENGINE NDB STATUS
语句来验证 SQL 节点是否连接到 NDB 集群。
您现在应该可以使用 NDB 集群的 NDBCLUSTER
存储引擎操作数据库对象和数据。有关更多信息和示例,请参阅 第 25.3.5 节,“带表和数据的 NDB 集群示例”。
您还可以安装 ndb_mgmd.exe、ndbd.exe 和 ndbmtd.exe 作为 Windows 服务。有关如何执行此操作的信息,请参阅 第 25.3.2.4 节,“将 NDB 集群进程安装为 Windows 服务”)。