Chinaunix首页 | 论坛 | 博客
  • 博客访问: 46307
  • 博文数量: 37
  • 博客积分: 2421
  • 博客等级: 大尉
  • 技术积分: 340
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-09 16:04
文章分类

全部博文(37)

文章存档

2010年(37)

分类: Mysql/postgreSQL

2010-06-08 18:09:58

                          Mysql Cluster 的配置

1:环境

Mysql-5.1.34(编译安装)

Linux:CentOS4.7
管理节点(1个):192.168.76.131

SQL节点(2个):192.168.76.132

                             192.168.76.133

数据节点(2个):192.168.76.132      datadir=/db/mysql

192.168.76.133                   datadir=/db/mysql

 

2:初始化安装

Linux 安装选:开发工具包等

Mysql 安装

#groupadd mysql
#useradd -g mysql mysql
#tar zxvf mysql-5.1.34.tar.tar
#cd mysql-5.1.34
#./configure --prefix=/usr/local/mysql --localstatedir=/db/mysql --sysconfdir=/etc --without-debug --enable-assembler --enable-thread-safe-client --enable-profiling --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=utf8,gbk --with-pthread –with-plugins=ndbcluster --with-mysqld-user=mysql --without-embedded-server --with-unix-socket-path=/usr/local/mysql/sock/mysql.sock
#make && make install

#   cp support-files/my-huge.cnf /etc/my.cnf    //huge.cnf   高性能模板
#vi /etc/my.cnf  
添加如下值
datadir =   /db/mysql
skip-name-resolv
table-cache = 4096

#mkdir -p /db/mysql
#chown mysql.mysql /db/mysql -R
#./scripts/mysql_install_db --user=mysql
#cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
#chmod +x /etc/rc.d/init.d/mysqld
#chkconfig --level 235 mysqld on
#chown -R root.mysql /usr/local/mysql
//
设置环境变量
/etc/profile添加一行就 ,在运行mysql的时候就不用输入很长的路经了
export PATH=$PATH:/usr/local/mysql/bin

#service mysqld start
#mysqladmin -u root password YourPASSWD

3Mysql Cluster的配置

前提:mysql在编译安装的时候一定要加参数–with-plugins=ndbcluster

 

管理节点的配置

管理节点IP192.168.76.131

#mkdir /db/mysql-cluster

#cd /db/mysql-cluster

#touch config.ini

编辑配置文件config.ini  具体内容如下:

[NDBD DEFAULT]

NoOfReplicas=1     //每个数据节点的镜像数量

DataMemory=200M  //每个数据节点中给数据分配的内存,可以根据实际情况调整

IndexMemory=100M  //每个数据节点中给索引分配的内存,可以根据实际情况调整     

 

[TCP DEFAULT]

portnumber=2202     //数据节点的默认连接端口

 

[NDB_MGMD]   //管理节点

id=1

hostname=192.168.76.131   //管理节点的IP

datadir=/db/mysql-cluster  //管理节点的数据目录

 

[NDBD]    //数据节点

id=2

hostname=192.168.76.132

datadir=/db/mysql

[NDBD]

id=3

hostname=192.168.76.133

datadir=/db/mysql

 

[MYSQLD]  //SQL节点

hostname=192.168.76.132

[MYSQLD]

hostname=192.168.76.133

[MYSQLD]  //表示任意一个IP都可以进行访问

 

4SQL节点和数据节点的配置

SQL节点和数据节点的IP192.168.76.132   192.168.76.133

SQL节点和数据节点的配置非常简单,只需要在对Mysql的配置文件(my.cnf)中增加如下内容

[mysqld]

ndbcluster

ndb-connectstring = 192.168.76.131

以及新加

[mysql_cluster]

ndb-connectstring = 192.168.76.131

 

5:开始使用Cluster

Cluster的启动

管理节点的启动

#/usr/local/mysql/libexec/ndb_mgmd -f /db/mysql-cluster/config.ini

数据节点的启动

#/usr/local/mysql/libexec/ndbd --initial --ndb-connectstring=192.168.76.131:1186

然后在依次启动mysql 管理节点-SQL节点-数据节点

全部启动成功后,用ndb-mgm工具的show命令查看群集状态

[root@node1 mysql]# ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm> show

Connected to Management Server at: 192.168.76.131:1186

Cluster Configuration

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

[ndbd(NDB)]     2 node(s)

id=2    @192.168.76.132  (Version: 5.1.34, Nodegroup: 0, Master)

id=3    @192.168.76.133  (Version: 5.1.34, Nodegroup: 1)

 

[ndb_mgmd(MGM)] 1 node(s)

id=1    @192.168.76.131  (Version: 5.1.34)

 

[mysqld(API)]   3 node(s)

id=4    @192.168.76.132  (Version: 5.1.34)

id=5    @192.168.76.133  (Version: 5.1.34)

id=6 (not connected, accepting connect from any host)

 

ndb_mgm>

 

6Cluster的测试

启动后,下面测试一下Cluster的功能,如果要用Cluster,则表的存储引擎必须是NDB,其他类型的存储引擎的数据将不会保存到数据节点中,对于Cluster的一个重要功能就是防止单点故障

 

NDB存储引擎测试

在任意一个SQL节点(192.168.76.132)的test库中创建表test,设置存储引擎为NDB,并插入2条数据

Myqsl>create table test(id int) engine=ndb;

Mysql>insert into test values(1);

Mysql>insert into test values(2);

然后在另外一个SQL节点(192.168.76.133),查询test库中的test表,可以看到两边数据一致

接着在SQL节点(192.168.76.132)上将test表的引擎改为Myisam

Mysql>alter table test engine=myisam;

现在去SQL节点(192.168.76.133),查询test库中的test表,发现会提示报错,而且test表不存在

改回成ndb后,又恢复正常了

 

单点故障测试

阅读(378) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~