配置高可用性的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。

标签:
0
投稿

猜你喜欢

  • SQL Server 2008升级报表服务器数据库

    2008-11-18 12:36:00
  • ie6 img onload

    2009-04-08 17:23:00
  • 关于Youtube URL的十个技巧

    2009-04-21 13:19:00
  • js鼠标动画特效

    2007-09-26 18:31:00
  • 2008农历新年各大网站Logo秀

    2008-02-11 16:33:00
  • 设计模式-自动完成

    2010-11-30 21:44:00
  • 一个功能更强大的字符串格式化函数

    2008-04-30 17:44:00
  • 如何在页面错误时向数据库中添加记录?

    2010-06-26 12:26:00
  • 再谈 Web 字体的现状与未来[译]

    2009-11-24 13:55:00
  • 最新LOGO设计流行趋势——叶子

    2007-10-02 18:26:00
  • MySQL中InnoDB和MyISAM类型的差别

    2008-11-05 13:32:00
  • Request.ServerVariables("HTTP_REFERER")的用法

    2008-06-19 13:33:00
  • 搜索结果页(SERP)之:不要被F型浏览忽悠了

    2009-09-07 12:34:00
  • CSS文件的编码要和页面的编码相一致

    2010-06-06 13:59:00
  • 对于任意的XML的遍历

    2008-09-05 17:11:00
  • Xml_javascript分页

    2008-09-04 14:43:00
  • xmlHTTP技术资料

    2008-01-05 13:39:00
  • HTML中事件触发列表与解说

    2007-10-22 12:50:00
  • 让验证码友好一点

    2007-10-20 13:45:00
  • IE8网页显示不正常 用”兼容性视图”搞定

    2009-03-28 11:13:00
  • asp之家 网络编程 m.aspxhome.com