Mysql Cluster杂七杂八

Mysql

为了申请一些国内的服务,不得不将域名做了备案。博客迁移到阿里云后读取速度确实有改善,但因为数据库主库是放在OVH的法国服务器上,写入数据『比如评论』的时候速度却很慢。

因为前一阵将博客从Typecho平台迁移了,而且将管理后台和前台页面都用Python重新修改了一下,将一些旧Wordpress架构的小站点均放在同一个后台管理了。

为了能集中管理且照顾一些没有备案『也无法备案,因为北京备案域名后缀非常少』的站点,且为了稳定『VPS在线率和独服是没办法比啊』,没有将主库迁移到阿里云或者其他VPS上的计划。所以就花了几个晚上Google了大量的Mysql集群、负载均衡等的资料,记录一下Mysql Cluster集群相关的知识点做一下备忘。

先说一下几天测试的结果

  1. Mysql Cluster现有最新版本为7.2.12,其中包含了Mysql 5.5.30
  2. Mysql Cluster非常占内存,在一台服务器部署了1仲裁、2存储、2SQL这样一套环境,在仲裁、存储和SQL均只起一个实例的时候,一台512的VPS就已经开始占用SWAP了,这台VPS只安装了这一套环境,空载的时候仅仅占用8M内存。并且此时测试库中仅仅有不到1M的数据
  3. 我这种情况非常适合Mysql Cluster集群,但是内存受不了
  4. 需要将原有的表引擎修改为NDB才可以充分利用Mysql Cluster集群

如下图在512的VPS上的内存占用:

512VPS

从图中看到仲裁、存储、SQL均只起用了一个实例:

SQL

同一台机器部署Mysql Cluster整套环境教程

大致的操作是参考的一篇老文在同一台主机配置MySQL Cluster,原文可能版本比较旧,配置时候有一步需要初始化数据库的操作原文是

script/mysqlinstalldb --basedir=/u01/mysql-cluster --datadir=/u01/mysql-cluster/data/data1

不知道是原作者手误还是什么,现在的版本对应的mysqlinstalldb目录是在

scripts/mysqlinstalldb --basedir=/u01/mysql-cluster --datadir=/u01/mysql-cluster/data/data1

另外原文中mysql版本比较低,所以my.cnf文件不能直接使用,我测试的时候使用的my.cnf内容为

[mysqld]

user=root

ndbcluster

datadir=/u01/mysql-cluster/data/data1

basedir=/u01/mysql-cluster

port=9306

server-id=1

log-bin

ndb-connectstring=localhost

[mysql_cluster]

ndb-connectstring=localhost

当然log-bin那一行会有一个错误提示,但仅作为安装测试来说并不影响使用。

附录

  1. Mysql官方安装文档
  2. 老外的一篇在Debian配置Mysql Cluster的教程,因为这篇文章写的比较晚,还是很有参考意义的
  3. 老外的另一篇在同一台服务器配置整套Mysql Cluster的教程,这篇文章条理很清晰,但是文章中很多错误,仅供参考
  4. 国人的一篇7.2版本的配置教程,实测配置时候问题多多,同第3条,仅供参考吧。
  5. 国人的一篇将非索引数据存储硬盘节省内存的文章,因为即便没有索引的列会存储在硬盘上,但数据『貌似文本是12个字节之类的』还是会存储在内存一部分,一样占用内存。而且本人实测即便没有多少数据Mysql Cluster依然非常吃内存,屌丝VPS撑不起

已有4条评论 »

  1. 太长的文章了

  2. @Chairo 估计就是这个样式吧,哈哈

  3. @河马大叔 我用的枫树看是正常的,是不是某些样式没加载完啊

  4. 首页的文章附图都错位了,我用chrome看的。

添加新评论 »