MySQL Cluster搭建实施步骤

 

MySQL Cluster介绍

MySQL Cluster是一种技术,该技术容许在无共享的系统中部署内存中数据库的Cluster。经过无共享体系结构,系统可以使用廉价的硬件,并且对软硬件无特殊要求。此外,因为每一个组件有本身的内存和磁盘,不存在单点故障。 html

MySQL Cluster分为SQL节点、数据节点、管理节点(MySQL Cluster提供了API供内部调用,外部应用程序能够经过API借口访问任意层方法)   node

SQL节点提供用户SQL指令请求,解析、链接管理,query优化和响、cache管理等、数据mergesort,裁剪等功能,当SQL节点启动时,将向管理节点同步架构信息,用以数据查询路由SQL节点做为查询入口,须要消耗大量cpu及内存资源,可以使用分布式管理节点,并在SQL节点外封装一层请求分发及HA控制机制可解决单点及性能问题,其提供了线性扩展功能 mysql

数据节点提供数据存取,持久化、API数据存取访问等功能数据节点使用分片及多份数据存储,至少存放2份,数据存放于内存中,根据管理节点的规则进行持久化,做为数据存取地,须要大量内存支持 sql

管理节点维护着节点活动信息,以及实施数据的备份和恢复等。管理节点会获取整个cluster环境中节点的状态和错误信息,并将各个cluster 集群中各个节点的信息反馈给整个集群中其余的全部节点,这对于SQL节点的数据路由规则相当重要,当节扩容时,数据将会被rebuild管理节点维护着全局规则信息,当节点发生故障时,将会发生故障通告 shell

在整个Cluster体系中,任何一个组建都支持动态扩展,线性扩展,提供了高可用,高性能的解决方案当新增数据节点时,须要重构存取路径信息,对管理节点将形成数据重构压力,该操做建议在非业务高峰时进行 数据库

Cluster使用自动键值识别数据分片方案,用户无需关心数据切片方案(在5.1及之后提供了分区键规则),透明实现分布式数据库,数据分片规则 根据主键、惟一索引自动行标识rowid完成,再集群个数进行分布,其访问数据犹如RAID访问机制同样,能并行从各个节点抽取数据,散列数据,当使用非主键或分区键访问时,将致使全部簇节点扫描,影响性能Cluster面对的核心挑战 架构

下图是官方文档中给出的标准的MySQL Cluster的架构。   tcp

MySQL Cluster搭建实施步骤

2.1 搭建环境

操做系统:SUSE11  分布式

MySQL版本:MySQL Cluster  7.1.24  ide

SQL Node 主机名 SUSE150       IP地址 192.168.85.150

Data Node 主机名 SUSE151       IP地址 192.168.85.151

Data Node 主机名 SUSE152       IP地址 192.168.85.152

MGM Node 主机名 SUSE153      IP地址192.168.85.153

安装介质:

MySQL-Cluster-gpl-server-7.1.24-1.sles11.i586.rpmwhich supplies the core files needed to run a MySQL Server with NDBCLUSTER storage engine support (that is, as a MySQL Cluster SQL Node)

MySQL-Cluster-gpl-client-7.1.24-1.sles11.i586.rpm管理mysql server 的客户端,安装了这个RPM包事后才能用mysql命令,进而进行数据库的管理,写sql 语句

MySQL-Cluster-gpl-storage-7.1.24-1.sles11.i586.rpmwhich supplies the MySQL Cluster Data Node binary(ndbd).

MySQL-Cluster-gpl-management-7.1.24-1.sles11.i586.rpmwhich provides the MySQL Cluster management serverbinary (ndb_mgmd),管理集群的Data Node sql noe

MySQL-Cluster-gpl-tools-7.1.24-1.sles11.i586.rpm该软件包最重要的就是提供了集群管理的客户端(ndb_mgmThe most important of these is the MySQL Cluster management client (ndb_mgm)

2.2 安装介质

SQL Node(192.168.85.150):

rpm -Uhv MySQL-Cluster-gpl-server-7.1.24-1.sles11.i586.rpm

rpm -Uhv MySQL-Cluster-gpl-client-7.1.24-1.sles11.i586.rpm

Data Node(192.168.85.151) :

rpm -Uhv MySQL-Cluster-gpl-storage-7.1.24-1.sles11.i586.rpm

 Data Node(192.168.85.152) :

rpm -Uhv MySQL-Cluster-gpl-storage-7.1.24-1.sles11.i586.rpm

MGM Node 192.168.85.153):

rpm -Uhv MySQL-Cluster-gpl-management-7.1.24-1.sles11.i586.rpm

 rpm -Uhv MySQL-Cluster-gpl-tools-7.1.24-1.sles11.i586.rpm 

SQL NodeData Node若是/etc下没有my.cnf 就要到/usr/share/mysql下面copy与你系统对应的配置文件并重命名为my.cnf  (注意:/usr/share/mysql目录下有多个*.cnf文件,分别为my-huge.cnfmy-large.cnfmy-medium.cnfmy-small.cnf,对于与大中小各类类型的数据设置),本次测试使用my-medium.cnf的配置。

