mysql数据库rp集群,使用MySQL-Cluster搭建MySQL数据库集群

1、MySQL集群的作用:

- 解决访问节点的单点故障

- 数据存储节点的单点故障

- 解决数据存储节点数据备份问题

2、集群:

使用一组服务器提供相同的服务

3、关于MySQL-Cluster:

MySQL官方提供的集群版本

已集成标准版MySQL程序,可独立安装使用

采用NDB(Network DataBase)引擎

假定每个节点都有独立内存、硬盘

利用廉价硬件减少整个数据库的单点故障

4、集群中服务器的角色

- 数据节点:ndbd(单线程) ndb_mtd(多线程)   存储数据的(表里的记录)

- Sql节点:mysqld  是客户端访问数据的接口,负责执行SQL命令

可理解为支持NDB的标准MySQL服务器,仅存储表结构、独立的用户授权

面向客户端提供用户鉴权、SQL查询等访问服务

- 管理节点:ndb_mgmd  管理集群中的所有服务器

客户端:client 访问数据

5、案例拓扑:

0818b9ca8b590ca3270a3433284dd417.png

6、0818b9ca8b590ca3270a3433284dd417.pngMySQL集群的搭建(配置)

1)公共配置:

# rpm -qa | grep -i mysql

# service mysql  stop ; chkconfig  mysql off

# rpm -e --nodeps MySQL-devel MySQL-embeddedMySQL-test MySQL-server MySQL-client MySQL-shared MySQL-shared-compat

//保留RHEL自带的mysql-libs包

# rm -rf  /etc/my.cnf

# rm -rf  /var/lib/mysql/*

# tar -xvfMySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpm-bundle.tar

# rpm -Uvh MySQL-Cluster-*.rpm

2)配置管理节点:

运行管理进程   ndb_mgmd

配置文件  /etc/config.ini   (服务器的角色  和角色对应的ip  id号   工作目录)

[ndbd default] :数据节点的公共配置

[ndb_mgmd] :指定管理节点

[ndbd] :指定数据节点

[mysqld] :指定sql节点

# mkdir  -p    /var/log/mysql-cluster   //创建工作目录

# vim /etc/config.ini   //编写主配置文件

[ndbd default]

NoOfReplicas=2       //保留2份数据拷贝

DataMemory=80M     //数据缓存大小

IndexMemory=18M   //索引缓存大小

[ndb_mgmd]

nodeid=7      //管理节点的ID标识

hostname=192.168.4.100   //管理节点的IP地址

datadir=/var/log/mysql-cluster    //工作目录

[ndbd]           //设置数据节点ndbA

nodeid=8      //数据节点ndbA的ID标识

hostname=192.168.4.30     //此节点的IP地址

datadir=/var/log/mysql-cluster/data     //工作目录

[ndbd]         //设置数据节点ndbB

nodeid=9

hostname=192.168.4.40

datadir=/var/log/mysql-cluster/data

[mysqld]      //设置sql节点sqlA

nodeid=10      //sql节点sqlA的ID标识

hostname=192.168.4.10     //此节点的IP地址

[mysqld]      //设置sql节点sqlB

nodeid=11

hostname=192.168.4.20

:wq

3)配置数据节点:

运行数据进程   ndbd

配置文件:  /etc/my.cnf

#mkdir -p   /var/log/mysql-cluster/data    //创建工作目录

#vim    /etc/my.cnf

[mysqld]

datadir=/var/log/mysql-cluster/data       //工作目录

ndb-connectstring=192.168.4.100    //管理节点IP地址

ndbcluster                     //指定使用ndbcluster集群存储引擎

[mysql_cluster]

ndb-connectstring=192.168.4.100   //如何连接管理节点

:wq

4)配置sql节点

运行mysql服务  mysql(此服务是由mysql-cluster软件包提供)

#vim   /etc/my.cnf

[mysqld]

ndbcluster                                //指定使用ndbcluster集群存储引擎

default-storage-engine=ndbcluster    //指定表的默认存储引擎是 ndbcluster

ndb-connectstring=192.168.4.100

[mysql_cluster]

ndb-connectstring=192.168.4.100     //如何连接管理节点

:wq

7、启动不同角色服务器上进程

1)  启动管理节点上的管理进程

#ndb_mgmd  -f  /etc/config.ini

