Mysql Cluster概述与部署(二)
ame=10.1.6.203
32
33
#设置SQL节点2
34
[mysqld]
35
NodeId=5
36
hostname=10.1.6.205
37
[mysqld] #运行任意ip连接
38
[mysqld]
4.启动mysql cluster
1)先启动管理节点服务器.2)启动NDB存储节点服务器.3)启动SQL节点服务器.
1)执行启动MGM节点进程
1
root@10.1.6.205:/usr/local/mysql/bin# /usr/local/mysql/bin/ndb_mgmd -f /opt/cluster/config.ini
2
MySQL Cluster Management Server mysql-5.5.22 ndb-7.2.6
必须用参数-f或--config-file告诉ndb_mgm配置文件config.ini文件所在的位置.
2)在2台存储节点服务器上,如果是第一次启动NDB进程的话,必须先执行以下命令:
1
root@10.1.6.205:/usr/local/mysql/bin# /usr/local/mysql/bin/ndbd --initial
2
2013-08-28 23:40:36 [ndbd] INFO -- Angel connected to '10.1.6.205:1186'
3
2013-08-28 23:40:36 [ndbd] INFO -- Angel allocated nodeid: 2
注意:仅在首次启动NDB时,或者在备份/恢复或配置文件发生变化且重启NDB时才使用-initial参数.因为该参数会使节点删除由早期NDB实例创建的,用于恢复的任何文件,包括用于恢复的日志文件.
如果不是第一次启动,用以下命令
1 root@10.1.6.205:/usr/local/mysql/bin# /usr/local/mysql/bin/ndbd 3)启动SQL节点服务器 1 root@10.1.6.203:/usr/local/mysql/bin# /usr/local/mysql/bin/mysqld_safe /etc/my.cnf & 5.查看各个节点情况 01 root@10.1.6.205:/usr/local/mysql# /usr/local/mysql/bin/ndb_mgm 02 -- NDB Cluster -- Management Client -- 03 ndb_mgm> show 04 Cluster Configuration 05 --------------------- 06 [ndbd(NDB)] 2 node(s) 07 id=2 @10.1.6.203 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master) 08 id=3 @10.1.6.205 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0) 09 10 [ndb_mgmd(MGM)] 1 node(s) 11 id=1 @10.1.6.205 (mysql-5.5.22 ndb-7.2.6) 12 13 [mysqld(API)] 4 node(s) 14 id=4 @10.1.6.203 (mysql-5.5.22 ndb-7.2.6) 15 id=5 @10.1.6.205 (mysql-5.5.22 ndb-7.2.6) 16 id=6 (not connected, accepting connect from any host) 17 id=7 (not connected, accepting connect from any host) 18 19 ndb_mgm>
6.测试
注意:与没有使用Cluster的Mysql相比,在mysql cluster内操作数据的方式没有太大的区别.操作时注意
1)表必须用engine=NDB或engine=NDBCLUSTER选项创建
2)每个NDB表必须有一个主键.如果在创建表时用户未定义主键,NDB Cluster存储引擎会自动生成隐含的主键.
该隐含键也将占用空间,就像任何其他的表索引一样.由于没有足够的内存来容纳这些自动创建的键,所以很容易出现问题.
在203 sql节点1上创建表
01
root@10.1.6.203:/usr/local/mysql/bin# /usr/local/mysql/bin/mysql -uroot -p
02
mysql> use test;
03
mysql> create table dave (num int(10)) engine=ndb;
04
mysql> show create table dave\G;
05
*************************** 1. row ***************************
06
Table: dave
07
Create Table: CREATE TABLE `dave` (
08
`num` int(10) DEFAULT NULL
09
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
10
1 row in set (0.00 sec)
11
12
mysql> insert into dave
13
-> values
14
-> (100);
15
Query OK, 1 row affected (0.01 sec)
16
mysql> select * from dave;
17
+------+
18
| num |
19
+------+
20
| 100 |
21
+------+
然后在205 sql节点2上查看该表
1
root@10.1.6.205:/usr/local/mysql# /usr/local/mysql/bin/mysql -uroot -p
2
mysql> use test
3
mysql> select * from dave;
4
+------+
5
| num |
6
+------+
7
| 100 |
8
+------+
测试OK
关注一下表
1
mysql> select * from ndbinfo.memoryusage;
2
+---------+--------------+--------+------------+----------+-------------+
3
| node_id | memory_type | used | used_pages | total | total_pages |
4
+---------+--------------+--------+------------+----------+-------------+
5
| 2 | Data memory | 851968 | 26 | 83886080 | 2560 |
6
| 2 | Index memory |