mysql设置负载均衡_如何设置负载平衡的MySQL集群

如何设置负载均衡的MySQL集群

版本1.0

作者:Falko Timme

本教程将介绍如何配置具有三个节点的MySQL 5集群:两个存储节点和一个管理节点。 此群集由高可用性负载平衡器负载平衡,实际上有两个节点使用Ultra Monkey包,它提供心跳 (用于检查其他节点是否仍然存在)和ldirectord (将请求分解为节点的MySQL集群)。

在本文中,我对所有节点使用Debian Sarge。 因此,其他分布的设置可能会有所不同。 我在这个设置中使用的MySQL版本是5.0.19。 如果你不想使用MySQL 5,你也可以使用MySQL 4.1,尽管我还没有测试它。

这是一个实践指南; 它不包括理论背景。 他们在网络上的许多其他文档中被处理。

本文档不附带任何形式的保证! 我想说,这不是设立这样一个制度的唯一办法。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!

1我的服务器

我使用以下Debian服务器都在同一个网络(本例中为192.168.0.x):sql1.example.com:192.168.0.101 MySQL群集节点1

sql2.example.com:192.168.0.102 MySQL集群节点2

loadb1.example.com:192.168.0.103负载均衡器1 / MySQL集群管理服务器

loadb2.example.com:192.168.0.104负载平衡器2

除此之外,我们需要一个虚拟IP地址: 192.168.0.105 。 它将由负载平衡器分配给MySQL集群,以便应用程序具有访问集群的单个IP地址。

虽然我们希望在我们的MySQL集群中有两个MySQL集群节点,但是我们仍然需要一个第三个节点,即MySQL集群管理服务器,主要是一个原因:如果两个MySQL集群节点中的一个失败,并且管理服务器没有运行,那么两个集群节点上的数据将变得不一致(“ 分裂脑 ”)。 我们还需要它来配置MySQL集群。

所以通常我们需要五台机器进行设置:

2 MySQL cluster nodes + 1 cluster management server + 2 Load Balancers = 5

由于MySQL集群管理服务器不使用许多资源,系统只会坐在那里什么都不做,我们可以将第一个负载平衡器放在同一台机器上,这样可以节省我们一台机器,所以我们最终得到了四台机器。

2设置MySQL群集管理服务器

首先,我们必须下载MySQL 5.0.19( 最大版本!),并安装集群管理服务器( ndb_mgmd )和集群管理客户机( ndb_mgm - 可以用来监视集群中发生的情况)。 在loadb1.example.com ( 192.168.0.103 )上执行以下步骤:

loadb1.example.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.example.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地址。

然后我们启动集群管理服务器:

loadb1.example.com:

ndb_mgmd -f /var/lib/mysql-cluster/config.ini

在系统引导时自动启动管理服务器是有意义的,因此我们创建了一个非常简单的初始化脚本和相应的启动链接:

loadb1.example.com:

echo 'ndb_mgmd -f /var/lib/mysql-cluster/config.ini' > /etc/init.d/ndb_mgmd

chmod 755 /etc/init.d/ndb_mgmd

update-rc.d ndb_mgmd defaults

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值