如何实现Mysql集群的环境搭建

  

<强>

<强> MySQL集群介绍

,,,,MySQL集群是一个基于NDB集群存储引擎的完整的分布式数据库系统。不仅仅具有高可用性,而且可以自动切分数据,冗余数据等高级功能。甲骨文和真正的集群应用程序不太一样的是,MySQL集群是一个分享任何的架构,各个MySQL服务器之间并不共享任何数据,高度可扩展以及高度可用方面的突出表现是其最大的特色。

,,,简单的说,MySQL集群实际上是在无共享存储设备的情况下实现的一种完全分布式数据库系统,其主要通过NDB集群(简称NDB)存储引擎来实现.MySQL集群刚刚诞生的时候可以说是一个可以对数据进行持久化的内存数据库,所有数据和索引都必须装载在内存中才能够正常运行,但是现在的MySQL集群版本分为内存表和磁盘表,内存表,所有数据加载到内存中运行,磁盘表仅仅将主键,索引字段装载在内存中,其他字段存放在磁上。如何实现MySQL集群的环境搭建

<强>一个MySQL集群的环境主要由以下三部分组成:

<强> 强管理节点负责整个集群集群中各个节点的管理工作,包括集群的配置,启动关闭各节点,对各个节点进行常规维护,以及实施数据的备份恢复等。管理节点会获取整个集群环境中各节点的状态和错误信息,并且将各集群集群中各个节点的信息反馈给整个集群中其他的所有节点。由于管理节点上保存了整个集群环境的配置,同时担任了集群中各节点的基本沟通工作,所以他必须是最先被启动的节点。

<强> 强也就是上面说的NDB集群。最初的NDB是一个内存式存储引擎,当然也会将数据持久化到存储设备上。但是最新集群的NDB存储引擎已经改进了这一点,可以选择数据是全部加载到内存中还是仅仅加载索引数据.NDB节点主要是实现底层数据存储功能,来保存集群的数据。每一个集群节点保存完整数据的一个片段,也就是一个数据分片(或者一份完整的数据,视节点数目和配置而定),所以只要配置得当,MySQL集群在存储层不会出现单点的问题。一般来说,NDB节点被组织成一个一个的NDB集团,一个NDB组实际上就是一组存有完全相同的物理数据的NDB节点群。

上面提到了NDB各个节点对数据的组织,可能每个节点都存有全部的数据也可能只保存一部分数据,主要是受节点数目和参数来控制的。首先在MySQL集群主配置文件(在管理节点上面,一般为配置。ini)中,有一个非常重要的参数叫NoOfReplicas,这个参数指定了每一份数据被冗余存储在不同节点上面的份数,该参数一般至少应该被设置成2,也只需要设置成2就可以了。因为正常来说,两个互为冗余的节点同时出现故障的概率还是非常小的,当然如果机器和内存足够多的话,也可以继续增大来更进一步减小出现故障的概率。此外,一个节点上面是保存所有的数据还是一部分数据还受到存储节点数目的限制.NDB存储引擎首先保证NoOfReplicas参数配置的要求来使用存储节点,对数据进行冗余,然后再根据节点数目将数据分段来继续使用多余的NDB节点。分段的数目为节点总数除以NoOfReplicas所得。

<强> 强也就是我们常说的MySQL服务器。主要负责实现一个数据库在存储层之上的所有事情,比如连接管理,查询优化和响应,缓存管理等等,只有存储层的工作交给了NDB数据节点去处理了。也就是说,在纯粹的MySQL集群环境中的SQL节点,可以被认为是一个不需要提供任何存储引擎的MySQL服务器,因为他的存储引擎有集群环境中的NDB节点来担任。所以,SQL层各MySQL服务器的启动与普通的MySQL服务器启动也有一定的区别,必须要添加ndbcluster参数选项才行。我们可以添加配在my . cnf中所做置文件中,也可以通过启动命令行来指定。

<强> MySQL集群环境搭建

搭建MySQL集群首先需要至少一个管理节点主机来实现管理功能,一个SQL节点主机来实现MySQL服务器功能和两个NDB节点主机实现NDB集群的功能。我在这里测试使用双SQL节点来搭建测试环境,具体信息如下:

1,服务器准备

192.168.1.2 ,,,管理节点

192.168.1.3 ,,mysql节点,ndb节点

192.168.1.4 ,,mysql节点,ndb节点

我这儿把mysq节点l和ndb数据节点放在一台机器上面

2,软件安装

测试环境(3台服务器均一样,不是必须的,但ndb节点最好一样,不一样的话,内存要配一样大,服务器均已关闭iptables,生产环境请自行开放相关端口)

<>强安装mysql节点:

如何实现Mysql集群的环境搭建