在本节中,我们讨论通过创建和编辑配置文件来手动配置已安装的 NDB Cluster。
对于我们的四节点、四主机 NDB Cluster(请参阅 集群节点和主机计算机),有必要编写四个配置文件,每个节点主机一个。
每个数据节点或 SQL 节点都需要一个
my.cnf
提供两部分信息的文件:一个连接字符串,告诉节点在哪里可以找到管理节点,还有一行告诉该主机(托管数据节点的机器)上的 MySQL 服务器启用NDBCLUSTER
存储引擎 。有关连接字符串的更多信息,请参阅 第 21.4.3.3 节,“NDB Cluster 连接字符串”。
管理节点需要一个
config.ini
文件来告诉它要维护多少分片副本,每个数据节点上要为数据和索引分配多少内存,到哪里找数据节点,每个数据节点上要将数据保存到磁盘的什么位置,从哪里去找到任何 SQL 节点。
配置数据节点和 SQL 节点。 my.cnf
数据节点所需
的文件非常简单。配置文件应位于/etc
目录中,并且可以使用任何文本编辑器进行编辑。(如果该文件不存在,则创建该文件。)例如:
$> vi /etc/my.cnf
我们在这里展示了vi是用来创建文件的,但是任何文本编辑器都应该可以正常工作。
对于我们示例设置中的每个数据节点和 SQL 节点,
my.cnf
应该如下所示:
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine
[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=198.51.100.10 # location of management server
输入上述信息后,保存此文件并退出文本编辑器。为托管数据节点 “ A ”、数据节点“ B ”和 SQL 节点的机器执行此操作。
如前所示,一旦您使用文件的and
部分中
的and
参数
启动了mysqld进程,您就无法在没有实际启动集群的情况下执行任何or
语句。否则,这些语句会因错误而失败。这是设计使然。
ndbcluster
ndb-connectstring
[mysqld]
[mysql_cluster]
my.cnf
CREATE TABLE
ALTER TABLE
配置管理节点。
配置管理节点的第一步是创建可以在其中找到配置文件的目录,然后创建文件本身。例如(运行为
root
):
$> mkdir /var/lib/mysql-cluster
$> cd /var/lib/mysql-cluster
$> vi config.ini
对于我们的代表性设置,该config.ini
文件应如下所示:
[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2 # Number of fragment replicas
DataMemory=80M # How much memory to allocate for data storage
IndexMemory=18M # How much memory to allocate for 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 NDB Cluster setup.
# NOTE: IndexMemory is deprecated in NDB 7.6 and later; in
# these versions, resources for all data and indexes are
# allocated by DataMemory and any that are set for IndexMemory
# are added to the DataMemory resource pool
ServerPort=2202 # This the default value; however, you can use any
# port that is free for all the hosts in the cluster
# Note1: It is recommended that you do not specify the port
# number at all and simply allow the default value to be used
# instead
# Note2: The port was formerly specified using the PortNumber
# TCP parameter; this parameter is no longer available in NDB
# Cluster 7.5.
[ndb_mgmd]
# Management process options:
HostName=198.51.100.10 # Hostname or IP address of management node
DataDir=/var/lib/mysql-cluster # 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
NodeId=2 # Node ID for this data node
DataDir=/usr/local/mysql/data # Directory for this data node's data files
[ndbd]
# Options for data node "B":
HostName=198.51.100.40 # Hostname or IP address
NodeId=3 # Node ID for this data node
DataDir=/usr/local/mysql/data # Directory for this data node's data files
[mysqld]
# SQL node options:
HostName=198.51.100.20 # Hostname or IP address
# (additional mysqld connections can be
# specified for this node for various
# purposes such as running ndb_restore)
该world
数据库可以从
https://mysql.net.cn/doc/index-other.html下载。
创建所有配置文件并指定这些最少的选项后,您就可以继续启动集群并验证所有进程是否都在运行。我们在第 21.3.4 节,“NDB Cluster 的初始启动”中讨论了这是如何完成的 。
有关可用的 NDB Cluster 配置参数及其用途的更多详细信息,请参阅 第 21.4.3 节,“NDB Cluster 配置文件”和 第 21.4 节,“NDB Cluster 的配置”。有关与备份相关的 NDB Cluster 配置,请参阅 第 21.6.8.3 节,“NDB Cluster 备份的配置”。
Cluster管理节点默认端口为1186;数据节点的默认端口是2202。但是,集群可以自动从已经空闲的数据节点中分配端口给数据节点。