配置高可用性的MySQL服务器负载均衡群集
作者:Eric 发布时间:2009-01-04 12:43:00
这篇论坛文章(赛迪网技术社区)主要介绍了配置一个高可用性的MySQL服务器负载均衡群集的具体过程,详细内容请参考下文:
本文将告诉你如何配置一个三个节点的MySQL 5数据库服务器群集:两个存储节点和一个
管理节点。这个群集是由用提供“heartbeat心跳”(用来检查另外一个节点是否活动)和
“ldirectord”(将请求分发到MySQL群集的节点)的Ultra Monkey安装包的两个节点组成的
一个高可用性负载均衡器。
本文我们的每个节点使用Debian Sarge Linux系统。其它Linux发行版本的安装可能一点点
区别。MySQL的版本我们使用5.0.19。如果你不想使用MySQL 5,你也可以使用MySQL 4.1,尽
管我还没有测试过。
本文是一篇实践应用指导;它没有涉及太多的理论。关于群集的理论你可以在网上找到很多。
一 服务器
我使用下面的Debian服务器,它们都在同一个网段(本例如:192.168.0.x):
sql1.test.com: 192.168.0.101 MySQL 群集节点 1
sql2.test.com: 192.168.0.102 MySQL 群集节点 2
loadb1.test.com: 192.168.0.103 负载均衡 1 / MySQL 群集管理服务器
loadb2.test.com: 192.168.0.104 负载均衡 2
另外我们需要一个虚拟IP地址:192.168.0.105。它会安排给这个MySQL群集的负载均衡,以便于
应用程序通过统一单独的IP地址来访问群集。
尽管我们想在MySQL群集中使用两个节点,但是我们仍然需要第三个节点,MySQL群集管理服务器
,主要的一个原因是:如果其中一个MySQL群集节点坏了,而MySQL群集管理服务器没有运行,那
么两个群集节点上的数据将会不一致(“split brain”)。我们需要它来配置MySQL群集.
因此我们的安装一般需要五台机器:
2个MySQL群集节点 + 1个群集管理服务器 + 2个负载均衡 = 5
因为群集管理服务器没有使用多少资源,系统将会空着什么都不做,所以我们可以把我们的第一
个负载均衡和它一起放在同一台机器上,这样可以节约我们一台服务器,所以最好我们只需要四台
机器。
二 配置MySQL群集管理服务器
首先我们要下载MySQL 5.0.19,并安装群集管理服务器(ndb_mgmd)和群集管理客户端 (ndb_mgm - 它
可以用来监控群集的运行情况). 下面的步骤是在loadb1.test.com (192.168.0.103)上进行的:
loadb1.test.com:
mkdir /usr/src/mysql-mgm
cd /usr/src/mysql-mgm
wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-max-5.0.19-linux-i686-\
glibc23.tar.gz/from/http://www.mirrorservice.org/sites/ftp.mysql.com/
tar xvfz mysql-max-5.0.19-linux-i686-glibc23.tar.gz
cd mysql-max-5.0.19-linux-i686-glibc23
mv bin/ndb_mgm /usr/bin
mv bin/ndb_mgmd /usr/bin
chmod 755 /usr/bin/ndb_mg*
cd /usr/src
rm -rf /usr/src/mysql-mgm
下一步,我们必须创建群集的配置文件,/var/lib/mysql-cluster/config.ini:
loadb1.test.com:
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vi config.ini
———-
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Section for the cluster management node
[NDB_MGMD]
# IP address of the management node (this system)
HostName=192.168.0.103
# Section for the storage nodes
[NDBD]
# IP address of the first storage node
HostName=192.168.0.101
DataDir= /var/lib/mysql-cluster
[NDBD]
# IP address of the second storage node
HostName=192.168.0.102
DataDir=/var/lib/mysql-cluster
# one [MYSQLD] per storage node
[MYSQLD]
[MYSQLD]
———-
实际应用中请将文件中的IP地址换成你相应的IP。


猜你喜欢
- 1)doctest 使用doctest是一种类似于命令行尝试的方式,用法很简单,如下 def f(n): ""
- 同事在学mybatis时,遇到了一个问题就是,使用char类型字段作为查询条件时一直都查不出数据,其他类型的则可以。 使用的数据库
- mssql 的正式名字是 SQL Server MS公司出的。图形操作界面好一些,性能还可以。在在mssql和oracle上不能互换.支持O
- 为了保护系统或数据安全,我们需要最佳随机密码。这里使用unix系统定义的文件设备/dev/random,从中获取随机数生成器的种子。需求说明
- Go 语言中 encoding/json 包可以很方便的将结构体、数组、字典转换为 json 字符串。引用import "enco
- 一、需求来源工作中需要一种树形菜单组件,经过两天的构思最终通过作用域插槽实现: 此组件将每个节点(插槽名为 node)暴露出来。通过插槽的
- 本文讲解函数记忆与菲波那切数列的实现,分享给大家,具体如下定义函数记忆是指将上次的计算结果缓存起来,当下次调用时,如果遇到相同的参数,就直接
- 如何显示数据库里的图片?asp调用数据库中的图片并显示。怎样把数据库里的图片显示出来?我们以gif格式的图片为例,代码如下:showimag
- 本文介绍了python实现快速排序的示例(二分法思想),分享给大家,具体如下:实现思路将所需要的数字存入一个列表中1.首先,设置将最左侧的那
- 第一步:在handleTarget函数方法开始加入:var theTarget = e.target; if (theTarget != n
- 1. 系统盘清理说明win7 80G的系统盘,随着使用时间的增加,空间越来越小,只剩不到2G,随计划清理系统盘数据1. maven 下载的j
- 前提条件,percona 5.6版本,事务隔离级别为RRmysql> show create table test_autoinc_l
- 两列布局的定宽自适应已经详解了,三列浮动中有两列定宽一列自适应的也详解了,那么该说说三列浮动中两列自适应一列定宽的布局了。中间定宽,左右两侧
- 前言:大家好啊!又是我TUSTer_! python里有自带的库math,cmath,和函数pow来开根号。下边让我带你了解他们
- 需求:1.大量csv文件,以数字命名,如1.csv、2.cvs等;2.逐个打开,对csv文件中的某一列进行格式修改;3.将更改后的内容写入新
- 本文实例讲述了Go语言实现简单留言板的方法。分享给大家供大家参考。具体实现方法如下:package mainimport ( &n
- 1.cv2.getStructuringElement(shape,ksize,anchor=(-1,-1))该函数构造并返回可进一步传递给
- facebook的信息架构设计,是目前为止互联网上我见过的最合理的信息架构。每次培训,我基本都需要拿20分钟左右的时间来解析它,包括老的、新
- 说明1、如果数据集是高维度的,选择谱聚类是子空间的一种。2、如果数据量是中小型的,比如在100W条以内,K均值会是更好的选择;如果数据量超过
- 比如user_num表:例1:查询出现过2次的user往往初学者会错误地认为在where 语句里直接使用count()算法,很显然这个想法是