參考博文:centos65安裝簡測mysql cluster 7.3.7
1 設(shè)備信息
1.1 設(shè)備臺數(shù)
服務(wù)器數(shù)量 2 臺:172.16.112.28 和 172.16.112.29
1.2 服務(wù)器信息
CentOS release 6.8 (Final)
2 NDB Cluster安裝
2.1 安裝規(guī)劃
整個(gè) NDB Cluster 一共5個(gè)節(jié)點(diǎn):
172.16.112.28 分別做一個(gè)數(shù)據(jù)節(jié)點(diǎn),SQL節(jié)點(diǎn),管理節(jié)點(diǎn)
172.16.112.29 分別做一個(gè)數(shù)據(jù)節(jié)點(diǎn),SQL節(jié)點(diǎn),管理節(jié)點(diǎn)
2.2 下載
Mysql Cluster下載地址
選擇MySQL Cluster 7.4版本,因?yàn)樵摪姹镜?Mysql 版本為 5.6.42,可根據(jù)自身需要選擇版本。

2.3 卸載老版本的Mysql
如果系統(tǒng)內(nèi)已經(jīng)有Mysql服務(wù)了,需要先卸載后再進(jìn)行安裝,否則會(huì)報(bào)錯(cuò)。
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 創(chuàng)建用戶和組
groupadd mysql
useradd -r -g mysql mysql
id mysql
2.5 安裝數(shù)據(jù)節(jié)點(diǎn)和Mysql節(jié)點(diǎn)
tar -zxvf mysql-cluster-gpl-7.4.22-linux-glibc2.12-x86_64.tar.gz
因?yàn)槭蔷G色版的,所以解壓就已經(jīng)安裝完成了。直接放至 /usr/local/mysql/ 目錄下即可。
mv mysql-cluster-gpl-7.4.22-linux-glibc2.12-x86_64 /usr/local/mysql
給 mysql 系統(tǒng)權(quán)限
chown -R root:mysql /usr/local/mysql/
chown -R mysql /usr/local/mysql/data/
進(jìn)入 mysql 目錄下
cd /usr/local/mysql/
創(chuàng)建MySQL Server系統(tǒng)表
scripts/mysql_install_db --user=mysql
配置數(shù)據(jù)庫服務(wù)
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
設(shè)置數(shù)據(jù)庫為開機(jī)啟動(dòng)
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 為管理節(jié)點(diǎn)
[mysqld]
ndbcluster
雙管理節(jié)點(diǎn)的為
[mysql_cluster]
ndb-connectstring=172.16.112.28,172.16.112.29
[mysqld]
ndbcluster
到這里數(shù)據(jù)節(jié)點(diǎn)和管理節(jié)點(diǎn)就完成了,兩臺服務(wù)器都需要配置
2.6 部署管理節(jié)點(diǎn)
管理節(jié)點(diǎn)只需要在一臺服務(wù)器上部署就可以了,我們選擇 .28 這臺來部署。
講 ndb_mgm ndb_mgmd 這兩個(gè)文件移動(dòng)到 /usr/local/bin 下
cp mysql/bin/ndb_mgm* /usr/local/bin
配置管理節(jié)點(diǎn)配置文件
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
雙管理節(jié)點(diǎn) 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
到這管理節(jié)點(diǎn)就配置完成了。
2.7 啟動(dòng)集群
啟動(dòng)循序應(yīng)該為:管理節(jié)點(diǎn)->數(shù)據(jù)節(jié)點(diǎn)->SQL節(jié)點(diǎn)
單管理節(jié)點(diǎn)集群啟動(dòng)管理方法
更改 confg.ini 后或者第一次啟動(dòng)應(yīng)該使用以下
ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
普通啟動(dòng)不需要加 --initial 參數(shù)
ndb_mgmd -f /var/lib/mysql-cluster/config.ini
雙管理節(jié)點(diǎn)集群啟動(dòng)管理方法
在 .28 那臺服務(wù)器啟動(dòng)方法
ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
在 .29 那臺服務(wù)器啟動(dòng)方法
ndb_mgmd -c 172.16.112.28 --ndb-nodeid=2 -f /var/lib/mysql-cluster/config.ini
這里的--ndb-nodeid 應(yīng)該為本臺服務(wù)器的地址在配置文件中的節(jié)點(diǎn) id 標(biāo)識號,而且兩臺服務(wù)器的配置文件應(yīng)該一樣。
啟動(dòng)數(shù)據(jù)節(jié)點(diǎn)
第一次需要加 --initial 參數(shù),后續(xù)不需要
/usr/local/mysql/bin/ndbd --initial
兩臺服務(wù)器的數(shù)據(jù)節(jié)點(diǎn)都要啟動(dòng)
這里需要防火墻開放 1186 端口
vim /etc/sysconfig/iptables
添加下面的記錄到 iptables 表中
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1186 -j ACCEPT
重啟防火墻
service iptables restart
啟動(dòng)SQL 節(jié)點(diǎn)
/etc/init.d/mysqld start
可用下面的命令檢查是否啟動(dòng)成功,有進(jìn)程則說明啟動(dòng)成功
ps -ef | grep mysql
2.7 關(guān)閉集群
關(guān)閉順序應(yīng)該為:SQL節(jié)點(diǎn)->數(shù)據(jù)節(jié)點(diǎn)->管理節(jié)點(diǎn)
關(guān)閉SQL節(jié)點(diǎn)
/etc/init.d/mysqld stop
關(guān)閉管理節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)
ndb_mgm -e shutdown
使用以上命令可以關(guān)閉管理節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)
3 NDB Cluster 使用
ndb_mgm 命令登錄數(shù)據(jù)庫
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 命令可以查看各個(gè)節(jié)點(diǎn)的信息
4 NDB Cluster 數(shù)據(jù)備份與恢復(fù)
4.1 數(shù)據(jù)備份
編輯配置文件
[ndbd default]
BackupDataDir=/data/mysql-cluster
在 [ndbd default] 項(xiàng)中加入備份目錄,如果配置該項(xiàng),備份目錄默認(rèn)為 /usr/local/mysql/data/BACKUP/
登錄 ndb_mgm , 執(zhí)行備份命令即可
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 數(shù)據(jù)恢復(fù)
需要數(shù)據(jù)恢復(fù)時(shí),啟動(dòng)數(shù)據(jù)節(jié)點(diǎn)應(yīng)該帶 --initial 參數(shù),否則恢復(fù)會(huì)失敗。
執(zhí)行數(shù)據(jù)數(shù)據(jù)恢復(fù)命令
ndb_restore -b1 -n4 -m -r /data/mysql-cluster/BACKUP/BACKUP-1/
-b 備份id
-n NDB節(jié)點(diǎn)id
-m 恢復(fù)表定義
-r 備份路徑
-c cluster管理節(jié)點(diǎn)連接
5 NDB Cluster常見問題
5.1 關(guān)于雙管理節(jié)點(diǎn)集群有個(gè)管理節(jié)點(diǎn)連接不上的問題
- 可能是該管理節(jié)點(diǎn)沒啟動(dòng)。
- 可能是服務(wù)器防火墻沒開,請檢查 /etc/sysconfig/iptables 文件是否開放了 1186端口
- 可能是兩臺服務(wù)器的 config.ini 配置文件不一樣,請檢查后做以下操作:
主服務(wù)器上
ndb_mgmd --skip-config-cache -f /var/lib/mysql-cluster/config.ini
另一臺服務(wù)器上
ndb_mgmd -c 172.16.112.28 --skip-config-cache --ndb-nodeid=2 -f /var/lib/mysql-cluster/config.ini
5.2 NDB Cluster 數(shù)據(jù)同步的問題
- 若需要數(shù)據(jù)同步的話,需要將表的引擎設(shè)置 engine=ndbcluster。
- 數(shù)據(jù)庫不會(huì)自動(dòng)同步,需要再同步的服務(wù)器新建相同名字的數(shù)據(jù)庫,庫里面的表單數(shù)據(jù)就會(huì)自己同步了,前提表的引擎為 ndbcluster。
5.3 關(guān)于數(shù)據(jù)恢復(fù)的問題
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
恢復(fù)數(shù)據(jù)時(shí)發(fā)現(xiàn)報(bào)以上的錯(cuò)誤,解決方法為:
編輯 config.ini 配置文件
新增一行
[mysqld]
其他不用理,重啟 NDBCluster,再進(jìn)行備份即可