关闭

MySQL 集群

243人阅读 评论(0) 收藏 举报
分类:
MySQL 群集是 MySQL 适合于分布式计算环境的高可用、高冗余版本。它采用了 NDB Cluster 存储引擎,允许在 1 个群集中运行多个 MySQL 服务器。在 MySQL 5.0 及以上的二进制版本中,以及与最新的 Linux 版本兼容的 RPM 包中提供了该存储引擎。

    MySQL 群集是一种技术,该技术允许在无共享的系统中部署“内存中”和“磁盘中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括 MySQL 服务器,NDB Cluster 的数据节点,管理服务器,以及(可能存在的)专门的数据访问程序。

    管理服务器(MGM节点)负责管理 Cluster 配置文件和 Cluster 日志。Cluster 中的每个节点从管理服务器检索配置数据。当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后,将这类信息写入 Cluster 日志。

    目前能够运行 MySQL Cluster 的操作系统有 Linux、Mac OS X 和 Solaris,最新的版本已经支持 Windows 操作系统。

    MySQL 群集的数据节点之间的通信是不加密的,并且需要高速的带宽,所以建议把群集建立在一个高速局域网内,不建议跨网段、跨公网的部署这种系统体系。

    MySQL 群集分为三种节点:管理节点,数据节点和SQL节点。

    管理节点:主要用于管理各个节点,能够通过命令对某个节点进行重启、关闭、启动等操作。也能够监视全部节点的工作状态。
    数据节点:主要是对数据的存储,不提供其他的服务。
    SQL节点:主要是对外提供SQL功能,类似一台普通的 MySQL Server。

    而SQL节点和数据节点可以是同一台机器,也就是说这台机器即是SQL节点也是数据节点。它们只是逻辑关系上的划分,实际部署时,甚至所有的阶段都可以位于同一台物理机器上,只是配置较复杂些。

   正常运行的 MySQL 群集系统,通过SQL节点可以对数据节点进行数据库操作,各数据节点可以自动进行数据同步。某一个数据节点关闭后,不影响SQL节点的使用。某些数据节点 出错后,可以进行恢复。需要注意的是,SQL节点建立数据库时,必须选择“ndbcluster”数据库引擎。如果不选择“ndbcluster”引擎, 建立的数据库将不会进入MySQL群集系统中,但是可以独立使用。

    另外,每个 NDB 表必须有一个主键。如果在创建表时未定义主键,NDB Cluster 存储引擎将自动生成隐含的主键。该隐含的键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见。

    测试实例:

    在某台 SQL 节点上登录 mysql,建表 city,并插入数据:
    C:/>mysql -u root test
    mysql>create table city (nId mediumint unsigned not null auto_increment primary key, sName varchar(20) not null)
          engine = ndbcluster default charset utf8;
    mysql>insert city values(1, ‘city-1′);
    mysql>insert city values(1, ‘city-2′);

    在另一台 SQL 节点上登录 mysql,从表 city 里得到记录:
    C:/>mysql -u root test
    mysql>select * from city;

    在群集系统正常工作的情况下,应当能取到先前插入的所有记录。

 

    另外的测试(单点故障测试):

    1,还可以人为停止某一个数据节点(Ctrl+C中断DOS命令ndbd.exe,停止该服务),看看所有的 SQL 节点是不是能正常工作。
    2,在某一个数据节点停止后,进行数据库操作。然后重新开启该数据节点,看看群集中的所有的 SQL 节点能不能得到完整的数据。

 

   常见问题与扩展

    配置和管理 MySQL 群集系统并不是一件简单的事情。由于不合理的配置导致的系统问题非常常见,比如网络故障、内存限制等,会导致仲裁体统强制关闭数据节点。

    如果机器上原来已经安装过 MySQL Server,则一定要卸载干净原来的数据库系统。注意群集系统中的 mysql.exe 程序与非群集系统的管理 Client 是不同的。

    还可以与负载均衡系统结合,以提供更强的可用性和数据存取效率。

    可能由于未知的Bug或别的原因,导致群集系统出现一些意外故障。所以建议选取版本时,选择已经得到大多数人认可的版本,不一定选取最新的版本,最新的版本往往不太稳定。当然也不要选用太陈旧的功能有限制的版本。
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

windows+mysql集群搭建-三分钟搞定集群

在上一篇博客(mysql集群搭建基础篇)里介绍了mysql集群的基本知识,这篇博客讲解如何在windows环境下搭建mysql集群,这段时间在我们架构师的带领下搭建了mysql集群,让我受益很多,下面...
  • u013086062
  • u013086062
  • 2016-03-11 16:14
  • 9845

MySQL集群的几种方案

组建MySQL集群的几种方案 LVS+Keepalived+MySQL(有脑裂问题?但似乎很多人推荐这个) DRBD+Heartbeat+MySQL(有一台机器空余?Heartbeat切换时间...
  • terry_water
  • terry_water
  • 2015-12-14 11:52
  • 3457

【MySQL集群】——在Windows环境下配置MySQL集群

到这里,整个集群的搭建和测试就完成了。假如一个数据节点宕机,并不会影响整个集群的运行,任何一个数据节点死掉甚至物理损坏都不用担心,因为每个数据节点保存的数据都是完整的一份数据(在你操作数据的时候,它早...
  • huyuyang6688
  • huyuyang6688
  • 2015-08-15 15:31
  • 4788

龙果学院MySQL大型分布式集群

  • 5天前 17:45
  • 49B
  • 下载

MYSQL集群搭建

  • 2016-12-19 08:52
  • 539KB
  • 下载

mysql集群7.1.29配置文档linux

  • 2013-12-26 17:09
  • 295KB
  • 下载

RedHat5下mysql集群

  • 2013-07-16 10:35
  • 169KB
  • 下载

Mysql 高效集群配置

  • 2012-03-31 13:08
  • 1011KB
  • 下载

MySQL集群安装配置

  • 2017-03-09 17:09
  • 1.09MB
  • 下载

Mysql数据库集群

  • 2011-12-31 09:59
  • 1.78MB
  • 下载
    个人资料
    • 访问:522039次
    • 积分:6402
    • 等级:
    • 排名:第4417名
    • 原创:138篇
    • 转载:219篇
    • 译文:6篇
    • 评论:24条
    文章分类
    最新评论