Linux系统中配置MySQL群集(MySQL Cluster)(一)

2014-11-24 17:57:11 · 作者: · 浏览: 0

MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障。


Mysql群集(Cluster)简介


MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的。MySQL群集中有三种节点:管理节点、数据节点和SQL节点。群集中的某计算机可能是某一种节点,也可能是两种或三种节点的集合。这三种节点只是在逻辑上的划分,所以它们不一定和物理计算机是一一对应的关系。


管理节点(也可以称管理服务器)主要负责管理数据节点和SQL节点,还有群集配置文件和群集日志文件。它监控其他节点的工作状态,能够启动、关闭或重启某个节点。其他节点从管理节点检索配置数据,当数据节点有新事件时就把事件信息发送给管理节点并写入群集日志。


数据节点用于存储数据。


SQL节点跟一般的MySQL服务器是一样的,我们可以通过它进行SQL操作。


下图中画出了三种群集节点及应用程序间的关系:



一、配置环境:


MySQL:mysql-cluster-gpl-7.2.12-linux2.6-x86_64.tar.gz


注意:需用Cluster版本,可在官网上下载http://dev.mysql.com/downloads/cluster/#downloads


节点配置情况:


hostname IP地址应用服务
DB1 172.16.10.160 MGM
DB2 172.16.10.161 NDBD1MYSQLD
DB3 172.16.10.162 NDBD2, MYSQLD
DB4 172.16.10.254 MYSQLD


我这里数据节点和sql节点用相同的2台机器承担,sql节点也可分开,例db4.


二、管理节点:


(一)安装管理节点MGM


#groupadd mysql


#useradd mysql -g mysql


#mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz/usr/local/


#cd /usr/local/


#tar zxvfmysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz


#rm -fmysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz


#mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23mysql


#chown -R mysql:mysql mysql


(二)配置装管理节点MGM


#mkdir/var/lib/mysql-cluster


#cd /var/lib/mysql-cluster



#vi config.ini//这里需要手动添加如下内容


[NDBD DEFAULT]


NoOfReplicas=2 #副本数量,建议使用默认的2


DataMemory=600M #每个数据节点中给数据分配的内存


IndexMemory=100M #每个数据节点中给索引分配的内存


BackupMemory: 20M



[NDB_MGMD] #管理节点配置项


Nodeid= 1


HostName=172.16.10.160 #管理节点IP


DataDir=/usr/local/mysql/data #管理节点日志、配置目录


ArbitrationRank: 1 #该节点的优先级别等级



[NDBD] #数据节点配置项


Nodeid = 2 #第一个数据节点


HostName=172.16.10.161 #数据节点IP


DataDir=/usr/local/mysql/data #数据节点存放数据的目录



[NDBD]


Nodeid = 3 #第二个数据节点


HostName=172.16.10.162


DataDir=/usr/local/mysql/data


[mysqld] #SQL节点配置项


Nodeid = 4 #第一个SQL节点


HostName=172.16.10.161


[mysqld]


Nodeid = 5 #第二个SQL节点


HostName=172.16.10.162


[mysqld]


Nodeid = 6 #第三个SQL节点


HostName=172.16.10.254


[mysqld] #建议保留一个SQL节点配置口


()管理节点启动相关服务及测试:


#/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini


#netstat -lntpu


tcp 0 0 0.0.0.0:1186 0.0.0.0:* LISTEN 22907/ndb_mgmd


看到1186端口开放了说明启动是正常的.


命令行中的ndb_mgmdmysql cluster的管理服务器,后面的-f表示后面的参数是启动的参数配置文件。如果在启动后过了几天又添加了一个数据节点,这时修改了配置文件启动时就必须加上--initial参数,不然添加的节点不会作用在mysql cluster中。


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


使用ndb_mgm来监听客户端,如下:


#/usr/local/mysql/bin/ndb_mgm -e show


关闭管理节点,如下:


#/usr/local/mysql/bin/ndb_mgm -e shutdown


三、数据节点和SQL节点:


(一)安装数据节点和SQL节点(在两个ndbd 节点 DB1,DB2 安装mysql):


#groupadd mysql


#useradd mysql -g mysql


#mvmysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz /usr/local/


#cd /usr/local/


#tar zxvfmysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz


#rm -fmysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz


#mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23mysql


#chown -R mysql:mysql mysql


#cd mysql


#scripts/mysql_install_db --user=mysql


#cp support-files/my-medium.cnf /etc/my.cnf


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


(二)配置数据节点和SQL节点


#vi/etc/my.cnf //这里需要手动添加如下的内容


[mysqld]


datadir=/usr/local/mysql/data/ //这里要与管理节点的config.ini相同



ndbcluster
#运行NDB存储引擎
ndb-connectstring=172.16.10.160:1186
#指定管理节点,这两行声明其为SQL节点



[mysql_cluster]
ndb-connectstring=172.16.10.160:1186
#指定管理节点, 这两行声明其为数据节点
[ndb_mgm]
connect-string=172.16.10.160
[ndb_mgmd]
config-file=/var/lib/mysql-cluster/config.ini
//