MySQL Cluster下载 MySQL Cluster(MySQL集群) V7.6.10 官方安装版(附安装配置教程) 64位
MySQL Cluster 是专门用来做MySQL集群的程序,简单来讲它是一种技术,该技术能够在无共享的系统中部署内存中数据库的鈥淐luster鈥潱ü薰蚕硖逑到峁梗低衬芄皇褂酶髦至鄣挠布⒍运杏布挥腥魏翁厥獾囊蟆Ⅻ/p>
MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,知识兔包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,知识兔以及(可能)专门的数据访问程序。
【功能特点】
性能和扩展能力
自动分片 数据库自动、透明地分布于低成本的商用服務器上,这样无需更改应用程序即可以向外扩展的方式增加读写查询的能量。
多主复制 每个数据节点都可以接受写操作。这项功能与自动分片功能相结合,分享了非常高的写操作扩展能力。
分布式跨分片 JOIN 适应性查询本地化将 JOIN 操作下放到数据节点,这样它们就可以并行地在多个本地数据副本上执行。
实时响应 内存中的表和索引异步刷新到磁盘并绑定到 CPU 线程,低延迟。
开发人员 API 和数据模型
SQL MySQL Server 针对集群分享一个标准的 SQL 接口,可通过所有标准 MySQL 连接器(如 JDBC、ODBC.NET 等)连接各种 Web 开发语言和框架。
使用 Memcached 的 NoSQL 原生键值访问,绕过 SQL 层访问 存於數据節點中的數据,知识兔用于结构和非结构的数据存储。
使用 JavaScript 和 node.js 的 NoSQL 支持通过服务器端JavaScript绕过 SQL 层直接访问存于数据节点中的数据,知识兔以加速数据的查询和维护
使用 C++ 的 NoSQL 原生 C++ 访问,绕过 SQL 层可获得极低的延迟
使用 Java 和 JPA 的 NoSQL 原生 Java 和 JPA 访问,绕过 SQL 层访问企业、Web 和电信服务
使用 REST 的 NoSQL 原生 HTTP/REST 访问,知识兔使用 Apache mod_ndb 绕过 SQL 层
结构和非结构式的数据模型 默认使用完全结构化的关系数据模型。使用 Memcached API,每个键值都写入相同的表中,每个键值对默认存储在一行中,知识兔也可以配置为写入多个现有表中。
99.999% 的可用性和数据完整性
符合 ACID 要求、事务型 MySQL Cluster 全面支持 ACID(独立性、一致性、隔离性、持久性)事务。
外键约束(Constraint) MySQL Cluster 自动在表间实施参照完整性。
分布式、无共享架构 集群中的每个节点都是冗余的,知识兔可以放在单独的主机上,知识兔从而确保在发生进程、硬件或网络故障时的持续可用性。
无单点故障 每个节点都有自己的磁盘和内存,因此消除了共享组件(如存储)分享的故障风险。
同步复制 每个数据节点内的数据都同步复制到至少一个其他节点上。如果知识兔某个节点发生故障,至少有另一个数据节点存储着相同的信息。
亚秒级自动故障切换 MySQL Cluster 的心跳机制可立即检测到任何故障,并自动故障切换到集群中的其他节点,通常在一秒钟内完成,不会中断分享给客户端的服务。
自我修复式恢复 故障节点能自动重新启动并在重新加入集群前与其他节点重新同步,知识兔从而实现自我修复,此过程对应用程序完全透明。
跨地域复制 将一个集群从一个数据中心复制到另一个数据中心,知识兔从而实现灾难恢复并降低网络延迟的影响。每个集群都能接受写操作,并在内部处理冲突,知识兔从而确保集群间的一致性。
多站点集群 数据节点可以分散到多个数据中心,因此发生节点故障时可以在不同站点之间同步复制并进行自动故障切换。
联机操作
联机模式更新 支持联机添加列和表,知识兔以及联机添加和删除索引。
联机扩展 可以按需向正在运行的集群添加节点以提高性能和容量。知识兔可以向集群中动态添加应用节点,知识兔也可以从集群中动态删除应用节点,非常灵活。
联机维护 支持在线对底层硬件、操作系统和 MySQL Cluster 进程的升级和补丁安装。
联机备份 备份文件是数据库的一致的集群范围快照,知识兔可以存档并复制到安全的远程位置。
部署灵活性
虚拟机部署 可以在内部平台和云平台上部署虚拟机环境。
内存中和基于磁盘的表 表可以配置为只能在内存中管理(完全记录并刷新到到持久存储中)或存储在磁盘上。
商用硬件 可以用本地存储在商用硬件间扩展 MySQL Cluster。无需共享磁盘。
安全和审计
MySQL 企业级安全性* 为连接到集群的 MySQL Server 分享了随时可用的外部身份验证模块,使其可以轻松集成到现有安全基础架构中。
MySQL 企业级审计* 分享了一个简单易用、基于策略的审计解决方案,可帮助组织实施更加严格的安全控制和满足法规要求。
管理和监视
MySQL Cluster Manager* MySQL Cluster Manager 可自动完成常见管理任务,知识兔从而简化了 MySQL Cluster 数据库的创建和管理。
MySQL Enterprise Monitor* 使您能够了解集群运行状况的概况,在潜在问题对系统造成影响前发出警报。
概念
MySQL Cluster是基于无共享的可由多台服务器组成的、同时对外分享数据管理服务的分布式集群系统。通过合理的配置,知识兔可以将服务请求在多台物理机上分发实现负载均衡 ;同时内部实现了冗余机制,在部分服务器宕机的情况下,整个集群对外分享的服务不受影响,知识兔从而能达到99.999%以上的高可用性。
MySQL Cluster设计之初出于性能考虑,将数据完全存放在内存当中,因此MySQL Cluster可以当作一种分布式的内存数据库。随着MySQL Cluster技术的成熟和需求的增加,目前MySQL Cluster已支持磁盘存储,知识兔可以指定数据表存储在磁盘上,减少MySQL Cluster集群对内存的需求,知识兔从而实现存储更大的容量。
MySQL从结构看,由3类节点(计算机或进程)组成,分别是:
管理(MGM)节点:这类节点的作用是管理MySQL Cluster内的其他节点,如分享配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令鈥渘db_mgmd鈥澠舳摹
配置文件为: config.ini
数据节点:这类节点用于保存 Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。不过没有必要设置多个副本。数据节点是用命令鈥渘dbd鈥澠舳摹
配置文件为:my.ini
SQL节点:这是用来访问 Cluster数据的节点。对于MySQL Cluster,客户端节点是使用NDB Cluster存储引擎的传统MySQL服务器。通常,SQL节点是使用命令鈥渕ysqld 鈥搉dbcluster鈥澠舳模蚪€渘dbcluster鈥澨砑拥解€渕y.cnf鈥澓笫褂免€渕ysqld鈥澠舳
配置文件为:my.ini
鈥淢ySQL实验室鈥澩萍鍪褂肕ySQL Cluster 7.x版本。MySQL Cluster 7.x拥有在线增加节点、多线程等新特性。
工作原理
管理服务器(MGM节点)负责管理 Cluster配置文件和 Cluster日志。Cluster中的每个节点从管理服务器检索配置数据,并请求确定管理服务器所在位置的方式。当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后知识兔,将这类信息写入 Cluster日志。
安装
节点说明:
表21.4示例群集中节点的网络地址
每个NDB群集主机必须安装正确的可执行程序。
运行SQL节点的主机必须在其上安装MySQL服务器二进制文件(mysqld)。
管理节点需要管理服务器守护进程(ndb_mgmd);
数据节点需要数据节点守护进程(ndbd或ndbmtd)。
没有必要在管理节点主机和数据节点主机上安装MySQL服务器二进制文件。知识兔建议您还在管理服务器主机上安装管理客户端(ndb_mgm)。
【准备工作】
以下安装配置仅供参考!
1、mysql-cluster-gpl-7.5.10-winx64
2、两台电脑
一台配置管理节点,一个数据节点和一个sql节点,一台配置一个数据节点和一个sql节点。
管理节点:192.168.22.238
数据节点A:192.168.22.238
数据节点B:192.168.22.240
SQL节点A:192.168.22.238
SQL节点B:192.168.22.240
【搭建之路】
一、配置mysql集群
1、知识兔将下载的mysql集群压缩包解压到管理节点192.168.22.238的C:\mysql目录下:
2、配置管理节点:
在配置管理节点(192.168.22.238)的计算机上的C:\Mysql\Bin目录下建立cluster-logs和config两个文件夹。cluster-logs用来存储日志文件,在config文件夹中建立my.ini和config.ini两个配置文件:
my.ini
config.ini
3、配置数据节点:
在配置数据节点(192.168.25.48、192.168.25.49)的计算机上的C:\Mysql\Bin目录下建立cluster-data文件夹,用来存放数据:SQL节点不用任何配置,至此,整个MySQL集群就搭建完成了。
将管理节点(192.168.22.238)电脑C:\mysql文件拷到192.168.22.240电脑的C盘
二、启动mysql集群
启动顺序:管理节点鈫捠萁诘汊啋sql节点
1、启动管理节点
在cmd中运行命令:
聽c:\mysql\bin\ndb_mgmd.exe –configdir=c:\mysql\bin\config –config-file=c:\mysql\bin\config\config.ini –ndb-nodeid=1 –reload 鈥搃nitial
2、启动每个数据节点:
在cmd中运行如下命令:
c:\mysql\bin\ndbd.exe –ndb-connectstring=192.168.22.238
3、启动每个sql节点:
在cmd中运行如下命令:
c:\mysql\bin\mysqld.exe –ndbcluster –ndb-connectstring=192.168.22.238 –console
4、查看每个节点的状态
在cmd命令中运行:c:\mysql\bin\ndb_mgm,再执行鈥渟how鈥澝睿梢圆榭吹矫扛鼋诘愕牧幼刺裹/p>
这就表明每个节点均连接正确。
【测试mysql集群】
1、在sql节点A建立数据库并插入数据:
在sql节点A的计算机上(192.168.22.238)的cmd中运行C:\mysql\bin\mysql.exe -u root -p命令登录mysql,接下来需要输入密码时,密码默认为空(直接回车)。
路创建名为鈥渃han鈥澋氖菘猓裹/p>
create database chan;
路创建名为鈥淭_chan鈥澋谋恚裹/p>
use chan;
create table T_chan(Name varchar(23),Age int) engine=ndbcluster;
注意建表语句后面一定要加上 engine=ndbcluster,为什么要加上,在下一篇博客中会介绍。
路插入数据:
insert into T_chan values(‘chan’,23);
路查询数据:
select * from聽T_chan;
2、在sql节点B查到数据
在sql节点B的计算机上(192.168.22.240)的cmd中运行C:\mysql\bin\mysql.exe -u root -p命令登录mysql。
执行 show databases; 命令可以查看到在sql节点A新建的数据库;聽
执行
use chan;聽
select * from T_chan;聽
可以查询到在sql节点A插入的数据。
到这里mysql集群搭建就已经完成了。
【总结】
mysql集群知识兔现在做到的是加入一个数据节点宕机后,不会影响整个集群的运行,数据也不会丢失,保证了数据的完整性。第一次搭建的时候遇到了一些困难,不过这些都是小事啦。看完上面的步骤是不是觉得mysql搭建很简单,熟练以后在搭建的时候会遇到什么问题,知识兔以及如何解决,轻轻松松的就搞定了。
下面介绍在搭建mysql集群的时候遇到了一些问题。
1、mysql集群安装不成功
遇到的问题:
之前用的mysql和集群版本的mysql是两个不同的版本,用之前的版本是不可能搭建成功mysql集群的。
MySQL Community Server 社区版本,开源免费,但不分享官方技术支持
MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server
解决方案:
打开服务(win+ R,知识兔输入services.msc),查看mysql的可执行文件的路径。查看是否是C:\mysql\**(我的mysql集群安装在C:\mysql),如果知识兔不是,
1、执行删除mysql服务的命令:sc delete mysql
2、安装mysql:进入C:\mysql\bin目录下,知识兔使用mysqld 鈥搃nstall安装MySQL服务
3、启动mysql服务:使用net start mysql命令启动MySQL服务
这样mysql就能安装成功了!
2、The system tablespace must be writable!
解决方案:
1、打开任务管理器终止mysqld进程;
2、打开mysql安装目录的data文件夹,删除以下2个文件:
ib_logfile0和ib_logfile1
3、重新启动mysql
3、mysql服务无法启动,发生系统错误:1067,进程意外终止
运行:mysqlbin mysqladmin -u root shutdown
然后知识兔按照第一个解决方案就可以解决。
下载仅供下载体验和测试学习,不得商用和正当使用。