MySQL群集

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 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高可用群集
110 0
Mysql的MMM高可用群集
|
存储 SQL 关系型数据库
软件测试mysql面试题:群集索引和非群集索引有什么区别?
软件测试mysql面试题:群集索引和非群集索引有什么区别?
69 0
|
SQL 监控 负载均衡
使用 MySQL-MMM 实现(MySQL双主双从)高可用群集
MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。 MMM 使用 Perl 语言开发,主要用来监控和管理 MySQL Master-Master(双主)复制,可以说是 MySQL 主主复制管理器。
285 0
使用 MySQL-MMM 实现(MySQL双主双从)高可用群集
|
SQL 存储 关系型数据库
|
13天前
|
存储 关系型数据库 MySQL
探索MySQL:关系型数据库的基石
MySQL,作为全球最流行的开源关系型数据库管理系统(RDBMS)之一,广泛应用于各种Web应用、企业级应用和数据仓库中
|
11天前
|
关系型数据库 MySQL 网络安全
Mysql 数据库主从复制
在MySQL主从复制环境中,配置了两台虚拟机:主VM拥有IP1,从VM有IP2。主VM的`my.cnf`设置server-id为1,启用二进制日志;从VM设置server-id为2,开启GTID模式。通过`find`命令查找配置文件,编辑`my.cnf`,在主服务器上创建复制用户,记录二进制日志信息,然后锁定表并备份数据。备份文件通过SCP传输到从服务器,恢复数据并配置复制源,启动复制。检查复制状态确认运行正常。最后解锁表,完成主从同步,新用户在从库中自动更新。
983 6
Mysql 数据库主从复制
|
12天前
|
缓存 运维 关系型数据库
数据库容灾 | MySQL MGR与阿里云PolarDB-X Paxos的深度对比
经过深入的技术剖析与性能对比,PolarDB-X DN凭借其自研的X-Paxos协议和一系列优化设计,在性能、正确性、可用性及资源开销等方面展现出对MySQL MGR的多项优势,但MGR在MySQL生态体系内也占据重要地位,但需要考虑备库宕机抖动、跨机房容灾性能波动、稳定性等各种情况,因此如果想用好MGR,必须配备专业的技术和运维团队的支持。 在面对大规模、高并发、高可用性需求时,PolarDB-X存储引擎以其独特的技术优势和优异的性能表现,相比于MGR在开箱即用的场景下,PolarDB-X基于DN的集中式(标准版)在功能和性能都做到了很好的平衡,成为了极具竞争力的数据库解决方案。
|
1天前
|
分布式计算 大数据 关系型数据库
MaxCompute产品使用合集之如何实现类似mysql实例中的数据库功能
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4天前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
23 3
|
17天前
|
关系型数据库 MySQL 数据库
关系型数据库mysql数据增量恢复
【7月更文挑战第3天】
131 2

推荐镜像

更多