MySQL群集

一 概述:

Ubuntu带的mySQL服务软件包 已经包含了mySQL群集所需的3个组件:

mySQL

mySQL NDB

mySQL NDB Management

mySQL使用NDB来实现群集,NDB是一种“内存中”的存储引擎,可用性高、数据一致性好。

mySQL群集架构图

clip_image002

数据保存在存储节点(Data Nodes)中,也就是图中的ndbd节点。SQL语句在SQL节点上执行,也就是图中的mySQLd节点,群集中的右下角DNB管理服务器也就是ndb_mgmd节点。

关于mySQL群集的3个主要组成部分,我们来介绍一下。

负载均衡节点 是用来访问群集数据的。

存储节点 是用来保存群集数据的 其服务的启停是由脚本/etc/init.d/mysql-ndb来管理的。

管理节点 用来管理群集内的其他节点,比如配置信息,启动或停止及诶单,执行备份等。其服务的启停是由/etc/init.d/mysql-ndb-mgm脚本管理的,由于这类节点是管理者,该节点必须先启动,其他两类节点再启动。

18.1实验环境

以下操作系统均是ubuntu server 11.10

安装的Mysql版本mysql-server-5.1

安装的mysql群集版本mysql-cluster-server-5.1

clip_image003

两个数据节点 Data1和Data2

一个管理节点mgm

要求这些虚拟机都能访问Internet,因为安装mysql-server-5.1和mysql-cluster-server-5.1都需要从internet下载安装包。

IP地址和计算机名称如下所示

clip_image004

1. 克隆系统

使用安装了mySQL的ubuntu克隆出新的系统,更改服务器名称和IP地址。

data1的IP地址192.168.80.223 服务器名称为data1

data2的IP地址为192.168.80.224 服务器名称为data2

mgm的地址为192.168.80.225 服务器名称为mgm

2. 禁用防火墙

在三个节点上禁用防火墙。

ufw disable

clip_image005

clip_image006

clip_image007

在管理节点的配置

clip_image008

管理节点需要

3. 安装管理节点

root@mgm:~# apt-get install mysql-server-5.1

root@mgm:~# apt-get install mysql-cluster-server-5.1

因为已经安装了mySQL,所以只需要安装mysql-cluster-server-5.1

clip_image009

clip_image010

clip_image011

clip_image012

设置mysql管理员密码

clip_image013

4. 配置mgm

在mgm服务器上完成

clip_image008[1]

5. 创建配置文件

root@mgm:~# vi /etc/mysql/ndb_mgmd.cnf

6. 编辑配置文件 去掉注释

[NDBD DEFAULT]

NoOfReplicas=2 #每个数据节点的镜像数量

DataMemory=10MB #每个数据节点中给数据分配的内存

IndexMemory=25MB #每个数据节点中给索引分配的内存

MaxNoOfTables=256

MaxNoOfOrderedIndexes=256

MaxNoOfUniqueHashIndexes=128

[MYSQLD DEFAULT]

[NDB_MGMD DEFAULT]

[TCP DEFAULT]

#The NDB Management Node (this one)

[NDB_MGMD]

Id=1 #管理节点ID,群集中每个节点都有独立的id

HostName=192.168.80.225 #管理节点IP

DataDir=/var/lib/mysql-cluster #管理节点数据目录

#the first NDB Data Node

[NDBD]

#数据节点配置

Id=2

HostName=192.168.80.223

DataDir=/var/lib/mysql-cluster

#the second NDB Data Node

[NDBD]

#数据节点配置

Id=3

HostName=192.168.80.224

DataDir=/var/lib/mysql-cluster

#the first mySQL node

[MYSQLD]

#mysql节点

Id=4

HostName=192.168.80.223 #指定HostName表明可以连接数据节点的sql节点地址

#如果不写该地址,表明任意地址的sql节点都可以连接

#the second mySQL node

[MYSQLD]

Id=5

HostName=192.168.80.224

clip_image014

7. 启动服务管理服务

/etc/init.d/mysql-ndb-mgm restart

clip_image015

配置存储节点

在以下两个服务器配置data1和data2进行配置。

clip_image016

8. 安装mysql和mysql-cluster

先安装mysql服务器,如果已经安装,只需要安装mysql-cluster-server-5.1

root@data2:~# apt-get install mysql-server-5.1

root@data2:~# apt-get install mysql-cluster-server-5.1

9. 配置my.cnf

root@data1:~# vi /etc/mysql/my.cnf

将以下文本按图示位置拷贝到配置文件

ndbcluster

ndb-connectstring=192.168.80.225

[MYSQL_CLUSTER]

ndb-connectstring=192.168.80.225

clip_image017

10. 启动mysql服务,或重启mySQL服务 restart,如果启动失败,请仔细查看配置。

root@data1:~# /etc/init.d/mysql start

* Starting MySQL database server mysqld [ OK ]

11. 启动NDB服务 start-initial是初始化,第一次启动使用该参数,以后重启该服务使用restart参数。

root@data1:~# /etc/init.d/mysql-ndb start-initial

* Initial start of MySQL NDB Data Node ndbd 2012-03-29 15:18:18 [ndbd] INFO -- Angel connected to '192.168.80.201:1186'

2012-03-29 15:18:18 [ndbd] INFO -- Angel allocated nodeid: 3

[ OK ]

12. 在data2上执行data1上所有步骤

clip_image018

18.2查看群集连接状态

13. 在管理节点mgm上测试配置存储节点

输入以下命令,进入mgm客户端界面

Ndb_mgm

Show 注意 必须出现如下输出才能,可以看到一个管理节点,两个mysql数据库,两个存储节点ndb,在这里NDB和mySQL是同一个服务器。

clip_image019

如果一个断掉data1的网卡,

clip_image020

再次查看状态

clip_image021

14. 连接data1网卡

clip_image022

Quit命令退出

如果连接出现问题,必须在两个存储节点,重启两个服务,直到成功为止。

clip_image023

18.3 测试mysql群集

配置为群集的mysql,创建的数据库能够自动同步到其他存储节点。创建表时使用engine=ndbcluster作为参数,能够将表放置到群集中,自动在多个mysql同步数据。

15. 查看data1和data2上现有数据库

clip_image024

clip_image025

16. 在data1上创建一个数据库db1

clip_image026

clip_image027

17. 在data2上创建数据库

clip_image028

clip_image029

18. 在群集环境中创建数据库和表

在data1数据存储节点创建一个数据db1,在该数据库创建一个表,该表放置于群集中。如果创建表时不添加engine=ndbcluster;则该表只存在域data1,不会复制到data2。

注意:

mysql> use db1;

mysql> create table t1 (sid int,sname varchar(20))engine=ndbcluster;

mysql> insert t1 values (1,'han');

mysql> create table t2 (sid int,sname varchar(20));

mysql> insert t2 values (1,'han');

clip_image030

19. 在data2上查看

可以看到db1的数据库中出现t1表。数据也复制过来。

clip_image031

在data2上插入一条记录

clip_image032

20. 在data1上查看

发现在data2上插入的记录再data1也出现。

clip_image033

18.4启动时需要注意的问题

如果服务器断电需要重启,首先启动mgm节点,再开启存储节点。一切正常。

18.5关闭管理节点

群集关系一旦产生,管理节点可以关机,两个存储节点照样复制功。




本文转自 onesthan 51CTO博客,原文链接:http://blog.51cto.com/91xueit/1138106,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值