一、     MySQL Cluster概述

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

“NDB” 是一种“内存中”的存储引擎,它具有可用性高和数据一致性好的特点。

ndb支持较为广泛的平台及操作系统,且经过多年的发展,已经可以应用于生产环境;

ndb引擎通过tcp协议交换群集数据;ndb不需要传统的共享存储设备,而是通过 专门的 ndbd数据存储引擎 来模拟共享存储;ndbd存储引擎支持 自动配置、多个数据复本、数据分区、自动分组等功能;ndb提供专门的管理工具集。

  1. 管理(MGM)节点

管理节点的作用是管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动管理节点。MGM节点是用命令“ndb_mgmd”启动的。

管理客户端:管理客户端与管理服务器相连,并提供了启动和停止节点、启动和停止消息跟踪(仅调试版本)、显示节点版本和状态、启动和停止备份等的命令。

2.  数据节点:

数据节点用于保存 Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。不过没有必要设置多个副本。数据节点是用命令“ndbd”启动的。

3.  SQL节点:

用于访问 Cluster数据的节点。对于MySQL Cluster,客户端节点是使用NDB Cluster存储引擎的传统MySQL服务器。通常,SQL节点是使用命令“mysqld –ndbcluster”启动的,或将“ndbcluster”添加到“my.cnf”后使用“mysqld”启动。

注意:存储节点和SQL节点可以安装在一台服务器上,管理节点也可以和SQL安装在一台机器上,一般而言,管理节点单独安装。

管理节点(MGM)                   进程名ndb_mgmd

数据节点(Data Nodes)        进程名ndbd

SQL节点(Sql Nodes)           进程名mysqld

二、     MySQL Cluster安装过程

1         规划节点安装

节点

对应的IP和端口

管理节点(1个)

192.168.0.50

SQL节点 (2个)

192.168.0.51:3306

192.168.0.52:3306

数据节点 (2个)

192.168.0.51

192.168.0.52

2         下载安装包和解压

http://dev.mysql.com/downloads/cluster/#downloads

我们选用MySQL Cluster 7.1.34

解压:tar –zxvf  mysql-cluster-gpl-7.1.34-linux-i686-glibc23.tar.gz

将目录移动并更名:

mv mysql-cluster-gpl-7.1.34-linux-i686-glibc23 /usr/local/mysql

在192.168.0.51和192.168.0.52上做相同操作

3      管理节点和数据节点的安装

1) 添加mysql用户和组,因为MySQL服务器启动需要mysql用户和组,代码:

groupadd mysql
useradd -g mysql mysql

2)修改目录权限【/usr/local/mysql】将/usr/local/mysql目录的用户和组赋予mysql,代码:

chown –R mysql:mysql  /usr/local/mysql

3) 在/var/lib目录下建立一个mysql-cluster目录,用于存储ndb的数据文件,并把权限赋予mysql用户和组,代码如下:

mkdir  /var/lib/mysql-cluster

chown –R mysql:mysql  /var/lib/mysql-cluster

在192.168.0.51和192.168.0.52上重复步骤1)2)3)

4) 在192.168.0.50的/etc中建立config.ini管理节点配置文件,vim config.ini,config.ini文件内容如下

#管理节点的默认连接端口
[tcp default]
portnumber=2202
[ndbd default]
#每个数据节点的副本数2
NoOfReplicas=2
#ndb数据文件的存储位置
datadir=/var/lib/mysql-cluster/
[ndb_mgmd default]
#管理节点目录
datadir=/var/lib/mysql-cluster/
[ndb_mgmd]
#管理节点ID为1
Id=1
hostname=192.168.0.50
[ndbd]
#数据节点ID为2
Id=2
#数据节点IP
hostname=192.168.0.51
#数据节点目录
datadir=/usr/local/mysql/data/
[ndbd]
#数据节点ID为3
Id=3
#数据节点IP
hostname=192.168.0.52
#数据节点目录
datadir=/usr/local/mysql/data/
[mysqld]
[mysqld]

5) 在192.168.0.51和192.168.0.52的/etc目录下建立my.cnf文件。

[client]
socket =/tmp/mysql.sock
[mysqld]
default-storage-engine=ndbcluster
#运行NDB存储引擎
ndbcluster
#指定管理节点
ndb-connectstring=192.168.0.50
[ndbd]
connectstring=192.168.0.51,192.168.0.52
[mysql_cluster]
ndb-connectstring=192.168.0.50

三、     MySQL Cluster环境启动

注意启动顺序:首先是管理节点,然后是NDBD节点,最后是SQL节点。

1)  启动管理节点(192.168.0.50)

ndb_mgmd -f /var/lib/mysql-cluster/config.ini

2)  启动数据节点(192.168.0.51和192.168.0.52)

/usr/local/mysql/bin/ndbd –initial

3)  启动SQL节点(192.168.0.51和192.168.0.52)

/usr/local/mysql/bin/mysqld_safe --user=mysql

4)   去启动管理节点(192.168.0.50) 查看

Mdb_mgm 后show。

四、     MySQL Cluster的测试

注意事项:1.表必须用ENGINE=NDB或ENGINE=NDBCLUSTER选项创建,或用ALTER TABLE选项更改,以使用NDB Cluster存储引擎在 Cluster内复制它们。如果使用mysqldump的输出从已有数据库导入表,可在文本编辑器中打开SQL脚本,并将该选项添加到任何表创建语句,或用这类选项之一替换任何已有的ENGINE(或TYPE)选项。

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

3.当你在一个节点上运行create database mydb;你去其他sql node上执行show databases;将不能看到mydb,你需要创建它,然后use mydb; show tables;你将看到同步的表。

