NDBCluster 安装

参考博文:centos65安装简测mysql cluster 7.3.7

1 设备信息

1.1 设备台数

服务器数量 2 台:172.16.112.28 和 172.16.112.29

1.2 服务器信息

CentOS release 6.8 (Final)      

2 NDB Cluster安装

2.1 安装规划

整个 NDB Cluster 一共5个节点:
172.16.112.28 分别做一个数据节点,SQL节点,管理节点
172.16.112.29 分别做一个数据节点,SQL节点,管理节点

2.2 下载

Mysql Cluster下载地址
选择MySQL Cluster 7.4版本,因为该版本的 Mysql 版本为 5.6.42,可根据自身需要选择版本。

image.png

2.3 卸载老版本的Mysql

如果系统内已经有Mysql服务了,需要先卸载后再进行安装,否则会报错。

rpm -qa | grep mysql
mysql-libs-5.1.73-7.el6.x86_64
yum -y remove mysql-libs-5.1.73-7.el6.x86_64  #卸载命令

2.4 创建用户和组

groupadd mysql
useradd -r -g mysql mysql
id mysql

2.5 安装数据节点和Mysql节点

tar -zxvf mysql-cluster-gpl-7.4.22-linux-glibc2.12-x86_64.tar.gz

因为是绿色版的,所以解压就已经安装完成了。直接放至 /usr/local/mysql/ 目录下即可。

mv mysql-cluster-gpl-7.4.22-linux-glibc2.12-x86_64 /usr/local/mysql

给 mysql 系统权限

 chown -R root:mysql /usr/local/mysql/
 chown -R mysql /usr/local/mysql/data/ 

进入 mysql 目录下

cd /usr/local/mysql/

创建MySQL Server系统表

scripts/mysql_install_db --user=mysql

配置数据库服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

设置数据库为开机启动

chkconfig --add mysqld

配置Mysql文件

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

需要新增这些配置信息在 /etc/my.cnf 上

[mysql_cluster]
ndb-connectstring = 172.16.112.28  //172.16.112.28 为管理节点
[mysqld]
ndbcluster

双管理节点的为

[mysql_cluster]
ndb-connectstring=172.16.112.28,172.16.112.29
[mysqld]
ndbcluster

到这里数据节点和管理节点就完成了,两台服务器都需要配置

2.6 部署管理节点

管理节点只需要在一台服务器上部署就可以了,我们选择 .28 这台来部署。
讲 ndb_mgm ndb_mgmd 这两个文件移动到 /usr/local/bin 下

cp mysql/bin/ndb_mgm* /usr/local/bin

配置管理节点配置文件

mkdir /var/lib/mysql-cluster
vi /var/lib/mysql-cluster/config.ini

新增如下配置信息

