MySQL配置TokuDB的简单总结

MySQL中的存储引擎是插件式的,当然主流默认的是InnoDB,而且InnoDB存储引擎会随着MySQL官方的搭理投入会越来越火。有了MGR,还有InnoDB Cluster,其实听起来很炫彩,本质上InnoDB Cluster就是三大件(MySQL Shell,MySQL Router,MGR)

一直以来留给其他数据库的空间相对来说很小,比如MyISAM会在MySQL 8.0版本退出历史舞台,memory存储引擎也会逐步被替代,还有些存储引擎,自身发展的过程中也被革命掉了,比如falcon,还有些存储引擎的使用场景实在是有限,处于一个比较尴尬的状态,比如blackhole,csv,archive等等。

TokuDB这个存储引擎还蛮有意思,被Percona收购之后,在Percona Server的安装目录中就默认存在了,所以有的同学说MySQL社区版和Percona有什么差别,喏,TukuDB就是一个。

此外还有很多的选择,比如MyRocks,也是Percona本身在大力推行的,TokuDB的更新自然会有延迟。

选择测试TokuDB是因为本身已有业务在使用,自然是想看看在5.7的版本中的表现如何。TokuDB尤其适合密集型插入场景,压缩比很高,在一些应用中,比如zabbix数据存储中还是很受欢迎的,或者是纯流水历史数据的记录。

1)要配置TokuDB,如果已经有了Percona的软件则不需要做额外的工作了,否则从插件式的安装角度来说,你也可以拷贝so的文件在其他版本中安装。

2)我们给TokuDB创建几个指定的目录,比如

创建目录 toku_data toku_log tmp 分别存储数据,日志和临时文件

3)赋予指定的权限,比如mysql组。

mkdir -p toku_data toku_log tmp

chown -R mysql.mysql toku_data toku_log tmp

4)修改参数文件my.cnf

添加额外的几个参数:

tokudb_cache_size = 700M

tokudb_commit_sync = 1

tokudb_support_xa = 1

tokudb_data_dir = /data/mycat_test/s1/toku_data

tokudb_directio = 0

tokudb_log_dir = /data/mycat_test/s1/toku_log

tokudb_pk_insert_mode = 2

tokudb_row_format = tokudb_zlib

tokudb_tmp_dir = /data/mycat_test/s1/tmp

tokudb_hide_default_row_format = 0

tokudb_lock_timeout_debug = 3

[mysqld_safe]

thp-setting=never

5)配置数据库的密码,在tokuDB的配置中,还是需要设置下指定用户的密码,要不后期很容易失败。

update mysql.user set authentication_string=password('xxxx') where user='root';

flush privileges;

6)使用命令ps_tokudb_admin来激活TokuDB,指定socket路径,端口等等。

./ps_tokudb_admin --enable --user=root --password -S /data/mycat_test/s1/s1.sock --port=33001 --defaults-file=/data/mycat_test/s1/s1.cnf

这个步骤会完成所有的检查,如果正常的话,基本日志就是下面的样子,

比如5.7里面不需要单独指定jemalloc了,Transparent huge page关闭,thp_setting的配置这些都是重点内容,在这个步骤这个脚本也会自动修复。

Checking SELinux status...

INFO: SELinux is disabled.

Checking if Percona Server is running with jemalloc enabled...

INFO: Percona Server is running with jemalloc enabled.

Checking transparent huge pages status on the system...

INFO: Transparent huge pages are currently disabled on the system.

Checking if thp-setting=never option is already set in config file...

INFO: Option thp-setting=never is set in the config file.

Checking TokuDB engine plugin status...

INFO: TokuDB engine plugin is not installed.

Installing TokuDB engine...

INFO: Successfully installed TokuDB engine plugin.

如果不顺利,很可能是如下的日志:

ERROR: Failed to install TokuDB engine plugin. Please check error log.

就需要仔细看一下error log文件,看看到底是哪个环节可能出了问题。

安装完成后,查看show engines就可以看到存储引擎是没有问题了。

或者是使用如下的SQL来看看TokuDB的版本信息。

SELECT @@tokudb_version;

整个过程其实会安装很多TokuDB的插件,这些是我们需要注意的点。

| Name                          | Status   | Type               | Library      | License |
+-------------------------------+----------+--------------------+--------------+---------+
| TokuDB                        | ACTIVE   | STORAGE ENGINE     | ha_tokudb.so | GPL     |
| TokuDB_file_map               | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
| TokuDB_fractal_tree_info      | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
| TokuDB_fractal_tree_block_map | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
| TokuDB_trx                    | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
| TokuDB_locks                  | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
| TokuDB_lock_waits             | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
| TokuDB_background_job_status  | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
+-------------------------------+----------+--------------------+--------------+---------+

接下来就是使用了,我们可以使用TokuDB来完成一些基本的测试,至少目前来看,从压缩比,性能来说还是不错的。

我写了个脚本,在后台默默的运行着,我放假了,服务器还在忙碌着,哈哈,等上班了继续收数据。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2017-12-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

使用 resource_limit 及 profile 限制用户连接

      数据库性能是一个永恒的话题,那就是如何使用更少的资源以达到更高效的性能。Oracle系统参数RESOURCE_LIMIT是一个用于控制用户对于数据库...

1151
来自专栏Laoqi's Linux运维专列

每日shell练习题

1.7K3
来自专栏MYSQL轻松学

MySQL中,一条语句是否会被binlog记录以及以什么样的模式记录

Binlog官方 In MySQL 5.6, whether a statement is to be logged and thelogging mode t...

3269
来自专栏依乐祝

[译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了

文章地址: https://www.cnblogs.com/yilezhu/p/9276565.html

1991
来自专栏社区的朋友们

MySQL Online DDL

历史上看,MySQL 在 2007 年就完成了在线索引接口的设计。而 MySQL NDB Cluster、TokuDB 都早在 5.1 版本中就支持在线索引添加...

2K0
来自专栏沃趣科技

ASM 翻译系列第三十三弹:REQUIRED_MIRROR_FREE_MB的含义

原作者:Bane Radulovic 译者: 陈亚军 审核: 魏兴华 DBGeeK社区联合出品 原文链接:http://asmsupportguy....

37610
来自专栏杨建荣的学习笔记

巧用flashback database实现灵活的数据回滚(r5笔记第16天)

之前写了一篇博文分享了使用flashback database的特性来在测试环境中避免重复导入大批量的数据,造成时间和存储空间的浪费。http://blog.i...

3413
来自专栏一个会写诗的程序员的博客

13.4 库依赖冲突问题:Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the class path13.4 库依

引入第三方库'org.raml:raml-parser:0.8.12',导致slf4j依赖冲突。

5591
来自专栏数据和云

【循序渐进Oracle】Oracle的物理备份(上)

编辑手记:备份重于一切,我们必需知道,系统总是要崩溃的,没有有效的备份只是等哪一天死!今天你备份了吗?我们一起来回顾Oracle的物理备份,本文摘自《循序渐进O...

3478
来自专栏散尽浮华

mysqldump数据导出问题和客户端授权后连接失败问题

1,使用mysqldump时报错(1064),这个是因为mysqldump版本太低与当前数据库版本不一致导致的。 mysqldump: Couldn't exe...

2489

扫码关注云+社区

领取腾讯云代金券