MySQL Cluster8是集成了标准的集群功能,采用NDB引擎,包括MySQL服务器、NDB Cluster的数据节点、管理服务器等多种功能,轻松的解决访问节点的单点故障、存储节点的单点故障和数据存储节点数据备份问题。
MySQL Cluster8安装教程
1.运行安装程序,进入MySQL Cluster8安装向导界面,单击【next】
2.阅读软件的许可协议内容,勾选【I accept...】
3.选择安装类型,默认的是典型安装
4.准备安装,单击【install】开始安装MySQL Cluster8
5.安装很快,完成即可
MySQL Cluster集群搭建配置教程
1、配置方法
1)公共配置:
# rpm -qa | grep -i mysql
# service mysql stop ; chkconfig mysql off
# rpm -e --nodeps MySQL-devel MySQL-embeddedMySQL-test MySQL-server MySQL-client MySQL-shared MySQL-shared-compat
//保留RHEL自带的mysql-libs包
# rm -rf /etc/my.cnf
# rm -rf /var/lib/mysql/*
# tar -xvfMySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpm-bundle.tar
# rpm -Uvh MySQL-Cluster-*.rpm
2)配置管理节点:
运行管理进程 ndb_mgmd
配置文件 /etc/config.ini (服务器的角色 和角色对应的ip id号 工作目录)
[ndbd default] :数据节点的公共配置
[ndb_mgmd] :指定管理节点
[ndbd] :指定数据节点
[mysqld] :指定sql节点
# mkdir -p /var/log/mysql-cluster //创建工作目录
# vim /etc/config.ini //编写主配置文件
[ndbd default]
NoOfReplicas=2 //保留2份数据拷贝
DataMemory=80M //数据缓存大小
IndexMemory=18M //索引缓存大小
[ndb_mgmd]
nodeid=7 //管理节点的ID标识
hostname=192.168.4.100 //管理节点的IP地址
datadir=/var/log/mysql-cluster //工作目录
[ndbd] //设置数据节点ndbA
nodeid=8 //数据节点ndbA的ID标识
hostname=192.168.4.30 //此节点的IP地址
datadir=/var/log/mysql-cluster/data //工作目录
[ndbd] //设置数据节点ndbB
nodeid=9
hostname=192.168.4.40
datadir=/var/log/mysql-cluster/data
[mysqld] //设置sql节点sqlA
nodeid=10 //sql节点sqlA的ID标识
hostname=192.168.4.10 //此节点的IP地址
[mysqld] //设置sql节点sqlB
nodeid=11
hostname=192.168.4.20
:wq
3)配置数据节点:
运行数据进程 ndbd
配置文件: /etc/my.cnf
#mkdir -p /var/log/mysql-cluster/data //创建工作目录
#vim /etc/my.cnf
[mysqld]
datadir=/var/log/mysql-cluster/data //工作目录
ndb-connectstring=192.168.4.100 //管理节点IP地址
ndbcluster //指定使用ndbcluster集群存储引擎
[mysql_cluster]
ndb-connectstring=192.168.4.100 //如何连接管理节点
:wq
4)配置sql节点
运行mysql服务 mysql(此服务是由mysql-cluster软件包提供)
#vim /etc/my.cnf
[mysqld]
ndbcluster //指定使用ndbcluster集群存储引擎
default-storage-engine=ndbcluster //指定表的默认存储引擎是 ndbcluster
ndb-connectstring=192.168.4.100
[mysql_cluster]
ndb-connectstring=192.168.4.100 //如何连接管理节点
:wq
2、启动不同角色服务器上进程
1) 启动管理节点上的管理进程
#ndb_mgmd -f /etc/config.ini
//启动进程,结合-f选项读取.ini配置;默认后台模式,调试时可加--nodaemon;修改了配置以后,可加--initial重新初始化
#netstat -untlap | grep :1186 //查看进程
#pkill -9 ndb_mgmd //杀死进程
2)依次启动数据节点上的数据进程
#ndbd
//首次执行时,可加--initial初始化;多个数据节点的操作相同
3)依次启动sql节点上的数据库服务
#service mysql start //多个sql节点的操作相同
3、查看集群状态
1)管理节点上登录管理界面,查看状态
#ndb_mgm
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2node(s)
id=8 @192.168.4.30 (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0, *)
id=9 @192.168.4.40 (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=7 @192.168.4.100 (mysql-5.6.14 ndb-7.3.3)
[mysqld(API)] 2 node(s)
id=10 @192.168.4.10 (mysql-5.6.14 ndb-7.3.3)
id=11 @192.168.4.20 (mysql-5.6.14 ndb-7.3.3)
ndb_mgm>
2)Sql节点的mysql初始化
重设root密码;为客户端访问添加用户授权
#service mysqlstart
#mysql -uroot -p初始密码 //初始密码见/root/.mysql_secret文件
3)在sql节点上,检查默认的存储引擎
Mysql>show engines;
4、测试访问节点的单点故障
在sql节点上授权可以从远端的客户机连接自己
Grant all on webdb.* to [email protected]”%”identified by “webuser88”; //两个sql节点都做授权
客户端访问:#mysql-h192.168.10/20 -uwebuser -pwebuser88
mysql>create database webdb;
mysql>create table webdb.a(id int);
mysql>insert into webdb.a values(1000);
mysql> select * from webdb.a ;
访问sqlA节点操纵数据,在sqlB上会同步结果。
5、测试数据节点的单点故障
数据节点之间可以互相备份,自动选举Master,自动同步数据。测试时可关掉一个数据节点的ndbd服务,插入、查询数据验证数据的同步性。
Sql节点和数据节点的进程正常运行后,不需要重启的话,管理节点可以关掉
MySQL Cluster8新功能:
1、性能和扩展能力
自动分片 数据库自动、透明地分布于低成本的商用服務器上,这样无需更改应用程序即可以向外扩展的方式增加读写查询的能量。
多主复制 每个数据节点都可以接受写操作。这项功能与自动分片功能相结合,提供了非常高的写操作扩展能力。
分布式跨分片 JOIN 适应性查询本地化将 JOIN 操作下放到数据节点,这样它们就可以并行地在多个本地数据副本上执行。
实时响应 内存中的表和索引异步刷新到磁盘并绑定到 CPU 线程,低延迟。
2、开发人员 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,每个键值都写入相同的表中,每个键值对默认存储在一行中,也可以配置为写入多个现有表中。
3、99.999% 的可用性和数据完整性
符合 ACID 要求、事务型 MySQL Cluster 全面支持 ACID(独立性、一致性、隔离性、持久性)事务。
外键约束(Constraint) MySQL Cluster 自动在表间实施参照完整性。
分布式、无共享架构 集群中的每个节点都是冗余的,可以放在单独的主机上,从而确保在发生进程、硬件或网络故障时的持续可用性。
无单点故障 每个节点都有自己的磁盘和内存,因此消除了共享组件(如存储)带来的故障风险。
同步复制 每个数据节点内的数据都同步复制到至少一个其他节点上。如果某个节点发生故障,至少有另一个数据节点存储着相同的信息。
亚秒级自动故障切换 MySQL Cluster 的心跳机制可立即检测到任何故障,并自动故障切换到集群中的其他节点,通常在一秒钟内完成,不会中断提供给客户端的服务。
自我修复式恢复 故障节点能自动重新启动并在重新加入集群前与其他节点重新同步,从而实现自我修复,此过程对应用程序完全透明。
跨地域复制 将一个集群从一个数据中心复制到另一个数据中心,从而实现灾难恢复并降低网络延迟的影响。每个集群都能接受写操作,并在内部处理冲突,从而确保集群间的一致性。
多站点集群 数据节点可以分散到多个数据中心,因此发生节点故障时可以在不同站点之间同步复制并进行自动故障切换。
4、联机操作
联机模式更新 支持联机添加列和表,以及联机添加和删除索引。
联机扩展 可以按需向正在运行的集群添加节点以提高性能和容量。可以向集群中动态添加应用节点,也可以从集群中动态删除应用节点,非常灵活。
联机维护 支持在线对底层硬件、操作系统和 MySQL Cluster 进程的升级和补丁安装。
联机备份 备份文件是数据库的一致的集群范围快照,可以存档并复制到安全的远程位置。
5、部署灵活性
虚拟机部署 可以在内部平台和云平台上部署虚拟机环境。
内存中和基于磁盘的表 表可以配置为只能在内存中管理(完全记录并刷新到到持久存储中)或存储在磁盘上。
商用硬件 可以用本地存储在商用硬件间扩展 MySQL Cluster。无需共享磁盘。
6、安全和审计
MySQL 企业级安全性* 为连接到集群的 MySQL Server 提供了随时可用的外部身份验证模块,使其可以轻松集成到现有安全基础架构中。
MySQL 企业级审计* 提供了一个简单易用、基于策略的审计解决方案,可帮助组织实施更加严格的安全控制和满足法规要求。
6、管理和监视
MySQL Cluster Manager* MySQL Cluster Manager 可自动完成常见管理任务,从而简化了 MySQL Cluster 数据库的创建和管理。
MySQL Enterprise Monitor* 使您能够了解集群运行状况的概况,在潜在问题对系统造成影响前发出警报。
主要结构
1、管理(MGM)节点:
这类节点的作用是管理MySQLCluster内的其他节点,如提供配 置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启 动这类节点。MGM节点是用命令“ndb_mgmd”启动的。对硬件没什么要求,差一点的机器完全能够胜任。默认端口1186。
2、数据节点:
这类节点用于保存Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。不过没有必要设置多个副本。数据节点是用命令“ndbd”启动的。可以选择大内存,cpu也相对来讲不错的,尤其是以后ndbmtd对多核Cpu的支持。默认端口2202
3、SQL节点:
这是用来访问Cluster数据的节点。对于MySQLCluster,客户端节点是使用NDBCluster存储引擎的传统MySQL服务器。通常,SQL节点是使用命令“mysqld–ndbcluster”启动的,或将“ndbcluster”添加到“my.cnf”后使用“mysqld”启动。对cpu要求较高,选择多核,高频CPU较好。
∨ 展开