mysql高可用方案之集群(cluster)

1.实验环境

我用三台服务器搭建mysql cluster环境,sql节点和数据节点在同一服务器上,管理节点单独一台.

cluster node1:192.168.1.102        data node1:192.168.1.102

cluster node2:192.168.1.104        data node2:192.168.1.104

manager node:192.168.1.19

OS:centos 6.4 64位

2.在sql节点和数据节点安装mysql cluster

cluster node1:

[[email protected] home]# wget http://mirrors.sohu.com/mysql/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64.tar.gz

[[email protected] home]# tar xvf mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64.tar.gz

[[email protected] home]# mv mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64 /usr/local/mysql-cluster-gpl-7.3.6/

[[email protected] home]# cd /usr/local/

[[email protected] local]# groupadd mysql
[[email protected] local]# useradd  -r -M -s /sbin/nologin mysql

[[email protected] local]# chown -R root:mysql mysql-cluster-gpl-7.3.6/
[[email protected] local]# chown -R mysql:mysql mysql-cluster-gpl-7.3.6/data/

[[email protected] scripts]# ./mysql_install_db  --user=mysql --datadir=/usr/local/mysql-cluster-gpl-7.3.6/data --basedir=/usr/local/mysql-cluster-gpl-7.3.6

[[email protected] scripts]# cd ../bin/

[[email protected] bin]# cp -a ../support-files/mysql.server  /etc/init.d/mysqld

[[email protected] bin]# chkconfig  --add mysqld

[[email protected] bin]# chkconfig  mysqld on

[[email protected] bin]# cp -a ../my.cnf  /etc/my.cnf

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

[mysqld]

basedir = /usr/local/mysql-cluster-gpl-7.3.6                      --数据库的安装路径
datadir = /usr/local/mysql-cluster-gpl-7.3.6/data               --数据库的数据目录
port = 3306
ndbcluster             --集群服务
ndb-connectstring=192.168.1.19           --管理节点的IP地址

[mysql_cluster]
ndb-connectstring=192.168.1.19           --管理节点的IP地址

[[email protected] bin]# ./mysqld_safe --user=mysql

[[email protected] bin]# /etc/init.d/mysqld restart
 ERROR! MySQL server PID file could not be found!
Starting MySQL...................................... SUCCESS!
[[email protected] bin]# netstat -anp |grep mysql
tcp        0      0 :::3306                     :::*                        LISTEN      1982/mysqld        
unix  2      [ ACC ]     STREAM     LISTENING     48481  1982/mysqld         /tmp/mysql.sock[[email protected] bin]# /etc/init.d/iptables stop

iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
[[email protected] bin]#

cluster node2:

注:节点2上的mysql cluster安装和节点1是一样的,配置文件也是一样

3.管理节点

[[email protected] home]# wget http://mirrors.sohu.com/mysql/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64.tar.gz

[[email protected] home]# tar xvf mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64.tar.gz

[[email protected] home]#  mv mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64 /usr/local/mysql-cluster-gpl-7.3.6/

[[email protected] home]# cd /usr/local/

[[email protected] local]# groupadd mysql
[[email protected] local]# useradd  -r -M -s /sbin/nologin mysql

[[email protected] local]# chown -R root:mysql mysql-cluster-gpl-7.3.6/
[[email protected] local]# chown -R mysql:mysql mysql-cluster-gpl-7.3.6/data/

[[email protected] scripts]# ./mysql_install_db  --user=mysql --datadir=/usr/local/mysql-cluster-gpl-7.3.6/data --basedir=/usr/local/mysql-cluster-gpl-7.3.6

[[email protected] scripts]# cd ../bin/

[[email protected] bin]# cp -a ../my.cnf  /etc/my.cnf

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

[mysqld]

basedir = /usr/local/mysql-cluster-gpl-7.3.6
datadir = /usr/local/mysql-cluster-gpl-7.3.6/data
port = 3306

