博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mySQL教程 第17章 MySQL群集
阅读量:5876 次
发布时间:2019-06-19

本文共 3672 字,大约阅读时间需要 12 分钟。

第17章 MySQL群集

一 概述:

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

mySQL

mySQL NDB

mySQL NDB Management

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

mySQL群集架构图

数据保存在存储节点(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

两个数据节点 Data1和Data2

一个管理节点mgm

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

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

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

在管理节点的配置

管理节点需要

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

设置mysql管理员密码

4. 配置mgm

在mgm服务器上完成

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

7. 启动服务管理服务

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

配置存储节点

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

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

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上所有步骤

18.2查看群集连接状态

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

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

Ndb_mgm

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

如果一个断掉data1的网卡,

再次查看状态

14. 连接data1网卡

Quit命令退出

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

18.3 测试mysql群集

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

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

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

17. 在data2上创建数据库

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');

19. 在data2上查看

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

在data2上插入一条记录

20. 在data1上查看

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

18.4启动时需要注意的问题

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

18.5关闭管理节点

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

广告

转载地址:http://iyzix.baihongyu.com/

你可能感兴趣的文章
多媒体开发之rtmp---rtmp client 端的实现
查看>>
3.使用Maven构建Web项目
查看>>
iView实现自定义Modal
查看>>
如何在云帮上配置https
查看>>
JQuery干货篇之插入元素
查看>>
Imperva开源域目录控制器,简化活动目录集成
查看>>
可观察性驱动开发,探索未知之地
查看>>
Webpack构建兼容IE8
查看>>
Deis发布1.4版本,支持Microsoft Azure
查看>>
用Elm语言降低失败的风险
查看>>
荷兰商业银行使用精益领导力推行改进
查看>>
cisco 多生成树MST笔记
查看>>
FPGA设计——图像处理(锐化增强)
查看>>
LINUX REDHAT第十三单元练习题
查看>>
Play Framework
查看>>
集合转数组注意
查看>>
gng3使用方法,正确的路由器防火墙安全配置方式
查看>>
基于域名虚拟主机及主站迁移
查看>>
linux sed
查看>>
elk之elasticsearch 入门
查看>>