`
fan2012
  • 浏览: 68522 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

MySQL CLUSTER 集群方案

阅读更多

(1.双机实现高可用)
一、介绍
这篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySql集群依然能够继续运行。加下后续的(keepalived+lvs+mysql cluster文档),可以实现Mysql双机的高可用及负载均衡
安装环境及软件包:
vmware workstation 5.5.3
mysql-5.2.3-falcon-alpha.tar.gz
gentoo 2006.1
Server1: 192.168.1.111
Server2: 192.168.1.110
二、在Server1和Server2上安装MySQL
以下步骤需要在Server1和Server2上各做一次
# mv mysql-5.2.3-falcon-alpha.tar.gz /tmp/package
# cd /tmp/package
# groupadd mysql
# useradd -g mysql mysql
# tar -zxvf mysql-5.2.3-falcon-alpha.tar.gz
# rm -f mysql-5.2.3-falcon-alpha.tar.gz
# mv mysql-5.2.3-falcon-alpha mysql
# cd mysql
# ./configure –prefix=/usr –with-extra-charsets=complex –with-plugin-ndbcluster –with-plugin-partition –with-plugin-innobase
# make && make install
#ln -s /usr/libexec/ndbd /usr/bin
#ln -s /usr/libexec/ndb_mgmd /usr/bin
#ln -s /usr/libexec/ndb_cpcd /usr/bin
#ln -s /usr/libexec/mysqld /usr/bin
#ln -s /usr/libexec/mysqlmanager /usr/bin
#mysql_install_db –user=mysql
三、安装并配置节点
以下步骤需要在Server1和Server2上各做一次
1.配置管理节点配置文件
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# vi config.ini
config.ini中添加如下内容:
[ndbd default]
NoOfReplicas= 2
MaxNoOfConcurrentOperations= 10000
DataMemory= 80M
IndexMemory= 24M
TimeBetweenWatchDogCheck= 30000
DataDir= /var/lib/mysql-cluster
MaxNoOfOrderedIndexes= 512
[ndb_mgmd default]
DataDir= /var/lib/mysql-cluster
[ndb_mgmd]
Id=1
HostName= 192.168.1.111
[ndb_mgmd]
Id=2
HostName= 192.168.1.110
[ndbd]
Id= 3
HostName= 192.168.1.111
[ndbd]
Id= 4
HostName= 192.168.1.110
[mysqld]
[mysqld]
[tcp default]
PortNumber= 63132
2.配置通用my.cnf文件,mysqld及ndbd,ndb_mgmd均使用此文件.
# vi /etc/my.cnf
在my.cnf中添加如下内容:
[mysqld]
default-storage-engine=ndbcluster 避免在sql语句中还要加入ENGINE=NDBCLUSTER。
ndbcluster
ndb-connectstring=192.168.1.111,192.168.1.110
[ndbd]
connect-string=192.168.1.111,192.168.1.110
[ndb_mgm]
connect-string=192.168.1.111,192.168.1.110
[ndb_mgmd]
config-file=/var/lib/mysql-cluster/config.ini
[mysql_cluster]
ndb-connectstring= 192.168.1.111,192.168.1.110
保存退出后,启动管理节点Server1为:
# ndb_mgmd –ndb_nodeid=1
启动管理节点Server2为:
# ndb_mgmd –ndb_nodeid=2
注:在启动时有一个警告提示
Cluster configuration warning:
arbitrator with id 1 and db node with id 3 on same host 192.168.1.111
arbitrator with id 2 and db node with id 4 on same host 192.168.1.110
Running arbitrator on the same host as a database node may
cause complete cluster shutdown in case of host failure.
说节点1和3,2和4的arbitrator一样,可能引起整个集群失败。(可以不用放在心上)
四、初始化集群
在Server1中
# ndbd –nodeid=3 –initial
在Server2中
# ndbd –nodeid=4 –iniitial
注:只有在第一次启动ndbd时或者对config.ini进行改动后才需要使用–initial参数!
五、检查工作状态
在任意一台机子上启动管理终端:
# ndb_mgm
键入show命令查看当前工作状态:(下面是一个状态输出示例)
– NDB Cluster — Management Client –
ndb_mgm> show
Connected to Management Server at: 192.168.1.111:1186
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=3 @192.168.1.111 (Version: 5.2.3, Nodegroup: 0, Master)
id=4 @192.168.1.110 (Version: 5.2.3, Nodegroup: 0)
[ndb_mgmd(MGM)] 2 node(s)
id=1 @192.168.1.111 (Version: 5.2.3)
id=2 @192.168.1.110 (Version: 5.2.3)
[mysqld(API)] 2 node(s)
id=5 (not connected, accepting connect from any host)
id=6 (not connected, accepting connect from any host)
ndb_mgm>
如果上面没有问题,现在开始加入mysqld(API):
注意,这篇文档对于MySQL并没有设置root密码,推荐你自己设置Server1和Server2的MySQL root密码。
在Server1 中:
#mysqld_safe –ndb_nodeid=5 –user=mysql &
在Server2 中:
#mysqld_safe –ndb_nodeid=6 –user=mysql &
# ndb_mgm -e show
信息如下:
Connected to Management Server at: 192.168.1.111:1186
Cluster Configuration
———————
[ndbd(NDB)] 2 node(s)
id=3 @192.168.1.111 (Version: 5.2.3, Nodegroup: 0, Master)
id=4 @192.168.1.110 (Version: 5.2.3, Nodegroup: 0)
[ndb_mgmd(MGM)] 2 node(s)
id=1 @192.168.1.111 (Version: 5.2.3)
id=2 @192.168.1.110 (Version: 5.2.3)
[mysqld(API)] 4 node(s)
id=5 @192.168.1.111 (Version: 5.2.3)
id=6 @192.168.1.110 (Version: 5.2.3)
ok,可以测试了:
在Server1 中
# /usr/local/mysql/bin/mysql -u root -p
>create database aa;
> use aa;
> CREATE TABLE ctest (i INT) ;
> INSERT INTO ctest () VALUES (1);
> SELECT * FROM ctest;
应该可以看到1 row returned信息(返回数值1)。
如果上述正常,则换到Server2,观察效果。如果成功,则在Server2中执行INSERT再换回到Server1观察是否工作正常。
如果都没有问题,那么恭喜成功!
六、破坏性测试
将Server1或Server2的网线拔掉(即ifconfig eth0 down),观察另外一台集群服务器工作是否正常(可以使用SELECT查询测试)。测试完毕后,重新插入网线即可。
注意:在未对集群做任何读写操作前,此测试结果无效,因为,集群初始后只在/var/lib/mysql-cluster/下建了几个空目录,还没有正常协同工作,会出现整个所有存储(ndbd)节点关闭.
也可以这样测试:在Server1或Server2上:
# ps aux | grep ndbd
将会看到所有ndbd进程信息:
root 5578 0.0 0.3 6220 1964 ? S 03:14 0:00 ndbd
root 5579 0.0 20.4 492072 102828 ? R 03:14 0:04 ndbd
root 23532 0.0 0.1 3680 684 pts/1 S 07:59 0:00 grep ndbd
然后杀掉一个ndbd进程以达到破坏MySQL集群服务器的目的:
# kill -9 5578 5579
之后在另一台集群服务器上使用SELECT查询测试。并且在管理节点服务器的管理终端中执行show命令会看到被破坏的那台服务器的状态。
测试完成后,只需要重新启动被破坏服务器的ndbd进程即可:
# ndbd –ndb_nodeid=此存储节点的id
注意!前面说过了,此时是不用加–inital参数的!
至此,MySQL双机集群就配置完成了!

分享到:
评论

相关推荐

    MySQL Cluster集群构建实战

    ### MySQL Cluster集群构建实战 #### 一、MySQL Cluster 概述与部署 MySQL Cluster是一种高度可用、可扩展的分布式数据库解决方案,它通过无共享架构实现了内存中的数据存储,旨在提高系统的高可用性和高实时性。...

    MySQL Cluster集群搭建详解

    对于想要搭建MySQL Cluster集群的新手来说,了解安装过程中的环境配置、软件准备、安装步骤、配置文件编辑等环节是非常重要的。 首先,在搭建MySQL Cluster集群之前,我们需要准备适合的操作系统环境。这里推荐的...

    mysql_cluster集群

    MySQL Cluster 是一种高性能、高可用性且可扩展的集群解决方案,主要用于在无共享架构中部署内存中的数据库集群。这种架构允许使用低成本的硬件设备,同时不依赖特定的软件或硬件配置。 #### 二、MySQL Cluster 的...

    MySQL Cluster(MySQL 集群)

    MySQL Cluster 允许在单个集群中运行多个 MySQL 服务器,从而提供了一个强大的解决方案来应对高可用性和高性能的需求。 - **测试环境**:本文档基于 CentOS 4.6 系统进行了测试。 - **数据库版本**:使用的 MySQL ...

    搭建mysql-cluster集群.docx

    搭建MySQL Cluster集群 MySQL Cluster是适用于分布式计算环境的高可用、高冗余版本的MySQL,其技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应...

    实战体验几种MysqlCluster 方案.docx

    MySQL 集群方案详解 MySQL Cluster 是 MySQL 官方集群部署方案,它的历史较久。支持通过自动分片支持读写扩展,通过实时备份冗余数据,是可用性较高的方案,声称可做到 99.999% 的可用性。 MySQL Cluster 的架构及...

    mysql cluster集群安装以及故障处理

    MySQL Cluster 是 MySQL 适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。 MySQL Cluster 是一种技术,该...2、mysql cluster 集群故障处理手册

    galera cluster for mysql集群部署方案

    ### Galera Cluster for MySQL 集群部署方案详解 #### 一、Galera Cluster 概述 Galera Cluster 是一种用于 MySQL 的高可用性、高性能的解决方案,它通过多节点同步复制来提供高可用性和灾难恢复能力。Galera 的...

    Mysql Cluster(集群)的概念和架构

    综上所述,MySQL Cluster作为一种先进的数据库集群方案,通过其独特的架构设计,实现了高可用性、可扩展性和高性能,是企业级应用的理想选择。然而,在实际应用中,也需要充分考虑其局限性和潜在挑战,以便做出合理...

    MySQL_Cluster集群配置方案MySQL_Cluster集群配置方案

    MySQL Cluster是一种高可用性和高冗余的分布式数据库解决方案,尤其适用于需要处理大量并发写操作的场景。在证券公司的OA架构中,由于用户数量增加且有大量写需求,传统的master-master-slave模式不再适用,因此转向...

    CentOS8部署Mysql NDB Cluster8+Mysql Router8方案及应用.pdf

    MySQL NDB Cluster是一种高可用性和高性能的数据库解决方案,尤其适合需要数据复制和分布式事务处理的场景。在CentOS8上部署MySQL NDB Cluster 8及Mysql Router 8,需要经过一系列详细步骤,包括MySQL的卸载、统一...

    MySQL Cluster 8.0.27(mysql-cluster-8.0.27-winx64.zip)

    MySQL Cluster 8.0.27 是一个高度可用、可扩展的数据库解决方案,专为对数据可用性和性能有高要求的应用程序设计。该版本是针对Microsoft Windows操作系统(x86, 64-bit)的,提供了ZIP格式的归档文件,方便在...

    linux下MySQL-Cluster集群研究.doc linux下MySQL-Cluster集群研究.doc

    【MySQL-Cluster集群在Linux下的配置详解】 MySQL-Cluster是一种高可用、高性能的数据库解决方案,它提供了数据的分布式存储和处理能力,确保即使在部分硬件故障的情况下也能保持服务的连续性和数据的一致性。本篇...

    linux下MySQL-cluster集群搭建.

    MySQL Cluster 是一个高性能、高可用性且易于管理的解决方案,适用于需要实时事务处理的应用场景。它基于 NDB 存储引擎,该存储引擎是事务型的并且具备 ACID 属性,即原子性(Atomicity)、一致性(Consistency)、...

    使用Linux之安装MySQLCluster集群.docx

    在本文中,我们将深入探讨如何在Linux环境下安装MySQL Cluster,这是一个高可用性和高可扩展性的...通过正确配置和使用MySQL Cluster,我们可以构建一个高度可用的数据库解决方案,能够处理大规模并发访问和数据量。

    mysql集群方案对比

    在本篇文章中,我们将探讨8种不同的MySQL集群方案,分析它们的特点、优缺点以及适用场景。 1. **MySQL主从复制(Replication)** - 原理:主服务器处理写操作,然后将更改传播到一个或多个从服务器,实现数据的...

    利用MySQL Cluster 7.0 + LVS 搭建高可用环境

    【MySQL Cluster 7.0】 MySQL Cluster 7.0 是一个分布式数据库系统,它提供了高可用性、可扩展性和...然而,实施这样的方案需要对LVS和MySQL Cluster有深入理解,并且需要定期进行监控和维护,以确保系统的稳定运行。

Global site tag (gtag.js) - Google Analytics