分布式mysql使用什么引擎_NDB Cluster (分布式存储引擎)存储引擎简单简介及Mysql cluster的实现...

一、NDBCluster(分布式存储引擎)存储引擎简单简介NDB存储引擎也叫NDBCluster存储引擎,主要用于MySQLCluster分布式集群环境,Cluster是MySQL从5.0版本才开始提

一、NDB Cluster (分布式存储引擎)存储引擎简单简介

NDB 存储引擎也叫NDB Cluster 存储引擎,主要用于MySQL Cluster 分布式集群环境,

Cluster 是MySQL 从5.0 版本才开始提供的新功能。这部分我们可能并不仅仅只是介绍NDB

存储引擎,因为离开了MySQL CLuster 整个环境,NDB 存储引擎也将失去太多意义。所以

接下来会和MySQL Cluster的搭建一块介绍。

Mysql Cluster 是一种技术,其主要功能是在无共享的相关系统中部署内存中数据库的Cluster,其主要是通过NDB Cluster(简称NDB)存储引擎来实现的。

在通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。

一般来说,一个Mysql Cluster 的环境结构主要如下:

1203025Y4_0.jpg

主要由以下三部分组成:

1). 负责管理各个节点的Manage 节点主机:

管理节点负责整个Cluster 集群中各个节点的管理工作,包括集群的配置,启动关闭

各节点,以及实施数据的备份恢复等。管理节点会获取整个Cluster 环境中各节点的状态和

错误信息,并且将各Cluster 集群中各个节点的信息反馈给整个集群中其他的所有节点。由

于管理节点上保存在整个Cluster 环境的配置,同时担任了集群中各节点的基本沟通工作,

所以他必须是最先被启动的节点。

2). SQL 层的SQL 服务器节点(后面简称为SQL 节点),也就是我们常说的Mysql Server:

主要负责实现一个数据库在存储层之上的所有事情,比如连接管理,query 优化和响

应,cache 管理等等,只有存储层的工作交给了NDB 数据节点去处理了。也就是说,在纯粹

的Mysql Cluster 环境中的SQL 节点,可以被认为是一个不需要提供任何存储引擎的Mysql

服务器,因为他的存储引擎有Cluster 环境中的NDB 节点来担任。所以,SQL 层各Mysql 服

务器的启动与普通的Mysql 启动有一定的区别,必须要添加ndbcluster 项,可以添加在

my.cnf 配置文件中,也可以通过启动命令行来指定。

3). Storage 层的NDB 数据节点,也就是上面说的NDB Cluster:

NDB 是一个内存式存储引擎也就是说,他会将所有的数据和索引数据都load 到内存中,

但也会将数据持久化到存储设备上。不过,最新版本,已经支持用户自己选择数据可以不全

部Load 到内存中了,,这对于有些数据量太大或者基于成本考虑而没有足够内存空间来存放

所有数据的用户来说的确是一个大好消息。

NDB 节点主要是实现底层数据存储的功能,保存Cluster 的数据。每一个NDB 节点保存

完整数据的一部分(或者一份完整的数据,视节点数目和配置而定),在MySQL CLuster 里

面叫做一个fragment。而每一个fragment,正常情况来讲都会在其他的主机上面有一份(或

者多分)完全相同的镜像存在。这些都是通过配置来完成的,所以只要配置得当,Mysql

Cluster 在存储层不会出现单点的问题。

一般来说,NDB 节点被组织成一个一个的NDB Group,一个NDB Group 实际上就是一组存有完全相同的物理数据的NDB 节点群。

上面提到了NDB 各个节点对数据的组织,可能每个节点都存有全部的数据也可能只保存

一部分数据,主要是受节点数目和参数来控制的。首先在Mysql Cluster 主配置文件(在管

理节点上面,一般为config.ini)中,有一个非常重要的参数叫NoOfReplicas,这个参数

指定了每一份数据被冗余存储在不同节点上面的份数,该参数一般至少应该被设置成2,也

只需要设置成2 就可以了。因为正常来说,两个互为冗余的节点同时出现故障的概率还是非

常小的,当然如果机器和内存足够多的话,也可以继续增大。一个节点上面是保存所有的数

据还是一部分数据,还受到存储节点数目的限制。NDB 存储引擎首先保证NoOfReplicas 参

数配置的要求对数据冗余,来使用存储节点,然后再根据节点数目将数据分段来继续使用多

余的NDB 节点,分段的数目为节点总数除以NoOfReplicas 所得。

二、MySQL Cluster集群架构的实现

管理节点上:

rpm -ivh MySQL-Cluster-gpl-management-7.1.18-1.el6.x86_64.rpm

rpm -ivh MySQL-Cluster-gpl-tools-7.1.18-1.el6.x86_64.rpm

mkdir /usr/mysql-clustervi /usr/mysql-cluster/config.ini

[ndbd default]

noofreplicas=1                          //运行NDB存储引擎

datamemory=30M

indexmemory=10M

[ndb_mgmd]

nodeid=1

hostname=192.168.1.21            //管理节点ip

datadir=/usr/mysql-cluster

[ndbd]

nodeid=2

hostname=192.168.1.22            //存储节点ip

datadir=/usr/mysql-cluster

[mysqld]                         //客户端

nodeid=3

hostname=192.168.1.23

ndb_mgmd -f /usr/mysql-cluster/config.ini --initial         //指定配置文件,初始化

ndb_mgm             //就可以查看各个节点的信息了

存储节点上:

rpm -ivh MySQL-Cluster-gpl-storage-7.1.18-1.el6.x86_64.rpmvi /etc/my.cnf

[mysqld]

ndbcluster                             //运行ndb集群引擎

ndb-connectstring=192.168.1.21         //指定管理节点

[mysql_cluster]

ndb-connectstring=192.168.1.21

ndbd --initial          //初始化后,在manager节点上ndb_mgm查看存储节点已经连接上了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值