[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2    # Number of replicas
DataMemory=80M    # How much memory to allocate for data storage
IndexMemory=18M   # How much memory to allocate for index storage

[tcp default]
# TCP/IP options:

[ndb_mgmd]
# Management process options:
hostname=172.16.112.28          # Hostname or IP address of MGM node
datadir=/var/lib/mysql-cluster  # Directory for MGM node log files
NodeId=1

[ndbd]
# Options for data node-1:
                                # (one [ndbd] section per data node)
hostname=172.16.112.29            # Hostname or IP address
datadir=/usr/local/mysql/data   # Directory for this data node's data files
NodeId=2

[ndbd]
# Options for data node-2:
hostname=172.16.112.28            # Hostname or IP address
datadir=/usr/local/mysql/data   # Directory for this data node's data files
NodeId=3

[mysqld]
# SQL node options:
hostname=172.16.112.28            # Hostname

[mysqld]
# SQL node options:
hostname=172.16.112.29            # Hostname

双管理节点 config.ini 配置文件如下

[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
ServerPort=2202

[ndb_mgmd default]
DataDir= /var/lib/mysql-cluster
LogDestination=SYSLOG:facility=local0;FILE:filename=/var/lib/mysql-cluster/log.log

[tcp default]

[ndb_mgmd]
NodeId=1
HostName=172.16.112.28
DataDir=/var/lib/mysql-cluster

[ndb_mgmd]
NodeId=2
HostName=172.16.112.29
DataDir=/var/lib/mysql-cluster

[ndbd]
NodeId=3
HostName=172.16.112.29
DataDir=/usr/local/mysql/data

[ndbd]
NodeId=4
HostName=172.16.112.28
DataDir=/usr/local/mysql/data

[mysqld]
NodeId=5
HostName=172.16.112.28

[mysqld]
NodeId=6
HostName=172.16.112.29

到这管理节点就配置完成了。

2.7 启动集群

启动循序应该为:管理节点->数据节点->SQL节点

单管理节点集群启动管理方法

更改 confg.ini 后或者第一次启动应该使用以下

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial

普通启动不需要加 --initial 参数

ndb_mgmd -f /var/lib/mysql-cluster/config.ini 
双管理节点集群启动管理方法

在 .28 那台服务器启动方法

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial

在 .29 那台服务器启动方法

ndb_mgmd -c 172.16.112.28 --ndb-nodeid=2 -f /var/lib/mysql-cluster/config.ini

这里的--ndb-nodeid 应该为本台服务器的地址在配置文件中的节点 id 标识号,而且两台服务器的配置文件应该一样。

启动数据节点

第一次需要加 --initial 参数,后续不需要

/usr/local/mysql/bin/ndbd --initial

两台服务器的数据节点都要启动
这里需要防火墙开放 1186 端口

vim /etc/sysconfig/iptables

添加下面的记录到 iptables 表中

-A INPUT -m state --state NEW -m tcp -p tcp --dport 1186 -j ACCEPT

重启防火墙

service iptables restart

启动SQL 节点

/etc/init.d/mysqld start

可用下面的命令检查是否启动成功,有进程则说明启动成功

ps -ef | grep mysql

2.7 关闭集群

关闭顺序应该为:SQL节点->数据节点->管理节点

关闭SQL节点

/etc/init.d/mysqld stop

关闭管理节点和数据节点

ndb_mgm -e shutdown

使用以上命令可以关闭管理节点和数据节点

3 NDB Cluster 使用

ndb_mgm 命令登录数据库

ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: 172.16.112.28:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=3    @172.16.112.29  (mysql-5.6.42 ndb-7.4.22, Nodegroup: 0, *)
id=4    @172.16.112.28  (mysql-5.6.42 ndb-7.4.22, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @172.16.112.28  (mysql-5.6.42 ndb-7.4.22)

[mysqld(API)]   2 node(s)
id=5    @172.16.112.28  (mysql-5.6.42 ndb-7.4.22)
id=6    @172.16.112.29  (mysql-5.6.42 ndb-7.4.22)

ndb_mgm>

可以看到用 show 命令可以查看各个节点的信息

4 NDB Cluster 数据备份与恢复

4.1 数据备份

编辑配置文件

[ndbd default]
BackupDataDir=/data/mysql-cluster

在 [ndbd default] 项中加入备份目录,如果配置该项,备份目录默认为 /usr/local/mysql/data/BACKUP/
登录 ndb_mgm , 执行备份命令即可

start backup nowait
 Node 3: Backup 1 started from node 1
Node 3: Backup 1 started from node 1 completed
 StartGCP: 383 StopGCP: 386
 #Records: 2060 #LogRecords: 0
 Data: 52040 bytes Log: 0 bytes

这里需要记录备份 id ,如该次备份的 id = 1。

4.2 数据恢复

需要数据恢复时,启动数据节点应该带 --initial 参数,否则恢复会失败。
执行数据数据恢复命令

ndb_restore -b1 -n4 -m -r /data/mysql-cluster/BACKUP/BACKUP-1/

-b 备份id
-n NDB节点id
-m 恢复表定义
-r 备份路径
-c cluster管理节点连接

5 NDB Cluster常见问题

5.1 关于双管理节点集群有个管理节点连接不上的问题

  1. 可能是该管理节点没启动。
  2. 可能是服务器防火墙没开,请检查 /etc/sysconfig/iptables 文件是否开放了 1186端口
  3. 可能是两台服务器的 config.ini 配置文件不一样,请检查后做以下操作:
    主服务器上
ndb_mgmd --skip-config-cache -f /var/lib/mysql-cluster/config.ini

另一台服务器上

ndb_mgmd -c 172.16.112.28 --skip-config-cache --ndb-nodeid=2 -f /var/lib/mysql-cluster/config.ini

5.2 NDB Cluster 数据同步的问题

  1. 若需要数据同步的话,需要将表的引擎设置 engine=ndbcluster。
  2. 数据库不会自动同步,需要再同步的服务器新建相同名字的数据库,库里面的表单数据就会自己同步了,前提表的引擎为 ndbcluster。

5.3 关于数据恢复的问题

Backup Id = 4
Nodeid = 4
backup path = /data/mysql-cluster/BACKUP/BACKUP-4/
Opening file '/data/mysql-cluster/BACKUP/BACKUP-4/BACKUP-4.4.ctl'
File size 22368 bytes
Backup version in files: ndb-6.3.11 ndb version: mysql-5.6.42 ndb-7.4.22
Stop GCP of Backup: 3157

Failed to initialize consumers

NDBT_ProgramExit: 1 - Failed

恢复数据时发现报以上的错误,解决方法为:
编辑 config.ini 配置文件
新增一行

[mysqld]

其他不用理,重启 NDBCluster,再进行备份即可

你可能感兴趣的:(NDBCluster 安装)