MySQL群集

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
一 概述:

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,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
域名解析 监控 负载均衡
Mysql的MMM高可用群集
Mysql的MMM高可用群集
102 0
Mysql的MMM高可用群集
|
存储 SQL 关系型数据库
软件测试mysql面试题:群集索引和非群集索引有什么区别?
软件测试mysql面试题:群集索引和非群集索引有什么区别?
61 0
|
SQL 监控 负载均衡
使用 MySQL-MMM 实现(MySQL双主双从)高可用群集
MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。 MMM 使用 Perl 语言开发,主要用来监控和管理 MySQL Master-Master(双主)复制,可以说是 MySQL 主主复制管理器。
251 0
使用 MySQL-MMM 实现(MySQL双主双从)高可用群集
|
SQL 存储 关系型数据库
|
15天前
|
关系型数据库 MySQL 数据库
mysql卸载、下载、安装(window版本)
mysql卸载、下载、安装(window版本)
|
1月前
|
关系型数据库 MySQL 数据库连接
关于MySQL-ODBC的zip包安装方法
关于MySQL-ODBC的zip包安装方法
|
1月前
|
关系型数据库 MySQL 数据库
rds安装数据库客户端工具
安装阿里云RDS的数据库客户端涉及在本地安装对应类型(如MySQL、PostgreSQL)的客户端工具。对于MySQL,可选择MySQL Command-Line Client或图形化工具如Navicat,安装后输入RDS实例的连接参数进行连接。对于PostgreSQL,可以使用`psql`命令行工具或图形化客户端如PgAdmin。首先从阿里云控制台获取连接信息,然后按照官方文档安装客户端,最后配置客户端连接以确保遵循安全指引。
83 1
|
4天前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
25 4
|
27天前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 中apt 安装MySQL数据库
Ubuntu 中apt 安装MySQL数据库
68 0
|
6天前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
19 0