背景
TokuDB数据库调优,网上搜到几个调优参数,官网推荐将TokuDB的数据目录和MySQL的数据目录分开。所以本文记录一下TokuDB数据库配置修改的过程,就是这个简答的参数修改操作,捣鼓了两个下午,终于找到了问题根源,记录如下。
TokuDB相关文件
TokuDB相关的文件,默认存放路径为mysql的data目录/var/lib/mysql下,查看ll得到结果如下:
关注红框部分的几个文件,默认情况下是在MySQL的/var/lib/mysql/下。
TokuDB配置调优
官方推荐将TokuDB的文件和MySQL的data文件分开,所以需要配置toku目录相关的三个参数。根据官网说明,修正配置操作如下:
第一步,停止mysql:
service mysql stop;
第二步,创建TokuDB数据库相关的三个目录
mkdir -p /usr/tokudb/data
mkdri -p /usr/tokudb/log
mkdir -p /usr/tokudb/temp
chown -R mysql:mysql /usr/tokudb/
注意,最后一部的授权操作非常重要,如果没有授权,在重启mysql时会出现如下错误,导致mysql服务无法启动。
mysqld.service start request repeated too quickly, refusing to start.
Failed to start MySQL Server.
第三步,编辑配置文件/etc/my.cnf,添加三个目录参数
[mysqld]
tokudb_data_dir=/usr/tokudb/data
tokudb_log_dir=/usr/tokudb/log
tokudb_tmp_dir=/usr/tokudb/temp
character_set_server=utf8
tokudb_directio=ON
tokudb_commit_sync=OFF
tokudb_fsync_log_period=1000
第四步,移动TokuDB相关文件到相应的目录下,先进入/var/lib/mysql目录,然后逐一移动五个文件到对应的目录中:
第五步,重启mysql
service mysql restart;
第六步,查看TokuDB目录参数:
show variables like ‘%dir%’
结果如下:
启示录
现在来看这个过程,其实也是很简单的,主要就是将五个锁文件移动到目标目录下。但是最开始方向错误了,根据百度来的一篇文件,把tokudb.rollback文件也作为数据移动到data目录下了,导致设置一直无效,show engines也一直没有tokudb引擎。
最后详细看来看官网关于TokuDB数据库文件的说明,里面只有对那五个空锁文件的移动操作,于是将tokudb.rollback恢复到原来的目录下,终于成功修改了目录。虽然官网的全英文有点不太好看,但是不得不承认,它就是最好的资料。