//启动进程,结合-f选项读取.ini配置;默认后台模式,调试时可加--nodaemon;修改了配置以后,可加--initial重新初始化

#netstat -untlap  |  grep   :1186    //查看进程

#pkill  -9   ndb_mgmd      //杀死进程

2)依次启动数据节点上的数据进程

#ndbd

//首次执行时,可加--initial初始化;多个数据节点的操作相同

3)依次启动sql节点上的数据库服务

#service   mysql start  //多个sql节点的操作相同

8、查看集群状态

1)管理节点上登录管理界面,查看状态

#ndb_mgm

ndb_mgm> show

Cluster Configuration

---------------------

[ndbd(NDB)]  2node(s)

id=8 @192.168.4.30  (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0, *)

id=9 @192.168.4.40  (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0)

[ndb_mgmd(MGM)]      1 node(s)

id=7 @192.168.4.100  (mysql-5.6.14 ndb-7.3.3)

[mysqld(API)]       2 node(s)

id=10      @192.168.4.10  (mysql-5.6.14 ndb-7.3.3)

id=11      @192.168.4.20  (mysql-5.6.14 ndb-7.3.3)

ndb_mgm>

2)Sql节点的mysql初始化

重设root密码;为客户端访问添加用户授权

#service mysqlstart

#mysql -uroot -p初始密码    //初始密码见/root/.mysql_secret文件

3)在sql节点上,检查默认的存储引擎

Mysql>show engines;

9、测试访问节点的单点故障

在sql节点上授权可以从远端的客户机连接自己

Grant all on  webdb.* to webuser@”%”identified by “webuser88”;  //两个sql节点都做授权

客户端访问:#mysql-h192.168.10/20  -uwebuser -pwebuser88

mysql>create  database  webdb;

mysql>create  table webdb.a(id int);

mysql>insert   into webdb.a values(1000);

mysql> select  * from webdb.a ;

访问sqlA节点操纵数据,在sqlB上会同步结果。

10、测试数据节点的单点故障

数据节点之间可以互相备份,自动选举Master,自动同步数据。测试时可关掉一个数据节点的ndbd服务,插入、查询数据验证数据的同步性。

Sql节点和数据节点的进程正常运行后,不需要重启的话,管理节点可以关掉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

桌面虚拟化云技术将支撑数字化医院

桌面虚拟化云技术将支撑数字化医院 2013-12-04 10:32 现今医疗行业已经从医院——患者的二元关系走向从医院——患者——政府监督——医疗保险的多元关系,医疗体系需要更高效的运转,患者需要更好的就医体验,这使得医疗行业信息化建设的重要性…

《看聊天记录都学不会C语言?太菜了吧》(14)这么神奇?我写了20行代码竟然一行就可以搞定?

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证。 本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖…

