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

6MySQL集群的搭建(配置)

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

时间: 2024-10-13 23:42:52

使用MySQL-Cluster搭建MySQL数据库集群的相关文章

CentOS 7 搭建PXC 数据库集群

PXC( Percona XtraDB Cluster ) 特点如下: 1.同步复制,事务要么在所有节点提交或不提交,保证了数据的强一致性. 2.多主复制,可以在任意节点进行写操作. 3.在从服务器上并行应用事件,真正意义上的并行复制. Percona 下载地址 https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/ 所有下载安装包如下: Percona-XtraDB-Cluster Percona-XtraBackup

构建读写分离的数据库集群

4.1实战案例——构建读写分离的数据库集群 使用Mycat作为数据库中间件服务构建读写分离的数据库集群 使用一台虚拟机部署Mycat数据库中间件服务,将用户提交的读写操作识别分发给相应的数据库 节点.这样将用户的访问操作.数据库的读与写操作分给3台主机,只有数据库集群的主节点接 收增.删.改SQL语句,从节点接收查询语句,分担了主节点的查询压力 基础准备 使用CentOS 7.2系统,创建3台虚拟机进行实验. 其中2台虚拟机db1和db2部署MariaDB数据库服务,搭建主从数据库集群:一台作为

【Data Cluster】真机环境下MySQL数据库集群搭建

阅读目录 MySQL Cluster简介 mysql-cluster构造 虚拟机安装centos6.6 mysql-cluster下载 centos6.6搭建环境配置 mysql-cluster安装包导入cent中 集群配置 运行mysql-cluster 常见问题 测试 真机环境下MySQL-Cluster搭建文档  摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔者对此不甚了解,查阅很多资

docker应用-6(mysql+mycat 搭建数据库集群)

上一节,通过使用overlay网络,搭建了跨主机的docker容器集群.下面,在这个跨主机的docker容器集群环境下,搭建mysql 数据库集群. mysql主从自动备份和自动切换 从数据安全性考虑,对数据库的数据进行及时备份非常重要.mysql就提供了主从备份的机制,从数据库会非常及时的将主数据库的操作更新到从库上,从而当主数据库down掉之后,数据不会丢失:同时,也可以通过keepalived等程序来实现主库down掉之后,迅速将数据访问服务切换到从库,从而尽可能维护数据库服务的不间断运行

MyCAT+MySQL 搭建高可用企业级数据库集群

第1章 课程介绍课程介绍1-1 MyCAT导学 试看1-2 课程介绍 第2章 MyCAT入门这一章中,我们将回顾了垂直切分,水平切分,分库分表等基础概念,然后快速回如何安装和启动MyCAT的,介绍如何以打包好的可执行程序的方式来启动MyCAT.以及如何对其相关的启动配置文件进行配置.2-1 章节综述2-2 什么是MyCAT2-3 什么是数据库中间层2-4 MyCAT的主要作用2-5 MyCAT基本元素2-6 MyCAT安装 第3章 MYCAT核心配置详解本章将对MyCAT的常用核心配置文件ser

MySQL数据库集群进行正确配置步骤

MySQL数据库集群进行正确配置步骤 2010-06-09 10:47 arrowcat 博客园 字号:T | T 我们今天是要和大家一起分享的是对MySQL数据库集群进行正确配置,我前两天在相关网站看见的资料,今天拿出来供大家分享. AD:51CTO 网+首届APP创新评选大赛火热启动——超百万资源等你拿! 此文章主要向大家讲述的是对MySQL数据库集群进行正确配置的实际操作步骤,以及对其概念的讲述,如果你对其相关的实际操作有兴趣了解的话,以下的文章将会给你提供相关的知识. 一.介绍 这篇文档

配置mysql数据库集群

1.先在所有数据库服务器上安装mysql-cluster包 管理机:192.168.1.6 数据节点:192.168.1.31   192.168.1.32 sql节点:192.168.1.33    192.168.1.111 2.在管理节点上配置  [[email protected] ~]# vim /etc/config.ini [ndbd default]    //数据节点公共配置 noofreplicas=2   //数据备份数 datamemory=300M  //查询缓存 in

MySQL数据库集群-PXC方案

第1章 课程摘要课程内容的概要介绍,包括课程目标,面向用户,预备知识,课程大纲,软件与硬件环境等. 1-1 课程导学1-2 开发环境要求 第2章 创建PXC集群学习安装与创建PXC集群,为了搭建三高特点的数据库集群,我们将把两组PXC集群组建成分片,由MyCat做数据切分与读写分离,然后对MyCat做集群,用Keepalived+Haproxy实现双机热备.了解数据库的基准测试与压力测试,掌握PXC的实际性能.... 2-1 CentOS安装PerconaServer数据库2-2 安装PXC组建

PhxSQL兼容MySQL的关系型数据库集群

PhxSQL是一个兼容MySQL.服务高可用.数据强一致的关系型数据库集群.PhxSQL以单Master多Slave方式部署,在集群内超过一半机器存活的情况下,可自身实现自动Master切换,且保证数据一致性. PhxSQL 架构: PhxSQL基于Percona 5.6开发.Percona是MySQL的一个分支,功能和实现与MySQL基本一致(基础教程qkxue.net).因此本文后续直接把MySQL作为讨论对象. 总览: PhxSQL具有服务高可用.数据强一致.高性能.运维简单.和MySQL

PhxSQL 教程:兼容MySQL的数据库集群

PhxSQL是一个兼容mysql.服务高可用.数据强一致的关系型数据库集群.PhxSQL以单Master多Slave方式部署,在集群内超过一半机器存活的情况下,可自身实现自动Master切换,且保证数据一致性. PhxSQL基于Percona 5.6开发.Percona是MySQL的一个分支,功能和实现与MySQL基本一致(腾云科技TY300.COM).因此本文后续直接把MySQL作为讨论对象. MySQL半同步复制存在缺陷,在Master进行切换的场景下,数据难以保证一致. 当旧Master复