参考http://www.cnblogs.com/StanBlogs/archive/2011/06/14/2080986.html中测试环境

在节点192.168.0.51上面:

为了让表在cluster中正常复制,创建一个表必须使用ndbcluster引擎(engine=ndb Or engine=ndbcluster)方法如下:

mysql>use test

mysql>create table teacher(t_id int) engine=ndb;

如果是一个已经存在的表,用alter table修改表的引擎。

mysql>alter table student engine=ndb;

插入一条数据:

mysql>insert into teacher values(133);

然后在节点上:

mysql>select * from teacher;

五、     MySQL Cluster关闭

关闭顺序是首先是管理节点,然后是SQL节点,最后是数据节点。在管理节点中的ndb_mgm> 提示符下输入 shutdown即可,这时会显示各节点的关闭信息,再输入exit即可退出ndb_mgm管理。

MySQL Cluster配置概述的更多相关文章

  1. MySQL Cluster 配置详细介绍

    在上篇文章已经详细说明了MySQL Cluster搭建与测试,现在来说说详细的配置参数.在MySQL Cluster 环境的配置文件 config.ini 里面,每一类节点都有两个(或以上)的相应配置 ...

  2. mysql cluster配置

    依赖包要求:cmake     gcc    gcc-c++     ncurses     Perl     ncurses-devel 在7.3以及更高的版本中, WITH_NDB_JAVA是默认 ...

  3. Mysql Cluster配置基本篇

    一.下载mysql-cluster 从mysql官网下载对应的mysql-cluster 二.配置管理节点 1.解压mysql-cluster,找到解压文件中的ndb_mgm和ndb_mgmd 2.复 ...

  4. MySQL Cluster 7.3.5 集群配置参数优化(优化篇)

    按照前面的教程:MySQL Cluster 7.3.5 集群配置实例(入门篇),可快速搭建起基础版的MySQL Cluster集群,但是在生成环境中,还是有很多问题的,即配置参数需要优化下, 当前生产 ...

  5. Windows Server 2008R2配置MySQL Cluster

    目录 配置环境 相关知识 配置过程 配置 ini参数解释 启动集群 检查配置 同步测试 故障测试 写在之后 配置环境 VMware:(版本10.0.01) 操作系统:Windows Server 20 ...

  6. mysql cluster (mysql 集群)安装配置方案(转)

    一.准备 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以只用2台,我就是一台本机,一台虚拟机搭建了有5个节点的MySQL ...

  7. mysql cluster 安装配置方案

    mysql cluster (mysql 集群)安装配置方案   一.准备 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以 ...

  8. MySQL Cluster搭建与测试

    MySQL Cluster是一个基于NDB Cluster存储引擎的完整的分布式数据库系统.不仅仅具有高可用性,而且可以自动切分数据,冗余数据等高级功能.和Oracle Real Cluster Ap ...

  9. MySQL Cluster 集群

    本文转载 http://www.cnblogs.com/gomysql/p/3664783.html MySQL Cluster是一个基于NDB Cluster存储引擎的完整的分布式数据库系统.不仅仅 ...

随机推荐

  1. NFS挂载Android文件系统

    NFS挂载Android文件系统 [日期:2012-02-14] 来源:Linux社区  作者:cjok376240497 [字体:大 中 小]     1.安装NFS服务 $sudo apt-get ...

  2. 关于windows的service编程

    最近需要学习下windows的service编程框架,查了下msdn发现不知所云.于是谷歌之,发现了一个非常不错的文章,重点推荐讲的非常详细,深入,看完之后基本上就能很清楚windows的servic ...

  3. lxde桌面默认快捷键

    ctrl+alt+左右      选择左右桌面shift+alt+左右     当前窗口送至左右桌面房子键+F1~F4       切换桌面1-4房子键+d           显示桌面alt+esc ...

  4. C#多线程管理代码

    /// <summary> /// 多线程执行 /// </summary> public class MultiThreadingWorker { /// <summa ...

  5. webapp项目前端总结

    提纲 整体把握,从设计稿入手——技术选型 并行开发,从实现静态页面开始 前端自动化 前端js逻辑 前后端集成 小问题集合 总结 1.整体把握,从设计稿入手 —— 技术选型 新项目到手,算是运气好,设计 ...

  6. Jellycons – iOS 8 图标下载(PNG, SKETCH)

    Jellycons 这套由 LoveUI.co 设计图标包括30款扁平化,圆滑,丰富多彩的 iOS 8 应用程序图标,可以用于于个人和商业项目的使用.另外,PNG 格式包含11种尺寸(1024px, ...

  7. Clipping Magic – 帮助你轻松删除图片背景

    Clipping Magic 让您轻松去除图片的背景,可以根据路径进行裁剪.操作很简单,只需拖动图像到放置区,或使用按钮选择文件.标记前景为绿,背景为红色,然后标记算法会帮助你处理好细节.处理后的图片 ...

  8. LeetCode—— Median of Two Sorted Arrays

    Description: There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the medi ...

  9. Android 学习笔记之使用多线程实现断点下载...

    PS:莫名其妙的迷茫... 学习内容: 1.使用多线程实现文件下载...   多线程下载是加快下载速度的一种方式..通过开启多个线程去执行一个任务..可以使任务的执行速度变快..多线程的任务下载时常都 ...

  10. jsckson,想说爱你不容易啊。。。406错误

    最近使用spring4.0的Mvc,json请求时,客户端报错,406 Not Acceptable 解决方法一: 1.导入第三方的jackson包,jackson-mapper-asl-1.9.7. ...