(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 集群) 测试环境: CentOS4.6 数据库版本: mysql-cluster-gpl-6.3.20
搭建mysql-cluster集群.docx
对 MySQL Cluster 集群数据库误操作的一些预防措施和误操作后进行数据恢复的三种方案:通过解析二进制日志生成逆向操作脚本进行恢复、通过全库备份及二进制日志进行恢复、通过延迟备库及二进制日志进行恢复,并给出...
linux下MySQL-Cluster集群研究.doc linux下MySQL-Cluster集群研究.doc linux下MySQL-Cluster集群研究.doc linux下MySQL-Cluster集群研究.doc linux下MySQL-Cluster集群研究.doc
MySQL Cluster 是 MySQL 适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。 MySQL Cluster 是一种技术,该...2、mysql cluster 集群故障处理手册
用于新手搭建学习,高手飘过。搭建过程中,注意各系统的环境不一致,可能会出现其他错误
Mysql Cluster(集群)的概念和架构
CentOS8部署Mysql NDB Cluster8+Mysql Router8方案及应用~~~~
使用Linux之安装MySQLCluster集群.docx
MySQL Cluster 是MySQL 官方集群部署方案,它的历史较久。支持通过自动分片支持读写扩展,通过实时备份冗余数据,是可用性较高的方案,声称可做到99.999%的可用性。
利用MySQL Cluster 7.0 + LVS 搭建高可用环境 周三, 2009/05/13 - 10:19 — yejr 目录: • 1、前言 • 2、安装 • 2.1 LVS 安装、配置 • 2.2 MySQL Cluster安装 • 3、测试 • 3.1 mysqlslap测试结果 •...
CentOS安装Mysql_Cluster集群---1管理节点2数据节点2SQL节点(已测试完成)
CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建文档,详细记录Mysql Cluster的操作步骤,使小白人员都可以通过文档进行搭建自己的mysql集群数据库。
mysql_cluster双机集群
主要介绍了MySQL Cluster集群的初级部署教程, MySql Cluster可以利用充分利用节点服务器的多进程做到高可用,需要的朋友可以参考下