mysql集群实例

原文地址:http://www.it165.net/database/html/201403/5678.html

mysql集群

集群/群集:用一组服务器提供相同的服务

LB集群:负载均衡集群(多台服务器共同工作)

HA集群:高可靠集群(一个做备用)

一、mysql集群架构中的主机的角色:


类型


服务进程


主要用途


管理节点


ndb_mgmd


提供集群配置,启动或停止节点,

执行备份、群集监控等任务

管理节点必须第一个启动


数据节点


ndbd (单线程)

ndb_mtd (多线程)


存储实际的表记录,可以有多个副本

推荐至少2个数据节点


SQL节点


mysqld


可理解为支持NDB的标准MySQL服务器,

仅存储表结构、独立的用户授权

面向客户端提供用户鉴权、SQL查询等

访问服务

二、安装

不需要安装mysql-server软件了,所以可以关掉mysql服务

在集群中的所有主机上安装mysql-cluster集群软件

mysql-cluster软件提供3种进程:

1,mysqld进程:供用户访问和执行sql语句

2,数据进程ndbd:存储数据

3,管理进程mgmd:管理集群中的所有的主机

三、具体思路:

1,配置管理节点:server1

ip地址:192.168.1.1

mkdir/var/log/my-cluster

vim/etc/my-cluster.ini (该文件不存在,需要创建)

[ndbd default] //设置数据节点的默认参数

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

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

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

[ndb_mgmd] //设置管理节点

nodeid=1 //管理节点的标识

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

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

[mysqld] //设置SQL节点server1

nodeid=2 //ID标识

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

[mysqld] //设置SQL节点server2

nodeid=3

hostname=192.168.1.30

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

nodeid=4 //ID标识

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

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

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

nodeid=5

hostname=192.168.1.50

datadir=/var/log/mysql-cluster

2,配置sql节点(server2,server3)

编辑sql节点的配置文件/etc/my.cnf(本身不存在,需要创建)

vim /etc/my.cnf

[mysqld]

ndbcluster //使用ndb集群引擎

default-storage-engine=ndbcluster //设置默认引擎

[mysql_cluster]

ndb-connectstring=192.168.1.1 //指定管理节点ip地址

server3上配置和server2相同

3,配置数据节点(server4,server5)

首先创建server1上配置文件指定的文件夹:

mkdir/var/log/mysql-cluster

然后给数据节点编辑配置文件(/etc/my.cnf 本身不存在,需要创建)

vim /etc/my.cnf

[mysqld]

datadir=/var/log/mysql-cluster //工作目录,在管理节点上配置文件指定的那个目录

ndb-connectstring=192.168.1.1 //管理本台主机的ip地址

ndbcluster //使用ndb集群存储引擎为ndbcluster

[mysql_cluster] //指定管理集群的主机

ndb-connectstring=192.168.1.1 //指定管理集群的ip地址

注:server4和server5上的配置一样

4,初始化授权库

5,启动所有server的服务

第一个:先启动管理主机上的管理进程

在server1上:

ndb_mgmd -f /etc/my-cluster.ini //启动管理进程的时候加载配置文件my-cluster.ini

ndb_mgm //登录

show //查看急群众所有主机的状态

关闭该进程使用:pkill-9 ndbd_mgmd

第二个:启动数据节点主机上的ndbd进程(server4、server5)

在server4和server5上:

ndbd //开启ndbd进程

如果想要关闭,使用kill杀死进程号或pkill杀死ndbd进程

第三个:启动sql节点(server2,server3)

启动mysql服务

service mysql start

MySQL集群配置示例:

环境:

server1:192.168.1.1

server2:192.168.1.20

server3:192.168.1.30

server4:192.168.1.40

server5:192.168.1.50

第一步:server1配置:


[[email protected] ~]# mkdir /var/log/my-cluster

[[email protected] ~]# cat /etc/my-cluster.ini

[ndbd default]

NoOfReplicas=2

DataMemory=80M

IndexMemory=18M

[ndb_mgmd]

nodeid=1

hostname=192.168.1.1

datadir=/var/log/my-cluster

[mysqld]

nodeid=2

hostname=192.168.1.20

[mysqld]

nodeid=3

hostname=192.168.1.30

[ndbd]

nodeid=4

hostname=192.168.1.40

datadir=/var/log/mysql-cluster

