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、案例拓扑:

6、spacer.gifMySQL集群的搭建(配置)

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节点和数据节点的进程正常运行后,不需要重启的话,管理节点可以关掉

mysql数据库集群技术_使用MySQL-Cluster搭建MySQL数据库集群相关推荐

  1. mysql 高并发 集群架构_一种高并发的GPU集群架构及其负载均衡方法技术

    [技术实现步骤摘要] 一种高并发的GPU集群架构及其负载均衡方法 本专利技术属于GPU集群架构及其负载均衡方法 ,特别是涉及一种高并发的GPU集群架构及其负载均衡方法. 技术介绍 GPU因其高性能的并 ...

  2. 后台数据到mysql怎样保持实时更新_京东智联云MySQL数据库如何保障数据的可靠性?...

    MySQL作为当前最流行的关系型数据库,在各个行业的系统中扮演着最重要的角色.随着大家对数据价值认可的逐步加深,数据的可靠性是最常被问到的一个问题.MySQL是如何保证数据可靠性的?京东智联云RDS- ...

  3. mysql可以操作指针么_使用C API操作mysql数据库

    使用C API操作mysql数据库 说明:使用mysql提供的C API编程实现数据库的最基本操作,算是抛砖引玉吧.如果想了解更多,请安装mysql(如何安装可以参考本人的"软件使用之:my ...

  4. java mysql单库多表_第69节:Java中数据库的多表操作

    第69节:Java中数据库的多表操作 前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文 ...

  5. mysql哪些数据库不能删除吗_为什么我不能删除MySQL数据库?

    问题 我在Mac OS 10.8.2上运行MySQL 5.5.23,无法删除特定的数据库,但我可以删除其他数据库. 当我试图删除特定的表我得到这个错误: #1548 - Cannot load fro ...

  6. mysql 从物理文件恢复_从物理文件恢复MySQL数据库

    从@Vicent的答案,我已经恢复如下MySQL数据库: 步骤1.关闭MySQL服务器 第二步复制数据库,数据库文件夹(在Linux中,默认位置是的/ var/lib中/ MySQL的).保持数据库名 ...

  7. c mysql 查不到数据_怎么检测不到MYSQL数据库的存在

    明明我安装了数据库,当安装论坛程序时,总检测不到数据库的存在,希望高手帮忙--程序:discuz试图启动没有配置的服务??怎么说我的MYSQL没有呢???安装提示:无法连接数据库,请... 明明我安装 ...

  8. 阿里云mysql数据库远程连接测试_远程连接阿里云MySQL数据库

    阿里云最近搞活动,学生价10块一个月,于是乎找研究僧同学买了半年玩玩. 正常情况下买了服务器之后还要买数据库,但是我只是用来做测试,所以没必要再买几十块一个月的买数据库. 服务器我买的是市场镜像并且已 ...

  9. java集群技术_什么是集群?集群?java集群技术面试的一些知识准备

    你是否正在寻找关于集群技术的内容?让我把最完整的东西奉献给你: java集群技术面试的一些知识准备 一个集群系统是一群松散结合的服务器组,形成一个虚拟的服务器,为客户端用户提供统一的服务.对于这个客户 ...

最新文章

  1. python使用imbalanced-learn的SMOTENC方法进行上采样处理数据不平衡问题
  2. JAVA调用SQL存储过程详解
  3. innerHTML,innerText
  4. 最高的奖励 51Nod - 1163(贪心+并查集)
  5. JAVA_WEB--jsp语法
  6. Vue.js环境搭建
  7. 认证鉴权与API权限控制在微服务架构中的设计与实现(一)
  8. Hulu诚意出品 |《百面深度学习》重磅上市
  9. 【数据结构】----C语言实现栈操作
  10. JSP自定义标签入门实例
  11. 如何将 Python 的一个类方法变为多个方法?
  12. mySql 查询当天、本周、最近7天、本月、最近30天的语句
  13. 怎么下载卫星地图导出为离线包
  14. 前端页面读取ukey
  15. 临时邮箱,20分钟,30分钟,60分钟
  16. Codeforces 853 A. Planning
  17. 64位系统和32位系统区别
  18. 第三次作业--结对编程
  19. Qt 之 自定义窗口标题栏
  20. IntelliJ IDEA 创建Spring+SpringMVC+hibernate+maven项目

热门文章

  1. RTD-D项目总结(MATLAB)
  2. 2.2.3 操作系统之调度算法的评价指标(cpu利用率、系统吞吐量、周转时间、等待时间、响应时间)
  3. USB 之四 USB 发展(更名)史 / USB 规范变化
  4. linux可以打开浏览器嘛,Linux下怎样可以打开浏览器
  5. 启明云端分享|由于国外某品牌WIFI缺货涨价,导致Ipcamera、机顶盒及一些商显、广告机厂商生产跟不上,成本直线上升,怎么办呢,替代方案来了,选用pin to pin的ESP8089模块就可以了
  6. rt-thread 自动初始化机制分析-关于编译链接及段信息
  7. 节点服务器虚拟网络,虚拟网络功能节点放置研究
  8. linux查看所有磁盘信息fdisk,Linux下添加新硬盘,分区及挂载 挂载好新硬盘后输入fdisk -l命令看当前磁盘信息 可以看...
  9. Google Play应用上架流程(含踩坑经验)
  10. 团队任务4:第二次冲刺(Beta)