mysql集群

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” 博客,谢绝转载!

你可能感兴趣的:(mysql集群)