[ndbd]

nodeid=5

hostname=192.168.1.50

datadir=/var/log/mysql-cluster

[[email protected] ~]#

注:ip地址为192.168.1.1

第二步:server2和server3的配置:


[[email protected] ~]# ifconfig | grep addr

eth1 Link encap:Ethernet HWaddr 00:0C:29:22:B2:31

inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe22:b231/64 Scope:Link

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

[[email protected] ~]# vim /etc/my.cnf

[[email protected] ~]# cat /etc/my.cnf

[mysqld]

ndbcluster

default-storage-engine=ndbcluster

[mysql_cluster]

ndb-connectstring=192.168.1.1

[[email protected] ~]#

注:server3和server2配置相同,ip地址为192.168.1.30

第三步:server4和server5上的配置:


[[email protected] ~]# ifconfig | head -2

eth1 Link encap:Ethernet HWaddr 00:0C:29:B6:6A:99

inet addr:192.168.1.40 Bcast:192.168.1.255 Mask:255.255.255.0

[[email protected] ~]# vim /etc/my.cnf

[[email protected] ~]# cat /etc/my.cnf

[mysqld]

datadir=/var/log/mysql-cluster

ndb-connectstring=192.168.1.1

ndbcluster

[mysql_cluster]

ndb-connectstring=192.168.1.1

[[email protected] ~]#

第四步:


首先启动管理主机server1

[[email protected] Desktop]# ndb_mgmd -f /etc/my-cluster.ini

MySQL Cluster Management Server mysql-5.6.14 ndb-7.3.3

[[email protected] Desktop]# ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm> show

Connected to Management Server at: localhost:1186

Cluster Configuration

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

[ndbd(NDB)] 2 node(s)

id=4 (not connected, accepting connect from 192.168.1.40)

id=5 (not connected, accepting connect from 192.168.1.50)

[ndb_mgmd(MGM)] 1 node(s)

id=1 @192.168.1.1 (mysql-5.6.14 ndb-7.3.3)

[mysqld(API)] 2 node(s)

id=2 (not connected, accepting connect from 192.168.1.20)

id=3 (not connected, accepting connect from 192.168.1.30)

ndb_mgm>

然后再server4和server5上启动ndbd进程

server4:

[[email protected] Desktop]# ndbd

2014-03-21 18:35:42 [ndbd] INFO -- Angel connected to ‘192.168.1.1:1186‘

2014-03-21 18:35:42 [ndbd] INFO -- Angel allocated nodeid: 4

[[email protected] Desktop]#

server5:

[[email protected] Desktop]# ndbd

2014-03-21 19:57:10 [ndbd] INFO -- Angel connected to ‘192.168.1.1:1186‘

2014-03-21 19:57:10 [ndbd] INFO -- Angel allocated nodeid: 5

[[email protected] Desktop]#

最后在server2和server3上开启mysql服务:

[[email protected] ~]# service mysql restart

Shutting down MySQL.... [ OK ]

Starting MySQL..... [ OK ]

[[email protected] ~]#

[[email protected] Desktop]# service mysql restart

Shutting down MySQL..... [ OK ]

Starting MySQL.... [ OK ]

[[email protected] Desktop]#

验证:在server1上通过show命令查看是否连接成功

ndb_mgm> show

Cluster Configuration

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

[ndbd(NDB)] 2 node(s)

id=4 @192.168.1.40 (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0, *)

id=5 @192.168.1.50 (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)

id=1 @192.168.1.1 (mysql-5.6.14 ndb-7.3.3)

[mysqld(API)] 2 node(s)

id=2 @192.168.1.20 (mysql-5.6.14 ndb-7.3.3)

id=3 @192.168.1.30 (mysql-5.6.14 ndb-7.3.3)

ndb_mgm>

时间: 2024-08-05 12:34:15

mysql集群实例的相关文章

Mysql集群讲解(三)Mysql多实例(多个数据库)搭建

Mysql集群讲解(三) Mysql多实例(多个数据库)搭建 多实例概述: MySQL多实例是指安装MySQL之后,我们可以在一台Linux服务器上同时启动多个MySQL数据库(实例),不需要安装多个MySQL: 如果是有多台Linux服务器,那么我们需要每台服务器都分别安装MySQL: 在一台Linux服务器上启动多个MySQL数据库(实例),通过为各个数据库实例配置独立的配置文件来实现,即每个数据库实例有自己单独的配置文件: 多实例配置: 1. 在MySQL安装主目录下创建/data/330

