MySQL Cluster 是MySQL数据库主要适合于分布式计算环境的高实用、高冗余这两种版本。MySQL Cluster 采用了NDB Cluster 存储引擎,允许在一个 Cluster 中对MySQL服务器进行与运行。 在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了
MySQL Cluster 是MySQL数据库主要适合于分布式计算环境的高实用、高冗余这两种版本。MySQL Cluster 采用了NDB Cluster 存储引擎,允许在一个 Cluster 中对MySQL服务器进行与运行。
在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了该存储引擎。(注意,要想获得MySQL Cluster 的功能,必须安装 mysql-server 和 mysql-max RPM)。
目前能够运行MySQL Cluster 的操作系统有Linux、Mac OS X和Solaris(一些用户通报成功地在FreeBSD上运行了MySQL Cluster ,但MySQL AB公司尚未正式支持该特性)。
MySQL Cluster(MySQL 集群) 搭建中如何创建数据库表
与没有使用 Cluster的MySQL相比,在MySQL Cluster内操作数据的方式没有太大的区别。执行这类操作时应记住两点:
表必须用ENGINE=NDB或ENGINE=NDBCLUSTER选项创建,或用ALTER TABLE选项更改,以使用NDB Cluster存储引擎在 Cluster内复制它们。如果使用mysqldump的输出从已有数据库导入表,可在文本编辑器中打开SQL脚本,并将该选项添加到任何表创建语句,或用这类选项之一替换任何已有的ENGINE(或TYPE)选项。
另外还请记住,每个NDB表必须有一个主键。如果在创建表时用户未定义主键,NDB Cluster存储引擎将自动生成隐含的主键。(注释:该隐含 键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见)。
下面是一个例子:
在db2上,创建数据表,插入数据:
<ol class="dp-xml"> <li class="alt"><span><span>[db2~]root# mysql -uroot test </span></span></li> <li> <span>[db2~]mysql</span><span class="tag">></span><span> create table city( </span> </li> <li class="alt"> <span>[db2~]mysql</span><span class="tag">></span><span> id mediumint unsigned not null auto_increment primary key, </span> </li> <li> <span>[db2~]mysql</span><span class="tag">></span><span> name varchar(20) not null default '' </span> </li> <li class="alt"> <span>[db2~]mysql</span><span class="tag">></span><span> ) </span><span class="attribute">engine</span><span> = </span><span class="attribute-value">ndbcluster</span><span> default charset utf8; </span> </li> <li> <span>[db2~]mysql</span><span class="tag">></span><span> insert into city values(1, 'city1'); </span> </li> <li class="alt"> <span>[db2~]mysql</span><span class="tag">></span><span> insert into city values(2, 'city2'); </span> </li> </ol>
在db3上,查询数据:
<ol class="dp-xml"> <li class="alt"><span><span>[db3~]root# mysql -uroot test </span></span></li> <li> <span>[db2~]mysql</span><span class="tag">></span><span> select * from city; </span> </li> <li class="alt"><span>+-----------+ </span></li> <li><span>|id | name | </span></li> <li class="alt"><span>+-----------+ </span></li> <li><span>|1 | city1 | </span></li> <li class="alt"><span>+-----------+ </span></li> <li><span>|2 | city2 | </span></li> <li class="alt"><span>+-----------+ </span></li> </ol>
安全关闭
要想关闭 Cluster,可在MGM节点所在的机器上,在Shell中简单地输入下述命令:
[db1~]root# /usr/local/mysql/ndb_mgm -e shutdown运行以下命令关闭SQL节点的mysqld服务:
<ol class="dp-xml"><li class="alt"><span><span>[db2~]root# /usr/local/mysql/bin/mysqladmin -uroot shutdown </span></span></li></ol>
其他
关于MySQL Cluster更多详细的资料以及备份等请参见MySQL手册的“MySQL Cluster(MySQL 集群)”章节。