MySQL集群之MySQL Cluster(3)

8. 测试 8.1. 常规测试

为了让数据表能够在cluster中正常复制,创建数据表时必须指定为ndbcluster引擎(engine=ndb或engine=ndbcluster)。

登录到10.24.64的MySQL,然后创建一个新数据库songzi,并创建一个ndbcluster引擎的数据表test(id int,name char(10)),并向表中插入一条数据(0,songzi)。10.24.6.4上的操作及结果如下图:

MySQL集群之MySQL Cluster

然后登录10.24.6.6的mysql,可查看到数据已同步,并且新建的表及数据也存在。10.24.6.6上的操作及结果如下图:

MySQL集群之MySQL Cluster

 

8.2. 模拟NDB节点Crash

终止10.24.6.4上的NDB进程,执行以下指令查看NDB进程情况

ps -ef | grep ndbd

kill 24077

ps -ef | grep ndbd

具体操作及结果见下图:

MySQL集群之MySQL Cluster

也可以在ndb_mgm管理节点客户端查看到10.24.0.101上的NDB节点已停掉

MySQL集群之MySQL Cluster

然后分别登录到10.24.6.4和10.24.6.6的mysql,可发现依然能够查询到数据。结果如下图

10.24.6.4

MySQL集群之MySQL Cluster

10.24.6.6

MySQL集群之MySQL Cluster

此结果说明测试成功,即当有一个NDB节点Crash后,整个MySQL环境仍可以正常服务。

8.3. 模拟SQL节点Crash

在上10.24.6.4上终止mysqld进程,可执行以下指令:

killall mysqld

也可以在ndb_mgm管理节点客户端查看到10.24.6.4上的SQL节点已停掉

MySQL集群之MySQL Cluster

登录到10.24.6.6上的mysql,可查看到数据依然存在

MySQL集群之MySQL Cluster

此结果说明测试成功,及当有一个SQL节点Crash后,整个MySQL-Cluster环境仍可以工作。

至此,整个MySQL-Cluster安装及配置实验已完成。实验结束后,可使用指令shell> ndb_mgm -e shutdown或者ndb_mgm>shutdown来关闭簇中的所有节点。

 

9. 遇到问题

MySQL集群之MySQL Cluster

10. 总结

Mysql cluster是一个统一的共享集群

多mysql同时共享

一个值多份存储,不是像redis那样根据一致性hash分布存储

高并发、高可用、高伸缩性

share nothing架构

通过增加数据节点扩展:通过32个数据节点实现每秒2亿条NoSQL查询,以及通过16个数据节点每秒查询近250万SQL语句

推荐使用lvs + keepalived + mysql cluster 实现集群mysql,MySQL Cluster是一个实时可扩展且符合ACID的事务型内存数据库

MySQL Cluster 的详细介绍请点这里
MySQL Cluster 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e99c95cb1016a7a7d68e5040c2368f8e.html