来源:未知 时间:2014-08-10 12:18 作者:xbdadmin 阅读:次
[导读] 看网上很多人说mysql集群不是很稳定,因此这2天做了下mysql的集群,打算配置没有什么问题了,过2天做下相关的性能测试,我的配置环境如下: 操作系统: Centos5.2 软件包: mysql-cluster-gpl-7.0.8a-...
看网上很多人说mysql集群不是很稳定,因此这2天做了下mysql的集群,打算配置没有什么问题了,过2天做下相关的性能测试,我的配置环境如下:
操作系统:
Centos5.2
软件包:
mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
数据库管理节点: 192.168.100.151
数据库数据节点: 192.168.100.65,192.168.100.58 数据库sql节点: 192.168.100.65,192.168.100.58
我这里数据节点和sql节点用相同的2台机器承担.
1.管理节点的安装
#groupadd mysql
#useradd mysql -g mysql
#mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz /usr/local/
#cd /usr/local/
#tar zxvf mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
#rm -f mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
#mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23 mysql
#chown -R mysql:mysql mysql
#cd mysql
#scripts/mysql_install_db --user=mysql
2.管理节点的配置
#mkdir /var/lib/mysql-cluster
#cd /var/lib/mysql-cluster
#vi config.ini //这里需要手动添加如下内容
[ndbd default]
NoOfReplicas=2 DataMemory=80M IndexMemory=18M //这里有很多参数,大家可以自己找下相关资料
[ndb_mgmd]
Id=1 Hostname=10.10.1.151 //管理节点IP datadir=/usr/local/mysql/logs
[ndbd]
Id=2 Hostname=10.10.1.65 //数据节点IP datadir=/usr/local/mysql/data/ //数据节点的数据目录,这里要与数据节点的配置文件my.cnf
的数据指定相同
[ndbd]
Id=3 Hostname=10.10.1.58 //数据节点IP datadir=/usr/local/mysql/data/
[MYSQLD]
[MYSQLD]
3.安装和配置数据节点
这里2台机器数据节点安装是相同的.
#groupadd mysql
#useradd mysql -g mysql
#mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz /usr/local/
#cd /usr/local/
#tar zxvf mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
#rm -f mysql-cluster-gpl-7.0.8a-linux-i686-glibc23.tar.gz
#mv mysql-cluster-gpl-7.0.8a-linux-i686-glibc23 mysql
#chown -R mysql:mysql mysql
#cd mysql
#scripts/mysql_install_db --user=mysql
#cp support-files/my-medium.cnf /etc/my.cnf
#cp support-files/mysql.server /etc/init.d/mysqld
#vi /etc/my.cnf //这里需要手动添加如下的内容
datadir=/usr/local/mysql/data/ //这里要与管理节点的config.ini相同
ndbcluster ndb-connectstring=10.10.1.151 [ndbd] connect-string=10.10.1.151 [mysql_cluster] ndb-connectstring=10.10.1.151 [ndb_mgm] connect-string=192.168.1.151 [ndb_mgmd] config-file=/var/lib/mysql-cluster/config.ini //这里要指定管理节点配置文件路径
4.启动相关服务
在管理节点启动相关服务:
#/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
#netstat -lntpu
tcp 0 0 0.0.0.0:1186 0.0.0.0:*
LISTEN 22907/ndb_mgmd
看到1186端口开放了说明启动是正常的.
在数据节点启动相关服务:
#/usr/local/mysql/bin/ndbd --initial
#netstat -lntpu
tcp 0 0 10.10.1.65:32975 0.0.0.0:* LISTEN 1901/ndbd tcp 0 0 10.10.1.65:32976 0.0.0.0:* LISTEN 1901/ndbd tcp 0 0 10.10.1.65:32977 0.0.0.0:* LISTEN 1901/ndbd
#service mysqld start
#netstat -lntpu
tcp 0 0 :::3306 :::* LISTEN 2258/mysqld
可以看到相关的ndbd服务以及mysql已经启动ok了.
5.功能测试
到管理节点查看下相关服务状态
# ndb_mgm
ndb_mgm> show Connected to Management Server at: localhost:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 @10.10.1.65 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master) id=3 @10.10.1.58 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.10.1.151 (mysql-5.1.37 ndb-7.0.8)
[mysqld(API)] 2 node(s)
id=4 @10.10.1.65 (mysql-5.1.37 ndb-7.0.8) id=5 @10.10.1.58 (mysql-5.1.37 ndb-7.0.8)
可以看到这里的数据节点、管理节点、sql节点都是正常的.
现在我们在其中一个数据节点上进行相关数据库的创建,然后到另外一个数据节点上看看数据是否同步
# /usr/local/mysql/bin/mysql -u root -p
mysql> show databases;
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | ndb_2_fs | | test | +--------------------+ mysql> create database aa; mysql> use aa mysql> CREATE TABLE ctest2 (i INT) ENGINE=NDB; //这里必须指定数据库表的引擎为NDB,否则同
步失败
mysql> INSERT INTO ctest2 () VALUES (1); mysql> SELECT * FROM ctest2; +------+ | i | +------+ | 1 | +------+
现在到另外一个数据节点查看下aa数据库是否同步过来了.
#/usr/local/mysql/bin/mysql -u root -p
mysql> show databases;
+--------------------+ | Database | +--------------------+ | information_schema | | aa | | bb | | mysql | | ndb_3_fs | | test | +--------------------+ mysql> use aa mysql> select * from ctest2; +------+ | i | +------+ | 1 | +------+
从上面可以看到数据已经同步了,mysql集群环境已经搭建完成.
6.破坏性测试
大家在上面可以看到10.10.1.65作为主的数据节点,我现在把10.10.1.65这台机器关闭,看下有什么结果
ndb_mgm> show
Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 (not connected, accepting connect from 10.10.1.65) id=3 @10.10.1.58 (mysql-5.1.37 ndb-7.0.8, Nodegroup: 0, Master)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.10.1.151 (mysql-5.1.37 ndb-7.0.8)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from any host) id=5 @10.10.1.58 (mysql-5.1.37 ndb-7.0.8)
从上面可以发现现在10.10.1.65这台机器的数据节点和sql节点已经连接不上了,10.10.1.58成为了主数
据节点,我们现在在10.10.1.58数据节点上创建一个表,然后恢复10.10.1.65的数据节点,看下它是否
把数据同步过来了.
先在10.10.1.58数据节点做如下操作:
mysql> create table ctest3(id int(11)) engine=NDB;
mysql> show tables; +--------------+ | Tables_in_aa | +--------------+ | ctest2 | | ctest3 | +--------------+ mysql> insert into ctest3 values(1); mysql> select * from ctest3; +------+ | id | +------+ | 1 | +------+
然后我们恢复10.10.1.65数据节点,查看下ctest3数据是否同步过来了.
mysql> show databases;
+--------------------+ | Database | +--------------------+ | information_schema | | aa | | bb | | mysql | | ndb_2_fs | | test | +--------------------+ mysql> use aa mysql> show tables; +--------------+ | Tables_in_aa | +--------------+ | ctest | | ctest2 | | ctest3 | +--------------+ mysql> select * from ctest3; +------+ | id | +------+ | 1 | +------+
可以看到10.10.1.65数据节点已经把10.10.1.58数据节点的数据同步过来了,说明mysql集群是没有问题的了.随后做下mysql性能相关的测试.
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com