192.168.0.104 管理节点
192.168.0.106 数据节点
192.168.0.107 mysql节点
104:
rpm -ivh MySQL-Cluster-gpl-management-7.1.18-1.el6.x86_64.rpm
rpm -ivh MySQL-Cluster-gpl-tools-7.1.18-1.el6.x86_64.rpm
mkdir /usr/mysql-cluster
cd /usr/mysql-cluster
vi config.ini
[ndbd default]
noofreplicas=1 #该全局参数仅能在[NDBD DEFAULT]中设置,它定义了cluster中每个表保
存的副本数。该参数还指定了节点组的大小。节点组指的是保存相同信息的节点集合
datamemory=30M #该参数定义了数据节点用于保存数据库记录的空间大小
indexmemory=10M #该参数用于控制cluster中哈希(混编)索引所使用的存储量
[ndb_mgmd]
nodeid=1
hostname=192.168.0.104 #定义管理节点ip
datadir=/usr/mysql-cluster #它用于设置保存管理服务器输出文件的位置。这些文件包括
cluster日志文件、进程输出文件、以及端口监督程序的pid文件
[ndbd] #数据节点
nodeid=2
hostname=192.168.0.106
datadir=/usr/mysql-cluster
[mysqld] #mysql节点
nodeid=3
hostname=192.168.0.107
ndb_mgmd -f /usr/mysql-cluster/config.ini
ndb_mgm
>show
106:
rpm -ivh MySQL-Cluster-gpl-storage-7.1.18-1.el6.x86_64.rpm
mkdir /usr/mysql-cluster
vi /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.104 #指定管理节点
[mysql_cluster]
ndb-connectstring=192.168.0.104 #指定管理节点
ndbd #在104用show查看是否链接成功,第一次启动要ndbd --initial,这很重要。原因在于,该参数会使节点删除由早期ndbd实例实例创建的、用于恢复的任何文件,包括恢复用日志文件
107:
rpm -ivh MySQL-Cluster-gpl-client-7.1.18-1.el6.x86_64.rpm
rpm -ivh MySQL-Cluster-gpl-server-7.1.18-1.el6.x86_64.rpm
#出错可能是装了mysql mysql-lib冲突
#或者是库问题,rm -fr /var/lib/mysql/*
mysql_install_db --user=mysql重新生成
cd /etc
cp my.cnf.rpmsave my.cnf
vi my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.104
[mysql_cluster]
ndb-connectstring=192.168.0.104
/etc/init.d/mysql start #然后在104show查看是否来链接成功
########################################################
添加节点,实现集群
192.168.0.104 管理节点
192.168.0.106 192.168.0.108 数据节点
192.168.0.107 192.168.0.109 mysql节点
104 :
vi /usr/mysql-cluster/config.ini
[ndbd default]
noofreplicas=2 #定义两节点为一个组
datamemory=30M
indexmemory=10M
[ndb_mgmd]
nodeid=1
hostname=192.168.0.104
datadir=/usr/mysql-cluster
[ndbd]
nodeid=2
hostname=192.168.0.106
datadir=/usr/mysql-cluster
[ndbd]
nodeid=3
hostname=192.168.0.108
datadir=/usr/mysql-cluster
[mysqld]
nodeid=4
hostname=192.168.0.107
[mysqld]
nodeid=5
hostname=192.168.0.109
[mysqld] #备份用
ndb_mgmd -f /usr/mysql-cluster/config.ini --initial #重启
108跟106配置一样
ndbd --initial
107跟109配置一样
/etc/init.d/mysql start
#在104用show查看是否都链接成功
测试:
在107
vi test.sql
CREATE TABLE City (
ID int(11) NOT NULL auto_increment,
Name char(35) NOT NULL default '',
CountryCode char(3) NOT NULL default '',
District char(20) NOT NULL default '',
Population int(11) NOT NULL default '0',
PRIMARY KEY (ID)
) ENGINE=NDBCLUSTER; #指定MySQL为该表使用了NDB存储引擎,数据存储于各数据节点,不
然 mysql使用默认的MyISAM存储引擎,所有的数据将会存储于本机,和单机一样
INSERT INTO City VALUES (1,'Kabul','AFG','Kabol',1780000);
INSERT INTO City VALUES (2,'Qandahar','AFG','Qandahar',237500);
INSERT INTO City VALUES (3,'Herat','AFG','Herat',186800);
mysqladmin create westos
mysql westos < test.sql
#在107,109都可看到数据,数据存储在数据节点106,108上面,其中一个挂掉,数据仍然存在,实现高可用
可以使用 ndb_mgm > 2 stop 关掉id=2的数据节点
#########################################################
备份恢复
在104:
ndb_mgm> start backup
#备份此时数据,备份后在master数据节点产生/usr/mysql-cluster/BACKUP
#也有可能在两个数据节点都有,那么恢复时就要在两个数据节点都执行命令
scp /usr/bin/ndb_restore server6:/usr/bin #备份恢复命令,要在数据节点运行,因为是二进制代码,直接拷贝就能用
在107:
mysql>delete from City ; #删除数据
106:
ndb_restore -n 2 -b 1 -r /usr/mysql-cluster/BACKUP/BACKUP-1/
#n是在管理节点显示的nodeid,b是指第一次备份恢复,r指定备份路径
此时已经恢复成功,在mysql节点查看
本文出自 “Just” 博客,谢绝转载!