转载请注明作者和出处 http://www.cnlinux.net 一、介绍 ======== 测试环境: Server1:ndbd 192.168.0.11 Server2:ndbd 192.168.0.12 Server3:mysqld --ndb-cluster 192.168.0.13 (ndbd_mgm ndbd_mgmd也在本机) 操作系统均为 RH ES3 kernel-2.4.21-9.EL glibc-2.3.2-95.6 所需软件包: mysql-max-5.0.22-linux-i686-icc-glibc23.tar.gz 下载地址:http://dev.mysql.com/downloads/mysql/5.0.html 下载时注意系统环境和软件包版本,MySQL是max版的。 首先,明确几个概念(参照下图): ndbd: 数据库节点。 mysqld --ndb-cluster: MySQL服务器节点,程序直接访问的是这台机器的IP。默认端口仍是3306。 ndbd_mgm ndbd_mgmd: 管理节点。管理/查看各库节点和服务器节点的状态。 二、在Server1、Server2、Server3上安装MySQL ================================= 1.安装: # mv mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz /usr/local/ # cd /usr/local/ # tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz # mv mysql-max-4.1.9-pc-linux-gnu-i686 mysql # groupadd mysql # useradd -g mysql mysql # cd mysql # scripts/mysql_install_db --user=mysql # chown -R mysql:mysql . 2.编辑配置文件: # cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf # vi /etc/my.cnf 在文件尾加入 # my.cnf # example additions to my.cnf for MySQL Cluster # (valid in MySQL 5.0) # enable ndbcluster storage engine, and provide connectstring for # management Server host (default port is 1186) [mysqld] ndbcluster ndb-connectstring=192.168.0.13 # provide connectstring for management Server host (default port: 1186) [ndbd] connect-string=192.168.0.13 # provide connectstring for management Server host (default port: 1186) [ndb_mgm] connect-string=192.168.0.13 # provide location of cluster configuration file [ndb_mgmd] config-file=/var/lib/mysql-cluster 保存&退出 3.在Server1、Server2上创建日志文件夹,默认 # mkdir /var/lib/mysql-cluster 4.在Server3上创建ndb_mgmd启动配置文件: # mkdir /var/lib/mysql-cluster # cd /var/lib/mysql-cluster # vi config.ini 内容如下: # file "config.ini" - 2 data nodes and 2 SQL nodes # This file is placed in the startup directory of ndb_mgmd (the # management server) # The first MySQL Server can be started from any host. The second # can be started only on the host mysqld_5.mysql.com [NDBD DEFAULT] NoOfReplicas= 2 DataDir= /var/lib/mysql-cluster [NDB_MGMD] Hostname= 192.168.0.13 DataDir= /var/lib/mysql-cluster [NDBD] HostName= 192.168.0.11 [NDBD] HostName= 192.168.0.12 [MYSQLD] [MYSQLD] [MYSQLD] 保存&退出 [MYSQLD] [MYSQLD] [MYSQLD] 表示允许有三台MySQL服务器从任何IP访问数据库结点。 各参数功能,请参考http://dev.mysql.com/doc/refman/ ... config-example.html 三、启动服务 ============ Server3 /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini Server1 /usr/local/mysql/bin/ndbd --initial #只在第一次启动ndbd时使用--initial参数 Server2 /usr/local/mysql/bin/ndbd --initial Server3 /usr/local/mysql/support-files/mysql.Server start 四、检查工作状态 ================ 回到管理节点服务器Server3上,并启动管理终端: # /usr/bin/ndb_mgm 键入show命令查看当前工作状态:(下面是一个状态输出示例) ndb_mgm> show Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 (not connected, accepting connect from 192.168.0.11) id=3 @192.168.0.12 (Version: 5.0.22, Nodegroup: 0, Master) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.0.13 (Version: 5.0.22) [mysqld(API)] 3 node(s) id=4 @192.168.0.13 (Version: 5.0.22) id=5 (not connected, accepting connect from any host) id=6 (not connected, accepting connect from any host) mysqld(API)即mysqld --ndb-cluster,MySQL服务器节点。当前只有Server3 MySQL启动。 如果上面没有问题,现在开始测试MySQL: 注意,这篇文档对于MySQL并没有设置root密码,推荐你自己设置Server1、Server2、Server3的MySQL root密码。 在Server3中: # /usr/local/mysql/bin/mysql > use test; > CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER; > INSERT INTO ctest () VALUES (1); > SELECT * FROM ctest; 应该可以看到1 row returned信息(返回数值1)。 如果上述正常,则换到Server1、Server2上重复上面的测试,观察效果,数据库应该是同步刷新的。但首先要启动这两台机器的MySQL服务 # /usr/local/mysql/support-files/mysql.Server start 如果都没有问题,那么恭喜成功! FAQ: 失败原因,可能是启动顺序不对。 查找所有ndb和sql相关进程,杀掉,重新按顺序来。 ps -aux |grep ndb ps -aux |grep sql kill -9 <PID> <PID> ...<PID> 五、破坏性测试 ============== 将Server1或Server2的网线拔掉,观察另外一台集群服务器工作是否正常(可以使用SELECT查询测试)。测试完毕后,重新插入网线即可。 如果你接触不到物理服务器,也就是说不能拔掉网线,那也可以这样测试: 在Server1或Server2上: ifconfig eth0 down #如果只有一块网卡,默认是eth0 之后在Server3上使用SELECT查询测试。并且在管理节点服务器的管理终端中执行show命令会看到被破坏的那台服务器的状态。 测试完成后,只需要重新启动被破坏服务器的ndbd进程即可: # ndbd 注意!前面说过了,此时是不用加--inital参数的! 至此,MySQL集群就配置完成了! 负载均衡功能可通过将Server3做热备实现,相关文章可在精华区搜索到,在些不再复述! 如想实现Apache+PHP+MySQL集群负载均衡,只需在Server3和热备上均配置Apache+PHP+MySQL环境即可! |
mysql 5.0 集群负载均衡—经过测试
最新推荐文章于 2024-04-12 18:57:44 发布