[[email protected] home]# /etc/init.d/iptables stop
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]

[[email protected] home]# mkdir  /var/lib/mysql-cluster/

[[email protected] home]# vim  /var/lib/mysql-cluster/config.ini     --配置文件中注意大小写

[ndbd default]
NoOfReplicas=1

[tcp default]
portnumber=2202

[ndb_mgmd]
Id=1
Hostname=192.168.1.19
datadir=/usr/local/mysql-cluster-gpl-7.3.6/data

[ndbd]
Id=2
Hostname=192.168.1.102
datadir=/usr/local/mysql-cluster-gpl-7.3.6/data/

[ndbd]
Id=3
Hostname=192.168.1.104
datadir=/usr/local/mysql-cluster-gpl-7.3.6/data/

[MYSQLD]
Id=4
Hostname=192.168.1.102

[MYSQLD]
Id=5
Hostname=192.168.1.104

[[email protected] bin]# ./ndb_mgmd --configdir=/var/lib/mysql-cluster/ -f /var/lib/mysql-cluster/config.ini  --initial  --启动管理节点服务
MySQL Cluster Management Server mysql-5.6.17 ndb-7.3.6

[[email protected] bin]# netstat -anp | grep ndb
tcp        0      0 0.0.0.0:1186                0.0.0.0:*                   LISTEN      3569/ndb_mgmd      
tcp        0      0 192.168.1.105:1186         192.168.1.102:45799        ESTABLISHED 3569/ndb_mgmd      
tcp        0      0 192.168.1.105:1186         192.168.1.104:46933        ESTABLISHED 3569/ndb_mgmd      
tcp        0      0 127.0.0.1:1186              127.0.0.1:55347             ESTABLISHED 3569/ndb_mgmd      
tcp        0      0 192.168.1.105:1186         192.168.1.102:45800        ESTABLISHED 3569/ndb_mgmd      
tcp        0      0 192.168.1.105:1186         192.168.1.102:45801        ESTABLISHED 3569/ndb_mgmd      
tcp        0      0 127.0.0.1:55347             127.0.0.1:1186              ESTABLISHED 3569/ndb_mgmd      
unix  3      [ ]         STREAM     CONNECTED     20977  3569/ndb_mgmd      
unix  3      [ ]         STREAM     CONNECTED     20976  3569/ndb_mgmd      
[[email protected] bin]#

4.启动cluster节点和数据库服务

cluster node1:

[[email protected] bin]# ./ndbd --initial

2014-10-10 09:59:20 [ndbd] INFO     -- Angel connected to ‘192.168.1.19:1186‘
2014-10-10 09:59:20 [ndbd] INFO     -- Angel allocated nodeid: 2

[[email protected] bin]# ../support-files/mysql.server start
Starting MySQL SUCCESS!
[[email protected] bin]#

cluster node2:

[[email protected] bin]# ./ndbd --initial

2014-10-10 10:01:24 [ndbd] INFO     -- Angel connected to ‘192.168.1.19:1186‘
2014-10-10 10:01:24 [ndbd] INFO     -- Angel allocated nodeid: 3

[[email protected] bin]# ../support-files/mysql.server start
Starting MySQL SUCCESS!
[[email protected] bin]#

管理节点查看信息:

[[email protected] bin]# ./ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.1.102  (mysql-5.6.17 ndb-7.3.6, Nodegroup: 0, *)
id=3 @192.168.1.104  (mysql-5.6.17 ndb-7.3.6, Nodegroup: 1)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.19  (mysql-5.6.17 ndb-7.3.6)

[mysqld(API)] 2 node(s)
id=4 @192.168.1.102  (mysql-5.6.17 ndb-7.3.6)
id=5 @192.168.1.102  (mysql-5.6.17 ndb-7.3.6)

ndb_mgm>

时间: 2024-08-29 10:54:06

