admin 管理员组文章数量: 887018
2024年3月27日发(作者:生死谍变解说)
龙源期刊网
虚拟化平台下MySQL数据库集群的搭建
作者:邢志峰
来源:《中国管理信息化》2017年第12期
[摘 要]近年来,虚拟化技术已在企业中得到了广泛应用,越来越多的Web应用程序使用
MySQL作为数据的管理和存储,数据库的高可用、数据安全、负载均衡成为了企业关注的重
点。本文以河钢集团承钢公司企业内部的虚拟化平台为基础,以开源的Galera Cluster for
MySQL为解决方案,搭建一套基于同步复制的多主MySQL集群。其特点是使用简单,没有
单点故障,可用性高,能很好地保证业务不断增长时数据的安全性和集群的扩展性。
[关键词]虚拟化;MySQL数据库;集群搭建
doi:10.3969/.1673 - 0194.2017.12.086
[中图分类号]TP311.1 [文献标识码]A [文章编号]1673-0194(2017)12-0-02
1 虚拟化技术和ESXI的介绍
虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时
运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,且应用程序都可以在相互独立
的空间内运行而互不影响,从而显著提高计算机的工作效率。目前,虚拟化技术越来越成熟,
企业为节约成本,只需购买配置较高的服务器安装虚拟操作系统,就能把一台服务器当做多台
服务器进行使用,既经济实用,又管理方便。
ESXI是直接运行在裸机上的高性能、高可用性的系统架构,它给多台虚拟机提供CPU、
内存、存储、网络资源,Windows平台的PC机可以通过vSphere客户端软件进行远程访问和
管理。
ESXI的主要特性如下:
(1)可靠性和安全性,ESXI体系结构基于Linux的控制台操作系统,实现可维护性和基
于代理的合作伙伴集成,并直接在核 VMkernel中实现了必备的管理功能,消除了与通用操作
系统相关的安全漏洞,提高了安全性和可靠性。
(2)简化部署和配置,新的ESXI体系结构的配置项较少,因此可以极大地简化部署和
配置,且更容易保持一致性。
(3)减少管理开销,ESXI体系结构采用基于API的合作伙伴集成模型,因此,不再需要
安装和管理第三方管理代理。利用远程命令行脚本编写环境,可以自动执行日常任务。
龙源期刊网
(4)虚拟机的备份与恢复功能,ESXI提供多种的备份与恢复功能,如快照、克隆、模板
的导入和导出等。
(5)物理机、虚拟机的迁移,VMware Converter是一款能将物理电脑系统、VMware其
他版本虚拟机镜像,或第三方虚拟机镜像转化为一个虚拟机映像文件的工具,且生成的映像可
以在该公司的VMware虚拟机软件中使用。
2 MySQL数据库集群的搭建
2.1 MySQL Galera Cluster 介绍
Galera Cluster是在名为WSRep(集合写入式复制,Write Set Replication)的更通用的API
基础之上开发而成的。WSRep API是个独立的开源项目,由Codership发起,它在数据库服务
器和数据复制插件之间定义了一个接口。MySQL-WSRep是MySQL的一个补丁,它在数据库
服务器中实现了WSRep API接口。安装这个补丁之后,MySQL就可以启动WSRep的插件,
Galera是WSRep提供者,实现了同步多主节点数据复制功能,Galera replication特性具有同步
复制主备无延迟、支持多主同时读写,保证数据一致性、集群中各节点保存全量数据、节点添
加或删除,自动检测和配置、行级别并行复制、不需要写binlog。
2.2 Galera的实现架构
Galera的实现架构,如图1所示。
2.3 安装前的准备
(1)需要至少三台虚拟服务器,建议安装Centos 6,数据库为MySQL 5.5版本,为服务
器分配好IP地址。
(2)准备好MySQL with WSRep、Galera等软件安装包。
(3)关闭系统防火墙Selinux和Iptables。
2.4 安装部署
(1)第一个节点的安装及配置,首先关闭系统防火墙,设置MySQL的yum源并安装依
赖包。
(2)安装数据及服务组件,建立Cluster使用者,设置远程登录,修改主节点的配置文
件,启动集群服务,确认MySQL 3306端口和WSRep的4567端口处于监听状态。
龙源期刊网
(3)第二个节点安装及配置其他节点,方法与安装第一个节点类似,在修改从节点配置
文件时,需要将WSRep_cluster_address的地址指向主节点。
(4)检查各节点运行状态,使用数据库管理工具测试数据库集群功能。
2.5 使用前的注意事项
(1)使用Galera必须要给MySQL-Server打WSRep补丁。可以直接使用官方提供的已经
打好补丁的MySQL安装包,如果服务器上已经安装了标准版MySQL,需要先卸载再重新安
装。卸载前注意备份数据。
(2)MySQL/Galera集群只支持InnoDB存储引擎。如果数据表使用的是MyISAM,需要
转换为InnoDB,否则记录不会在多台复制。可以在备份老数据时,为MySQLdump命令添加
skip-create-options参数,这样会去掉表结构的声明信息,再导入集群时自动使用InnoDB引
擎。不过这样会将AUTO_INCREMENT一并去掉,已有AUTO_INCREMENT列的表,必须在
导入后重新定义。
(3)MySQL 5.5及以下的InnoDB引擎不支持全文索引(FULLTEXT indexes),如果之
前使用了MyISAM并建立了全文索引字段,只能安装MySQL 5.6 with WSRep patch。
(4)所有数据表必须要有主键(PRIMARY),如果没有主键可以建一条
AUTO_INCREMENT列。
(5)MySQL/Galera集群不支持下面的查询:LOCK/UNLOCK TABLES,不支持下面的系
统变量:character_set_server、utf16、utf32及ucs2。
(6)数据库日志不支持保存到表,只能输出到文件(log_output = FILE),不能设置
binlog-do-db、binlog-ignore-db。
(7)跟其他集群一样,为了避免节点出现脑裂而破坏数据,建议Galera集群最低添加3
个节点。
(8)在高并发的情况下,多主同时写入时可能会发生事务冲突,此时只有一个事务请求
会成功,其他的全部失败。可以在写入或更新失败时,自动重试一次,再返回结果。
(9)节点中每个节点的地位是平等的,没有主次,向任何一个节点读写效果都是一样
的。实际可以配合VIP/LVS或HA使用,实现高可用性。
(10)如果集群中的机器全部重启,如机房断电,第一台启动的服务器必须以空地址启
动。
龙源期刊网
主要参考文献
[1]王春海.深入学习VMware vSphere 6[M].北京:人民邮电出版社,2016.
[2]张工厂.MySQL技术精粹——架构、高级特性、性能优化与集群实战[M].北京:清华大
学出版社,2015.
版权声明:本文标题:虚拟化平台下MySQL数据库集群的搭建 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1711475367h598387.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论