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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

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节点1和节点2是一样的)

cluster node1:

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

[root@node1 home]# tar xvf mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64.tar.gz

[root@node1 home]# mv mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64 /usr/local/mysql-cluster-gpl-7.3.6/

[root@node1 home]# cd /usr/local/

[root@node1 local]# groupadd mysql
[root@node1 local]# useradd  -r -M -s /sbin/nologin mysql

[root@node1 local]# chown -R root:mysql mysql-cluster-gpl-7.3.6/
[root@node1 local]# chown -R mysql:mysql mysql-cluster-gpl-7.3.6/data/

[root@node1 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

[root@node1 scripts]# cd ../bin/

[root@node1 bin]# cp -a ../support-files/mysql.server  /etc/init.d/mysqld

[root@node1 bin]# chkconfig  --add mysqld

[root@node1 bin]# chkconfig  mysqld on

[root@node1 bin]# cp -a ../my.cnf  /etc/my.cnf

[root@node1 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地址

[root@node1 bin]# ./mysqld_safe --user=mysql

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

iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
[root@node1 bin]#

 

cluster node2:

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

 

3.管理节点

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

[root@db2 home]# tar xvf mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64.tar.gz

[root@db2 home]#  mv mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64 /usr/local/mysql-cluster-gpl-7.3.6/

[root@db2 home]# cd /usr/local/

[root@db2 local]# groupadd mysql
[root@db2 local]# useradd  -r -M -s /sbin/nologin mysql

[root@db2 local]# chown -R root:mysql mysql-cluster-gpl-7.3.6/
[root@db2 local]# chown -R mysql:mysql mysql-cluster-gpl-7.3.6/data/

[root@db2 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

[root@db2 scripts]# cd ../bin/

[root@db2 bin]# cp -a ../my.cnf  /etc/my.cnf

[root@db2 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

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

[root@db2 home]# mkdir  /var/lib/mysql-cluster/

[root@db2 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

[root@db2 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

[root@db2 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       
[root@db2 bin]#

 

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

cluster node1:

[root@node1 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

[root@node1 bin]# ../support-files/mysql.server start
Starting MySQL SUCCESS! 
[root@node1 bin]#

 

cluster node2:

[root@node2 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

[root@node2 bin]# ../support-files/mysql.server start
Starting MySQL SUCCESS! 
[root@node2 bin]#

 

管理节点查看信息:

[root@db2 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>










本文转自 z597011036 51CTO博客,原文链接:http://blog.51cto.com/tongcheng/1561980,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
235
分享
相关文章
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
496 3
Mysql高可用架构方案
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
77 9
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
85 3
云数据库:从零到一,构建高可用MySQL集群
在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。
Aurora MySQL负载突增应对策略与优化方案
通过以上策略,企业可以有效应对 Aurora MySQL 的负载突增,确保数据库在高负载情况下依然保持高性能和稳定性。这些优化方案涵盖了从架构设计到具体配置和监控的各个方面,能够全面提升数据库的响应速度和处理能力。在实际应用中,应根据具体的业务需求和负载特征,灵活调整和应用这些优化策略。
78 22
MySQL 分库分表方案
本文总结了数据库分库分表的相关概念和实践,针对单张表数据量过大及增长迅速的问题,介绍了垂直和水平切分的方式及其适用场景。文章分析了分库分表后可能面临的事务支持、多库结果集合并、跨库join等问题,并列举了几种常见的开源分库分表中间件。最后强调了不建议水平分库分表的原因,帮助读者在规划时规避潜在问题。
455 20
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
98 0
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
MySQL的存储引擎是其核心组件之一,负责数据的存储、索引和检索。不同的存储引擎具有不同的功能和特性,可以根据业务需求 选择合适的引擎。本文详细介绍了MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案。
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等