【经典回放】多种语言系列数据结构算法:栈(C#版)

本文采用C#语言实现栈结构算法并举例应用。 一、C#的栈对象使用 对C#而言,要使用栈是极其简单的事情,因为C#已经有栈对象,所以根本不需要自用再用顺序表构造栈,只需要你会说明、会应用即可。 在C#中栈对象的类型名称是Stack,这是个泛型的对象,所以,你在使用这个对象的时…

在 Kubernetes 上部署 Secret 加密系统 Vault

HashiCorp Vault 是一个基于身份的 Secret 和加密管理系统。Secret 是您想要严格控制访问的内容,例如 API 加密密钥、密码或证书。Vault 提供由身份验证和授权方法控制的加密服务。使用 Vault 的 UI、CLI 或 HTTP API,可以安全地存储和管理对机密和其他敏…

《看聊天记录都学不会C语言?太菜了吧》(15)你学了一节课的函数我5分钟搞定了,还很熟

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证。 本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖…

【经典回放】多种语言系列数据结构算法:栈(JavaScript版)

本文采用JavaScript语言实现栈结构算法并举例应用。 JavaScript的栈是数组对象中自动提供的,这点如同C#,实际也不需要自己编写什么栈的程序,如果你用: var s=new Array(); 定义一个s的数组,则这个s上将有以下的方法可供使用: 其中:FF: Firefox, IE: Internet Explore…

设计模式(10)-----模板方法模式

模板方法模式(Template Method) 定义 定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 UML类图 例子 AbstractClass package com.csdhsm.pattemdesign.template;/** * Title: …

SLES修改本地FTP安装源

2019独角兽企业重金招聘Python工程师标准>>> SLES修改本地FTP安装源 一、配置本机FTP............................................................................................................. 1 1.1、安装.............................................…

.NET7 Preview4:重构的返回值TypedResults

为了更好的测试,更好的性能,Preview4带了一个新的请求返回值类型,这个新的类型中封装了所有的Http请求返回状态函数,还包括了返回成功后的几种数据类型,下面列举了几个常用的类型:app.MapGet("/test_o…

MATLAB软件禁用利好,Matlab被禁用?一款国产软件站了出来说:我就是中国的Matlab...

众所周知,前段时间Matlab被禁用,引发了网友们对于国产工业软件落后的诸多思考,比如为什么落后,落后到什么程度,有没有替代品等等。并且从Matlab到EDA,再到CAD等等,甚至工业操作系统等等&#xf…

《看聊天记录都学不会Python到游戏实战?太菜了吧》(3)都说123是字符不是数字

本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将会逐步更新。 若…

ArcGIS实验教程:ArcGIS 10.2手把手图文安装教程(经典版)

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) ArcGIS许可服务无法启动解决办法:Win10操作系统ArcGIS许可License无法启动的解决方法汇总(绝对成功!) 目录 一、系统…

html中radio,checkbox值的获取、赋值、注册事件

1&#xff0c;radio分组 只要name一样&#xff0c;就是一组的&#xff0c;即一组中只能选择一个&#xff0c;如下&#xff1a; 代码如下:<span>group1:</span> <input type"radio" id"radio1" checked"checked" name"grou…

ObjectAnimator属性动画应用demo

感谢慕课网--eclipse_xu 布局文件&#xff1a;activity_main.xml 1 <FrameLayout xmlns:android"http://schemas.android.com/apk/res/android"2 xmlns:tools"http://schemas.android.com/tools"3 android:layout_width"match_parent"…

今晚在线解读|2021-2022 .NET 中国开发者生态调查报告

点击蓝字关注我们作为一名 .NETer&#xff0c;你就职于怎样规模的公司&#xff1f;所属什么行业领域&#xff1f;平时使用哪些快速开发框架&#xff1f;产品方向及收费模式又是怎样的&#xff1f; 作为一名开发者&#xff0c;你从业已有几年&#xff1f;平时加班多吗&#xff1…

实现网站验证码切换功能

实现网站验证码切换功能 一、样例 样例1、 样例2、 二、实现原理 三、实现代码 com.fry.servlet.VerifyCodeServlet 1 package com.fry.servlet;2 3 import javax.imageio.ImageIO;4 import javax.servlet.ServletException;5 import javax.servlet.annotation.WebServlet;6 im…

校园春色关不住,怎奈何唯有花枝俏,不见赏花人?

受新冠肺炎疫情的影响&#xff0c;直至今天&#xff08;2020年4月16日&#xff09;&#xff0c;各大学依然是人去楼空&#xff0c;我的大学也不例外。春天来了&#xff0c;本应是校园春色关不住&#xff0c;却怎奈何唯有花枝俏&#xff0c;不见赏花人&#xff1f;这也正应了那句…

CSDN是如何让我副业月入过万的?

始 我跟 CSDN 的缘分要从 2011 年说起&#xff0c;当时我正上高二&#xff0c;当时好像是在搞鼓 MFC。当时家里有了第一台电脑&#xff0c;我也再也不用去黑网吧去敲代码了&#xff0c;在家搜索资料的时候出现在我眼帘之中&#xff0c;并且对我有帮助的基本上都是 CSDN 上的内…

MSMQ消息广播

安装配置MSMQ消息广播&#xff0c;并验证是否可以发送广播消息&#xff0c;过程实录。1. 安装MSMQ with broadcasting support选择安装“消息队列”&#xff0c;并在子选项中选择“多播支持”一起安装。2. 注册表修改MulticastBindIPIf Message Queueing found multiple IP add…

【操作系统】操作系统不可怕,重装系统不求人,因为我们是GISer!

GISer不仅可以用意念操作软件,而且可以轻松自如重装系统!今天我们分享用U制作启动盘,并安装Win7系统。 一、系统安装必备 优盘(现在的U盘内存都比较大,大于4G即可)电脑店操作系统(Win7 64位专业版)二、安装过程 1、系统启动盘制作 下载电脑店优盘制作软件,安装,运行…