2.3 安装步骤

前提:

台主机相互之间能够ping

2.3.1 SQL Node(192.168.85.150)安装

SQL Node(192.168.85.150):

rpm -Uhv MySQL-Cluster-gpl-server-7.1.24-1.sles11.i586.rpm

rpm -Uhv MySQL-Cluster-gpl-client-7.1.24-1.sles11.i586.rpm

vi /etc/my.cnf

# Options for mysqld process:
[mysqld]
ndbcluster # run NDB storage engine
ndb-connectstring=192.168.85.153 # location of management server
# Options for ndbd process:
[mysql_cluster]
ndb-connectstring=192.168.85.153 # location of management server

2.3.2 Data Node(192.168.85.151)安装

rpm -Uhv MySQL-Cluster-gpl-storage-7.1.24-1.sles11.i586.rpm

vi /etc/my.cnf

# Options for mysqld process:
[mysqld]
ndbcluster # run NDB storage engine
ndb-connectstring=192.168.85.153  # location of management server
# Options for ndbd process:
[mysql_cluster]
ndb-connectstring=192.168.85.153  # location of management server

2.3.3 Data Node(192.168.85.152)安装

rpm -Uhv MySQL-Cluster-gpl-storage-7.1.24-1.sles11.i586.rpm

vi /etc/my.cnf

# Options for mysqld process:
[mysqld]
ndbcluster # run NDB storage engine
ndb-connectstring=192.168.85.153 # location of management server
# Options for ndbd process:
[mysql_cluster]
ndb-connectstring=192.168.85.153  # location of management server

2.3.4 MGM Node 192.168.85.153)安装

rpm -Uhv MySQL-Cluster-gpl-management-7.1.24-1.sles11.i586.rpm

rpm -Uhv MySQL-Cluster-gpl-tools-7.1.24-1.sles11.i586.rpm

mgm node 的配置步骤以下:

shell> mkdir /var/lib/mysql-cluster
shell> cd /var/lib/mysql-cluster
shell> vi config.ini

配置文件时 config.ini,该文件包括如下相似的内容。

[ndbd default]
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]
portnumber=2202 # This the default; however, you can use any port that is free
[ndb_mgmd]

id=1
hostname=192.168.85.153 # Hostname or IP address of management node
datadir=/var/lib/mysql-cluster # Directory for management node log files
[ndbd]
id=2
hostname=192.168.85.151 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[ndbd]

id=3
hostname=192.168.85.152 # Hostname or IP address
datadir=/usr/local/mysql/data # Directory for this data node's data files
[mysqld]

id=4
hostname=192.168.85.150 # Hostname or IP address

在配置config.inidata node datadir 能够在本身定义的路径下面。

安装和配置都完成之后,接下来就是启动mysql 集群了看是否成功。

2.4 启动Cluster

CLUSTER启动的顺序依次为:管理节点数据节点—SQL节点

2.4.1 启动方式一

管理节点启动:

登陆到SUSE153,而后执行

shell> /usr/sbin/ndb_mgmd  -f  /var/lib/mysql-cluster/config.ini

数据节点启动:

登陆到SUSE151SUSE152,而后执行

第一次启动使用:shell> /usr/sbin/ndbd -ndb-connectstring=192.168.85.153:1186

非第一次启动使用:shell> /usr/sbin/ndbd

SQL节点启动:

登陆到SUSE150,而后执行

shell> /usr/bin/mysqld_safe -user=mysql &

2.4.2 启动方式二

1.推荐通常是先启动mgm node,所以在SUSE153上执行:

shell> ndb_mgmd -f /var/lib/mysql-cluster/config.ini

2.而后启动data node ,每一个data node 都用如下的命令启动,所以在SUSE151SUSE152上分别执行以下命令

shell> ndbd

3.启动sql node ,就是启动mysql server 同样的方法,最后在SUSE150上执行

shell> service mysql start或者 /etc/rc.d/init.d/mysqld start启动。

4.全部的节点都启动事后,就回到mgm node,执行一些ndb_mgm的管理命令,看是否能成功。

2.4.3 验证是否启动成功

[root@SUSE153 mysql]# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show

Cluster Configuration

---------------------

[ndbd(NDB)]     2 node(s)

id=2    @192.168.85.151  (mysql-5.1.63 ndb-7.1.24, Nodegroup: 0, Master)

id=3    @192.168.85.152  (mysql-5.1.63 ndb-7.1.24, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)

id=1    @192.168.85.153  (mysql-5.1.63 ndb-7.1.24)

[mysqld(API)]   1 node(s)

id=4    @192.168.85.150  (mysql-5.1.63 ndb-7.1.24)

若是出现这样相似的界面,能够说差很少成功了。

相关文章
相关标签/搜索