mysql 集群
博客已经搬家,请访问如下地址:http://www.czhphp.com
MySQL Cluster 是用于解决高可用和高可靠性的解决方案。 MySQL Cluster 具有故障恢复、节点修复、数据同步、非单点故障等优点。 MySQL Cluster是为提供99.999%以上的高可用性而设计的,采用分布式节点设计技术,不会因为单点故障而使整个Cluster瘫痪。 MySQL Cluster由3类节点组成:管理节点、数据节点、SQL节点。 1:数据节点 数据节点是整个系统中最主要的节点,它负责存储所有的数据以及数据的同步复制,以防单个或者更多的节点故障而使MySQL Cluster瘫痪。 2:管理节点 管理节点用于管理系统的配置信息,只在启动和重新配置MySQL Cluster的时候才起作用。一般情况下只需要1个管理节点,当然也可以运行几个管理节点。 3:SQL节点 SQL节点用于数据节点存取数据,提供统一的标准SQL接口,跟平常的MySQL Serve一样,让应用程序和开发人员不用关心系统内部究竟是如何运行的。 os:centos5/rhel5 mysql version:5.1.22 rc 准备: mysql-max-5.1.5-alpha-linux-i686-glibc23.tar 环境: 管理节点: IP:192.168.0.118 主机名:mgm 存偖节点1/sql节点1: 192.168.0.146 主机名: node1 存偖节点2/sql节点2: 192.168.0.221主机名: node2 三台主机的hosts 文件要一样 192.168.0.118 mgm 192.168.0.146 node1 192.168.0.221 node2 这里只有用一台管理节点 存偖节点和SQL节点分别在在两台电脑上,也就是存偖节点同时也当数据节点 ======================================================================== 安装:分别在三台电脑安装数据库
二:配置管理节点 MGM: 1,配置/etc/my.cnf文件 在后面添加如下内容
6.启动数据节点 第一次启动
非第一次启动: /usr/local/mysql/bin/ndbd 7.启动sql节点 service mysqld start start 8.调用ndb_mgm管理节点客户端,可对其进行测试
234管理节点:
|
10. 测试
严重注意:所有建表语句的TYPE=MyISAM必须替换为ENGINE=NDBCLUSTER,mysql文档说明如下:
对于将成为簇数据库组成部份的每个表,均需要为其定义执行上述操作。完成该任务的最简单方法是,简单地在world.sql文件上执行“查找-替换”,并用ENGINE=NDBCLUSTER替换所有的TYPE=MyISAM实例。
每个NDB表必须有一个主键。如果在创建表时用户未定义主键,NDB簇存储引擎将自动生成隐含的主键
10.1 建库同步测试
146节点
复制代码
复制代码
10.2建表插入数据测试
221节点
复制代码
146节点验证、建表和插入数据
复制代码
221节点验证
复制代码
10.3删除表测试
146节点
复制代码
221节点验证
复制代码
221节点验证
复制代码
重起
停止
管理节点可以控制所有数据节点的停止
/usr/local/mysql/bin/ndb_mgm -e shutdown
Connected to Management Server at: localhost:1186
2 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server to shutdown.
11.2启动
管理节点
/usr/local/mysql/bin/ndb_mgmd -f /etc/config.ini
数据节点
/usr/local/mysql/bin/ndbd
sql节点可以不重起
参考:http://dev.mysql.com/doc/refman/5.1/zh/ndbcluster.html
严重注意:所有建表语句的TYPE=MyISAM必须替换为ENGINE=NDBCLUSTER,mysql文档说明如下:
对于将成为簇数据库组成部份的每个表,均需要为其定义执行上述操作。完成该任务的最简单方法是,简单地在world.sql文件上执行“查找-替换”,并用ENGINE=NDBCLUSTER替换所有的TYPE=MyISAM实例。
每个NDB表必须有一个主键。如果在创建表时用户未定义主键,NDB簇存储引擎将自动生成隐含的主键
10.1 建库同步测试
146节点
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | mysql |
- | ndb_2_fs |
- | test |
- +--------------------+
- 4 rows in set (0.00 sec)
- mysql> create database clustertest;
- Query OK, 1 row affected (0.34 sec)
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | clustertest |
- | mysql |
- | ndb_2_fs |
- | test |
- +--------------------+
- 5 rows in set (0.00 sec)
- 221节点验证
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | clustertest |
- | mysql |
- | ndb_3_fs |
- | test |
- +--------------------+
- 5 rows in set (0.00 sec)
221节点
- mysql> use clustertest;
- Database changed
- mysql> CREATE TABLE test (i INT) ENGINE=NDBCLUSTER;
- Query OK, 0 rows affected (0.69 sec)
- mysql> INSERT INTO test () VALUES (233);
- Query OK, 1 row affected (0.02 sec)
- mysql> select * from test;
- +------+
- | i |
- +------+
- | 233 |
- +------+
- 1 row in set (0.00 sec)
- mysql> use clustertest;
- Database changed
- mysql> select * from test;
- +------+
- | i |
- +------+
- | 233 |
- +------+
- 1 row in set (0.03 sec)
- mysql> INSERT INTO test () VALUES (232);
- Query OK, 1 row affected (0.01 sec)
- mysql> select * from test;
- +------+
- | i |
- +------+
- | 233 |
- | 232 |
- +------+
- 2 rows in set (0.04 sec)
- mysql> CREATE TABLE City (
- -> ID int(11) NOT NULL auto_increment,
- -> Name char(35) NOT NULL default '',
- -> CountryCode char(3) NOT NULL default '',
- -> District char(20) NOT NULL default '',
- -> Population int(11) NOT NULL default '0',
- -> PRIMARY KEY (ID)
- -> ) ENGINE=NDBCLUSTER;
- Query OK, 0 rows affected (0.93 sec)
- mysql> INSERT INTO City VALUES (1,'Kabul','AFG','Kabol',1780000);
- Query OK, 1 row affected (0.02 sec)
- mysql> SELECT * FROM City;
- +----+-------+-------------+----------+------------+
- | ID | Name | CountryCode | District | Population |
- +----+-------+-------------+----------+------------+
- | 1 | Kabul | AFG | Kabol | 1780000 |
- +----+-------+-------------+----------+------------+
- 1 row in set (0.05 sec)
- mysql> select * from test;
- +------+
- | i |
- +------+
- | 232 |
- | 233 |
- +------+
- 2 rows in set (0.00 sec)
- mysql> SELECT * FROM City;
- +----+-------+-------------+----------+------------+
- | ID | Name | CountryCode | District | Population |
- +----+-------+-------------+----------+------------+
- | 1 | Kabul | AFG | Kabol | 1780000 |
- +----+-------+-------------+----------+------------+
- 1 row in set (0.02 sec)
146节点
- mysql> use cluster;
- Database changed
- mysql> show tables;
- +-------------------+
- | Tables_in_cluster |
- +-------------------+
- | huzi |
- | test |
- +-------------------+
- 2 rows in set (0.08 sec)
- mysql> drop table huzi;
- Query OK, 0 rows affected (0.79 sec)
- mysql> use cluster
- Database changed
- mysql> show tables;
- +-------------------+
- | Tables_in_cluster |
- +-------------------+
- | test |
- +-------------------+
- 1 row in set (0.01 sec)
- mysql>
- 10.4 删除数据库测试
- 146节点删除clustertest数据库
- mysql> drop database isa1;
- Query OK, 0 rows affected (0.01 sec)
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | cluster |
- | huzi |
- | isa |
- | mysql |
- | test |
- +--------------------+
- 6 rows in set (0.00 sec)
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | cluster |
- | huzi |
- | isa |
- | mysql |
- | test |
- +--------------------+
- 6 rows in set (0.00 sec)
- mysql>
停止
管理节点可以控制所有数据节点的停止
/usr/local/mysql/bin/ndb_mgm -e shutdown
Connected to Management Server at: localhost:1186
2 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server to shutdown.
11.2启动
管理节点
/usr/local/mysql/bin/ndb_mgmd -f /etc/config.ini
数据节点
/usr/local/mysql/bin/ndbd
sql节点可以不重起
参考:http://dev.mysql.com/doc/refman/5.1/zh/ndbcluster.html
长期招聘java,有找工作可以联系我,微信:caozhenhua1563