mysql集群的搭建
mysql集群的架构
mysql集群是有一个或多个mysql服务器组成,mysql服务器通过ndb存储引擎与ndb集群通信,ndb集群由以下几个组件构成:
1.mysql服务器mysqld
2.数据节点ndbd
3.集群管理服务器
4.集群管理客户端
注意:有时候msyql服务器又被称作sql节点
上述四个部分的管理如下所示:
如何存储数据
mysql集群把所有的索引列都保存在内存上,其他非索引列可以存储在内存中,或者存储到带有内存页面缓存的磁盘上,磁盘可以比内存存储更多的非索引列数据。
如果数据发生改变,mysql集群将发生改变的记录写入重做日志,然后通过检查点,定期将数据写入磁盘。由于重做日志是异步提交的,苏一故障期间可能会有少量事务丢失,为了减少事务丢失,mysql集群实现了延迟写入。
mysql集群配置实例
实验准备:
192.168.3.240 管理节点(msyql-mgm)
192.168.3.241 数据节点1(mysql-ndbd-1)
192.168.3.242 数据节点2(mysql-ndbd-2)
192.168.3.245 sql节点1(mysql-sql-1)
192.168.3.246 sql节点2(mysql-sql-2)
操作系统:
rhel6.5
iptables 和 selinux关闭
所需要的安装包:
MySQL-Cluster-gpl-client-7.1.4b-1.rhel5.i386.rpm
MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.i386.rpm
MySQL-Cluster-gpl-server-7.1.4b-1.rhel5.i386.rpm
MySQL-Cluster-gpl-storage-7.1.4b-1.rhel5.i386.rpm
MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.i386.rpm
所有的安装包可以在mysql 的官方网站上进行下载,地址如下:
http://dev.mysql.com/downloads/cluster/
配置管理节点(192.168.3.240)
1.安装如下两个软件:
MySQL-Cluster-gpl-management-7.1.4b-1.rhel5.i386.rpm
MySQL-Cluster-gpl-tools-7.1.4b-1.rhel5.i386.rpm
2.创建配置文件所在目录:
[root@server0 mysql]# mkdir -p /usr/local/mysql-cluster/
3.设置mysql集群的配置文件/usr/local/mysql-cluster/config.ini:
内容如下:
这里有很多参数需要解释一下:
NoOfReplicas
定义集群中每个表保存的拷贝数,另外还指定结点组的大小。结点组指保存相同信息的结点集合。通常情况下不需要为该参数指定值。NoOfReplicas没有默认值,最大的可能值为 4。
NodeId
集群中结点的唯一标识,取值 1~63。在集群中每个节点的id不可以与其他节点冲突。
HostName
指定结点主机名或IP。
DataMemory
指定数据内存,默认值为 80MB,最小值 1MB,无大小限制。
IndexMemory
指定索引内存,默认值为 18MB,最小值 1MB,无大小限制。
配置数据节点(192.168.3.241)
1.安装相关的配置包:
2.创建数据所在目录:
[root@server1 mnt]# mkdir -p /usr/local/mysql/ndbdata
3.修改myql的配置文件/etc/my.cnf:
配置sql节点(192.168.3.245)
1.安装所需的安装包:
在进行这个安装过程时因为系统原有的mysql-libs和MySQL-Cluster-server会发生冲突,解决的办法:
(1)先删除系统原有的mysql-libs
[root@server5 mnt]# yum remove mysql-libs -y
(2)再安装MySQL-Cluster-client和MySQL-Cluster-server:
[root@server5 mnt]# yum localinstall MySQL-Cluster-client-gpl-7.3.10-1.el6.x86_64.rpm MySQL-Cluster-server-gpl-7.3.10-1.el6.x86_64.rpm -y
(3)到指定目录拷贝mysql配置文件到/etc/my.cnf:
[root@server5 mysql]# cd /usr/share/mysql/
[root@server5 mysql]# cp my-default.cnf /etc/my.cnf
(4)修改mysql配置文件/etc/my.cnf,内容如下:
启动mysql集群
mysql集群的启动顺序如下所示:
首先启动msyql集群的管理节点、然后启动存储节点、最后启动sql节点。
1.启动管理节点:
[root@server0 mysql-cluster]# ndb_mgmd -f /usr/local/mysql-cluster/config.ini
2.启动存储节点
[root@server1 mnt]# ndbd –initial
注意:只在第一次启动ndbd的时候或者在备份、恢复或者配置发生变化后重起时添加–initial参数,这个参数会时机诶单删除由早期ndbd实例创建的、用于恢复的任何文件、包括二进制日志文件。
3.启动sql节点:
[root@server5 mysql]# /etc/init.d/mysql start
4.在mysql集群的管理节点上使用管理客户端进行查看:
小结:
通过上述步骤,我们完成了mysql集群的初步搭建,在接下来的章节中我们会陆续添加相关节点。使集群更加的健壮。敬请期待。