我们来自五湖四海,不为别的,只因有共同的爱好,为中国互联网发展出一分力!

mysql负载均衡集群架设

2011年12月16日10:15 阅读: 23446 次

标签: MySQL, 负载均衡集群架设

1? ?? ?? ?环境描述

Mysql manager 节点:192.168.0.1

MysqlServer节点:192.168.0.100

Mysql 节点:192.168.0.160

Mysql 节点:192.168.0.161


说明:至少需要四台服务器才可以做mysql的集群。建议5台,再增加一台MysqlServer。
2? ?? ?? ?安装mysql二进制包
2.1? ?安装之前的准备工作

下载mysql-max-4.1.13-pc-linux-gnu-i686.tar.gz包

(注意:可以做集群的mysql都是mysql-max的,下载地点www.mysql.org

#groupadd mysql

#useradd -g mysql mysql




#cd /usr/local

#tar xfz mysql-max-4.1.13-pc-linux-gnu-i686.tar.gz

#ln -s /usr/local/mysql-max-4.1.13-pc-linux-gnu-i686??/opt/mysql4.1.13
2.2? ?分别在manager,server,node节点上安装二进制的mysql包

#cd mysql4.1.13

#scripts/mysql_install_db --user=mysql (必须带目录执行,否则出错)

#chown -R root /opt/mysql4.1.13

#chgrp -R mysql /opt/mysql4.1.13

#chown -R mysql.mysql??/opt/mysql4.1.13/data

#cp support-files/mysql.server??/etc/rc.d/init.d/? ?配置mysql启动设置
#chmod +x??/etc/rc.d/init.d/mysql.server?
#chkconfig --add mysql.server?
3? ?? ?? ?配置server,note节点

在192.168.0.160和192.168.0.161机器上

# cp support-files/my-medium.cnf data/my.cnf? ???将mysql的配置文件考到data下

Vi /usr/local/mysql-max-4.1.13-pc-linux-gnu-i686/data/my.cnf

[MYSQLD]

ndbcluster

ndb-connectstring=192.168.0.1

[MYSQL_CLUSTER]

ndb-connectstring=192.168.0.1
4? ?? ?? ?配置Management管理节点

在192.168.0.1机器上

#mkdir /var/lib/mysql-cluster

#cd /var/lib/mysql-cluster

#vi config.ini

[NDBD DEFAULT]? ?? ?# Options affecting ndbd processes on all data nodes:

NoOfReplicas=2? ?? ?# Number of replicas

DataMemory=80M? ?? ?# How much memory to allocate for data storage

IndexMemory=52M? ???# How much memory to allocate for index storage

? ?? ?? ?? ?? ?? ???# For DataMemory and IndexMemory, we have used the

? ?? ?? ?? ?? ?? ???# default values. Since the "world" database takes up

? ?? ?? ?? ?? ?? ???# only about 500KB, this should be more than enough for

? ?? ?? ?? ?? ?? ???# this example Cluster setup.




[TCP DEFAULT]? ?? ? # TCP/IP options:

portnumber=2202? ???# This the default; however, you can use any

? ?? ?? ?? ?? ?? ???# port that is free for all the hosts in cluster

? ?? ?? ?? ?? ?? ???# Note: It is recommended beginning with MySQL 5.0 that

? ?? ?? ?? ?? ?? ???# you do not specify the portnumber at all and simply allow

? ?? ?? ?? ?? ?? ???# the default value to be used instead

# Management process options(定义管理节点.)

[NDB_MGMD]

hostname=192.168.0.1? ?? ???# 管理节点Hostname or IP address of MGM node

datadir=/var/lib/mysql-cluster??# Directory for MGM node logfiles

# Options for data node "A"(定义群集数据节点.)

# (one [NDBD] section per data node)

[NDBD]

hostname=192.168.0.160? ?? ?# 节点Hostname or IP address

datadir=/usr/local/mysql/data? ?# Directory for this data node's datafiles

# Options for data node "B"(定义群集数据节点.)

[NDBD]

hostname=192.168.0.161? ?? ?# 节点Hostname or IP address

datadir=/usr/local/mysql/data? ?# Directory for this data node's datafiles

# SQL node options(定义Sql server节点.)

[MYSQLD]

hostname=192.168.0.100? ?? ?# SQL节点Hostname or IP address

#datadir=/usr/local/mysql/data??# Directory for SQL node's datafiles

? ?? ?? ?? ?? ?? ???# (additional mysqld connections can be

? ?? ?? ?? ?? ?? ???# specified for this node for various

? ?? ?? ?? ?? ?? ???# purposes such as running ndb_restore)

[NDB_MGMD]:后面不能有任何注释信息,否则提示:

Error line 17: [TCP] Unknown parameter: [NDB_MGMD]? ?# Management process options

Error line 17: Could not parse name-value pair in config file.

[SHM]: Defines shared-memory connections between nodes. 在MySQL 4.1.9之前,这个功能必须使用--with-ndb-shm option编译进去, 从MySQL 4.1.9-max版本开始, it is enabled by default?
5? ?? ?? ?启动mysql集群
5.1? ?? ?初始化启动mysql集群服务

1)启动MysqlManagement管理节点(192.168.0.1)

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

2)启动Data??Node节点(192.168.0.160,192.168.0.161)

#ndbd --initial

(注意:这个参数只能在第一次启动DataNode节点时使用,因为―initial参数会删除一些ndbd 实例先前创建的所有文件)

3)启动MysqlServer节点(192.168.0.100)

# ./mysql.server start
5.2? ?? ?重启mysql集群服务

1)启动MysqlManagement管理节点(192.168.0.1)

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

2)启动Data??Node节点(192.168.0.160,192.168.0.161)

#ndbd

3)启动MysqlServer节点(192.168.0.100)

# ./mysql.server start

(注意:Management管理节点和DataNote节点都不开启mysql服务,只有MysqlServer节点开启。The default port for Cluster management nodes is 1186; the default port for data nodes is 2202.)
6? ?? ?? ?测试集群的效果
6.1? ?? ?在管理机上查看各节点运行状况

[root@Proxy bin]# ./ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm> show

Connected to Management Server at: localhost:1186

Cluster Configuration

---------------------

[ndbd(NDB)]? ???2 node(s)

id=2? ? @192.168.0.160??(Version: 4.1.13, Nodegroup: 0, Master)

id=3? ? @192.168.0.161??(Version: 4.1.12, Nodegroup: 0)




[ndb_mgmd(MGM)] 1 node(s)

id=1? ? @192.168.0.1??(Version: 4.1.13)




[mysqld(API)]? ?1 node(s)

id=4? ? @192.168.0.100??(Version: 4.1.12)
6.2? ?? ?模拟写入一个数据库表,各MysqlServer节点是否能够同步

1)??在一个MysqlServer节点上创建数据库world和表,然后看看另一个MysqlServer节点是否也同样可以看到。

答:数据都相同

2)??拔掉一个DataNote节点网线,看看两台MysqlServer节点是否还能正常工作。

答:可以

3)??拔掉两台DataNote节点网线,查看一下MysqlServer节点是否还能正常工作。

答:所有MysqlServer都不能正常工作
分享到: 更多
蓝客门户