mysql高可用方案之集群(cluster)的相关文章

搭建MySQL高可用负载均衡集群

1.简介 使用MySQL时随着时间的增长,用户量以及数据量的逐渐增加,访问量更是剧增,最终将会使MySQL达到某个瓶颈,那么MySQL的性能将会大大降低.这一结果也不利于软件的推广. 那么如何跨过这个瓶颈,提高MySQL的并发量呢?方法有很多,分布式数据库.读写分离.高可用负载均衡.增加缓存服务器等等.之前的文章里已经介绍了读写分离的方案了,接下来我将讲解MySQL高可用负载均衡这一方法. 其中实现高可用负载均衡的方法有很多,例如LVS+keepalived组合实现.haproxy+keepal

Redis Cluster搭建高可用Redis服务器集群

原文:Redis Cluster搭建高可用Redis服务器集群 一.Redis Cluster集群简介 Redis Cluster是Redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了Redis分布式的需求,当一个节点挂了可以快速的切换到另一个节点,当遇到单机内存.并发等瓶颈时,可以采用分布式方案要解决问题. 二.集群原理 Redis Cluster架构图 Redis Cluster集群采用了P2P的模式,完全去中心化,Redis把所有的Key分成了16384个slot,每个R

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高可用方案选型参考

原文: http://imysql.com/2015/09/14/solutions-of-mysql-ha.shtml?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io 本次专题是 MySQL高可用方案选型,这个专题想必有很多同学感兴趣. 高可用的意义以及各种不同高可用等级相应的停机时间我就不必多说了,直接进入主题. 可选MySQL高可用方案 MySQL的各种高可用方案,大多是基于以下几种基础来部署的: 基于主从复制:

五大常见的MySQL高可用方案【转】

1. 概述 我们在考虑MySQL数据库的高可用的架构时,主要要考虑如下几方面: 如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断. 用作备份.只读副本等功能的非主节点的数据应该和主节点的数据实时或者最终保持一致. 当业务发生数据库切换时,切换前后的数据库内容应当一致,不会因为数据缺失或者数据不一致而影响业务. 关于对高可用的分级在这里我们不做详细的讨论,这里只讨论常用高可用方案的优缺点以及高可用方案的选型. 2. 高可用方

MySQL高可用方案选型参考

本次专题是 MySQL高可用方案选型,这个专题想必有很多同学感兴趣. 高可用的意义以及各种不同高可用等级相应的停机时间我就不必多说了,直接进入主题. 可选MySQL高可用方案 MySQL的各种高可用方案,大多是基于以下几种基础来部署的: 基于主从复制: 基于Galera协议: 基于NDB引擎: 基于中间件/proxy: 基于共享存储: 基于主机高可用: 在这些可选项中,最常见的就是基于主从复制的方案,其次是基于Galera的方案,我们重点说说这两种方案.其余几种方案在生产上用的并不多,我们只简单

Heartbeat+DRBD+MySQL高可用方案

Heartbeat+DRBD+MySQL高可用方案 =============================================================================== 概述: =============================================================================== 方案介绍  1.方案介绍及优缺点 ★方案介绍 本方案采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数

HAProxy高可用负载均衡集群部署

HAProxy高可用负载均衡集群部署 基本信息: 系统平台:VMware WorkStation 系统版本: CentOS Linux release 7.2.1511 (Core) 内核版本: 3.10.0-327.el7.x86_64 集群架构: 前端:HAProxy 1.虚拟FQDN:www.simpletime.net 2.VIP:192.168.39.1:DIP:172.16.39.50 3.调度服务器:Varnish1.Varnish2 4.调度算法:URL_Hash_Consist

MySQL高可用方案MHA自动Failover与手动Failover的实践及原理

集群信息 角色                             IP地址                 ServerID      类型 Master                         192.168.244.10   1                 写入 Candicate master          192.168.244.20   2                 读 Slave                           192.168.244.