五 配置
通常情况下,需要为每个节点编写独立的配置信息,但因为数据节点和SQL节点的配置信息相同,所以若数据节点和SQL节点被设计在同一台计算机上的话,只用编写一个配置文件即可。则本次实验,本人只需编写三个配置文件即可,分别为:192.168.3.47上的管理节点(MGM)配置文件,SQL节点/数据节点配置文件和192.168.4.128上的SQL节点/数据节点的配置文件。
每个数据节点或者SQL节点需要一个my.cnf,该文件提供了两类信息:connectstring(连接字符),用于通知节点到哪里找到MGM节点;以及一行ndbcluster,用户通知该主机(容纳数据节点的机器)上的MySQL服务器运行在NDB模式下。
管理节点需要congfig.ini文件,该文件通知节点有多少需要维护的副本,需要在每个数据节点上为数据和索引分配多少内存,数据节点的位置,在每个数据节点上保存数据的磁盘位置,以及SQL节点的位置。
5.1 配置数据节点和SQL节点
数据节点所需要的my.cnf文件相当简单。配置文件应位于/etc目录下(如有必要,可手动创建该文件),例如:
vi /etc/my.cnf
对于每个SQL节点和数据节点,my.cnf文件类似于:
# Options for mysqld process:
[MYSQLD]
ndbcluster # run NDB engine
ndb-connectstring=192.168.3.47 # location of MGM node
[MYSQL_CLUSTER]
ndb-connectstring=192.168.3.47 # location of MGM node
输入上述内容后,保存文件。需要在容纳数据节点和SQL节点的每一台主机上执行上述操作。
5.2 配置管理节点
配置MGM节点的第一步是创建目录,该目录用户存放配置文件,然后创建配置文件本身。例如(以根用户身份运行):
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vi config.ini
对于基本的典型设置,config.ini文件应类似于:
# Options affecting ndbd processes on all data nodes:
[NDBD DEFAULT]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
# TCP/IP options:
[TCP DEFAULT]
#portnumber=2202
# Management process options:
[NDB_MGMD]
nodeid=1
HostName=192.168.3.47
DataDir=/var/lib/mysql-cluster/
# Options for data node :
[NDBD]
nodeid=12
HostName=192.168.4.128
DataDir=/usr/local/mysql/data/
# Options for data node :
[NDBD]
nodeid=11
HostName=192.168.3.47
DataDir=/usr/local/mysql/data
# SQL node options:
[MYSQLD]
nodeid=21
HostName=192.168.3.47
[MYSQLD]
nodeid=22
HostName=192.168.4.128
一旦创建了所有的配置文件并指定了这些最低选项,可启动簇,并验证所有进程均能正常运行。
注释:簇管理节点的默认端口是1186,数据节点的默认端后是2202。
六 首次启动
完成配置后,启动簇并不困难。必须在数据节点所在的主机上分别启动每个簇节点进程。尽管能够按任何顺序启动节点,但还是建议,首先启动管理节点,然后启动存储节点,最后启动SQL节点。
1. 在管理节点上,从系统shell执行以下指令以启动MGM节点进程:
shell> ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
可使用nbd_mgm指令登录到ndb_mgm客户端,登录后,可使用show指令来查看簇中个节点情况。
注意,启动MGM时,必须用-f或者–config-file选项,告诉ndb_mgmd到哪里找到配置文件。首次启动时必须选用–initial选项,或者更改了MGM节点的配置信息后,也需选用–initial选项。
2. 在每台数据节点主机上,对于首次启动,运行下述命令启动NDBD进程:
shell> ndbd --initial
注意,应仅在首次启动时ndbd时,或者在备份/恢复或者配置变化后重启ndbd时使用“–initial”参数,这很重要,因为该参数会使数据节点删除由早期ndbd实例创建的,用于恢复的任何文件,包括恢复用日志文件。
3. 在每台SQL节点上,执行以下指令,以启动mysqld进程:
/var/tmp/mysql/bin/mysqld_safe --user=mysql &
若执行此命令时出现不能同时写syslog和error.log的情况,则使用以下指令:
/var/tmp/mysql/bin/mysqld_safe --user=mysql --skip-syslog &
MySQL服务器启动后,可使用nysql -u root -p指令登录到mysql。
如果一切顺利,并且已经正确设置了簇,那么簇现在应该应能运行。通过调用ndb_mgm管理节点客户端,可对其进行测试。结果如下图:
七 测试MySQL-Cluster
7.1 常规测试
为了让数据表能够在cluster中正常复制,创建数据表时必须指定为ndbcluster引擎(engine=ndb或engine=ndbcluster)。
登录到192.168.3.47的mysql,然后创建一个新数据库songzi,并创建一个ndbcluster引擎的数据表test(id int,name char(10)),并向表中插入一条数据(0,songzi)。192.168.3.47上的操作及结果如下图:
然后登录192.168.4.128的mysql,可查看到数据已同步,并且新建的表及数据也存在。192.168.4.128上的操作及结果如下图:
7.2 模拟NDB节点Crash
终止192.168.4.128上的NDB进程,执行以下指令查看NDB进程情况
ps -ef | grep ndbd
kill 24077
ps -ef | grep ndbd
也可以在ndb_mgm管理节点客户端查看到192.168.4.128上的NDB节点已停掉
然后分别登录到192.168.3.47和192.168.4.128的mysql,可发现依然能够查询到数据。结果如下图
192.168.3.47
192.168.4.128
此结果说明测试成功,即当有一个NDB节点Crash后,整个MySQL环境仍可以正常服务。
7.3 模拟SQL节点Crash
在上192.168.3.47上终止mysqld进程,可执行以下指令:
killall mysqld
也可以在ndb_mgm管理节点客户端查看到192.168.3.47上的SQL节点已停掉
登录到192.168.4.128上的mysql,可查看到数据依然存在
此结果说明测试成功,及当有一个SQL节点Crash后,整个MySQL-Cluster环境仍可以工作。
至此,整个MySQL-Cluster安装及配置实验已完成。实验结束后,可使用指令shell> ndb_mgm -e shutdown或者ndb_mgm>shutdown来关闭簇中的所有节点。
MySQL Cluster 的详细介绍:请点这里
MySQL Cluster 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-04/130100.htm