目录
1. 题目概述
随着互联网技术的发展,海量数据访问使得传统的数据库管理系统已经无法满足业务需求,而数据库作为应用系统的核心,在企业的IT系统中的地位举足轻重,传统的使用独立服务器的风险在于一旦发生系统故障,不但严重影响企业业务的正常运行,而且会给企业造成经济损失。
集群是指多台计算机组合构成一个多处理器的计算机系统,该计算机系统以互联网为通信媒介进行数据通信,应用程序通过网络共享资源进行信息传输。数据库集群是一种可以提高数据库吞吐量和减少数据库请求响应时间的有效机制,通常被用来解决网络服务中高数据访问的单点瓶颈问题。
数据库分很多种,一般常用的数据库有mysql、DB、ORACLE、SQL Server等。mysql是一个数据库管理系统,很多中小型的网站开发使用该数据库,mysql是一个高速度、高性能、多线程、开放源代码的关系型数据库。
MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。无共享的对等节点使得某台服务器上的更新操作在其他服务器上立即可见。mysql集群是数据库集群的一种,在行业的应用比例高达20%多,两台或多台mysql数据库服务器组成一个单一的逻辑数据库,它具有负载均衡,内部实时数据同步,容错和高可用性等功能。
MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。
本次设计就是基于MySQL-Cluster做集群,来解决大量数据存储,读取,异地访问,负载均衡,安全性进行研究
关键字:集群 MySQL数据库 负载均衡 MySQL-Cluster
2. 研究内容与目的
服务器集群(Cluster)是指一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理,此单一系统为客户工作站提供高可靠性的服务。并大幅度提高了服务器的安全性。一个Cluster包含多台(至少两台)拥有共享数据存储空间的服务器,各服务器之间通过内部局域网进行相互通信;当其中一台服务器发生故障时,它所运行的应用程序将由其他的服务器自动接管;在大多数情况下,集群中所有的计算机都拥有一个共同的名称,集群系统内任意一台服务器都可以被所有的网络用户所使用。为了实现集群策略,系统需花费资源,但随着系统承受并发负载的增加,集群的性能衰减较小。
与单机运行环境相比,在集群运行环境下资源的利用率更高。这是因为在实现集群策略过程中。系统需要花费额外的资源开销。随着系统承受并发负载的继续加大,集群的负载均衡策略将会发挥器作业,使得在单机运行环境下资源的使用率比在集群运行环境下递增更快。
优势:提高系统的客户端并发性能服务等级,用户能够体验到更好的性能。
弊端:带来较大的花费,同时增加了维护费用。
MysqlCluster是MySQL适合于分布式计算环境的高实用、高冗余版本,是一个采用了 NDB Cluster存储引擎的集群数据库解决方案,它允许在一个Cluster中运行多个服务器。MySQL Cluster由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器、NDB Cluster的数据节点、管理服务器,以及专门的数据访问程序等。
这次设计的研究的内容就是安装MySQL-Cluster服务,搭建部署一个一主三从模式的MySQL集群系统来,测试MySQL-Cluster的服务和性能,看看是否能够通过MySQL-Cluster的技术来解决我们的应用的数据量大的时候的,存储,读取,负载均衡,备份的问题。
3. 研究方法
3.1研究方法
3.1.1通过书籍和上网查询MySQL集群的相关介绍以及MySQL-Cluster的相关介绍说明,了解基本概念。
3.1.2 研究思路
在虚拟环境上搭建四台Linux服务器,给每台服务器安装上MySQL-Cluster。设定其中一台为管理节点,主要负责管理sql节点、数据节点。另外三台设定为分别为数据节点和sql节点。其中SQL节点是用来访问 Cluster数据的节点,数据节点用于保存 Cluster的数据。然后搭建测试环境来研究MySQL-Cluster是否能够承担起一个大型应用的数据量存储,读取,备份,负载均衡的问题。
3.2实验方法
3.2.1硬件准备
搭建4台MySQL-Cluster服务器,这四台服务器分别承担:
(1)管理节点
(2)数据节点和SQL节点
(3)数据节点和SQL节点
(4)数据节点和SQL节点
3.2.2软件准备
(1)服务器:每台服务器上用centos6.7作为服务器系统。
(2)集群管理软件:MySQL-Cluster
(在 MySQL官网上下载mysql-cluster的源码编译安装包,
软件版本:mysql-cluster-gpl-6.3.51-linux-x86_64-glibc23.tar)
(3)其他软件:purry,WinSCP
(用putty和WinSCP连接每台服务器,配置部署每台服务器。)
3.2.3配置文档
3.2.3.1 网络配置
(1)将每台虚拟机的网络连接模式设置为桥接。
(2)查询本地主机的IP地址和子网掩码:
在cmd命令行界面中输入ipconfig,查询到的本地主机的IP和子网掩码信息。
(3)根据本地主机的网络信息给四台虚拟服务器分别配置静态IP,设置如下:
172.16.105.200 172.16.105.201
172.16.105.202 172.16.105.203
3.2.3.2 集群节点配置
172.16.105.200(management) 管理节点
172.16.105.201 (node1) 存储节点1、SQL 节点1
172.16.105.202 (node2) 存储节点2、SQL 节点2
172.16.105.203 (node3) 存储节点2、SQL 节点3