MySQL Cluster(MySQL 集群) 初试(转)

作/译者:叶金荣(imysql#imysql.com>),来源:http://imysql.com,欢迎转载. 作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究. MySQL Cluster 是MySQL适合于分布式计算环境的高实用.高冗余版本.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器.在MyQL 5.0及以上的二进制版本中.以及与最新的Linux版本兼容的

103-MHA 高可用mysql集群

一.MHA简介 1.1.简介 MHA(Master HA ) 是一款开源的 MySQL高可用程序,它为MYSQL 主从复制架构提供了automating master failover 主节点自动迁移功能.MHA在监控到master节点故障时候,会自动提升拥有的数据最近进于主节点的其他从节点为主节点, 并且在此期间,会通过其他节点获取额外的信息来避免数据不一致性的问题.MHA也提供master节点的在线切换功能, 即按需切换master/slave节点. 1.2.MHA服务角色 MHA Mana

MySQL集群之Fabric部署使用

Fabric是Oracle公司开发的既有分片又有读写分离的MySQL集群管理工具,虽然个人觉得目前版本还有很多缺陷,但应该会逐步完善,将来会是一个不错的工具. 第一步:下载并安装 Fabric Fabric可以从MySQL官网下载,她属于MySQL Utilites里,官方下载地址是http://dev.mysql.com/downloads/utilities/ 我下载的是源码版的,mysql-utilities-1.5.6.zip,因为是Python所写,所以安装跟C语言的不同: $ unz

分布式MySQL集群方案的探索与思考

转载:http://www.infoq.com/cn/articles/exploration-of-distributed-mysql-cluster-scheme?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text 背景 数据库作为一个非常基础的系统,任何一家互联网公司都会使用,数据库产品也很多,有Oracle.SQL Server .MySQL.Pos

MYSQL集群的搭建

按照此配置完全可以配置成功!! 一.介绍========测试环境:Server1:ndbd 192.168.1.225Server2:ndbd 192.168.1.226Server3:mysqld --ndb-cluster 192.168.1.224 (ndbd_mgm ndbd_mgmd也在本机)Server4:LVS 192.168.1.111 (调度主服务器,利用此服务器进行MYSQL的负载均衡,否则MYSQL CLUSTER只做到了数据同步的作用,好像在机制内部MYSQL NDB的各

MySQL集群---②Windows平台搭建MySQL CLUSTER集群

本文将通过两台电脑来简单介绍一下Windows平台如何搭建MySQL集群. MySQL集群支持多台电脑,本文搭建的MySQL集群以两台机子为例,其中一台(IP为192.168.24.33)部署管理节点.数据节点和SQL节点,另一台(IP为192.168.24.82)部署数据节点和SQL节点. 实际应用中,不要将管理节点跟数据节点部署到一台机子上,因为如果数据节点宕机会导致管理节点不可用,同时整个MySQL群集也就都不可用了.所以一个MySQL群集理想情况下至少有三台服务器,将管理节点单独放到一台

mysql集群配置

最近好不容易抽空研究了下Cobar,感觉这个产品确实很不错(在文档方面比Amoeba强多了),特此推荐给大家.Cobar是阿里巴巴研发的关系型数据的分布式处理系统,该产品成功替代了原先基于Oracle的数据存储方案,目前已经接管了3000+个MySQL数据库的schema,平均每天处理近50亿次的SQL执行请求. 首先,使用Cobar的核心功能如下: 分布式: Cobar的分布式主要是通过将表放入不同的库来实现: 1. Cobar支持将一张表水平拆分成多份分别放入不同的库来实现表的水平拆分 2.

MySQL 集群

最近正在学习mysql集群及其搭建,好晕啊... 转自:http://blog.csdn.net/zhangking/article/details/5670070 MySQL 群集是 MySQL 适合于分布式计算环境的高可用.高冗余版本.它采用了 NDB Cluster 存储引擎,允许在 1 个群集中运行多个 MySQL 服务器.在 MySQL 5.0 及以上的二进制版本中,以及与最新的 Linux 版本兼容的 RPM 包中提供了该存储引擎. MySQL 群集是一种技术,该技术允许在无共享的系