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来完成一些基本的测试,至少目前来看,从压缩比,性能来说还是不错的。
我写了个脚本,在后台默默的运行着,我放假了,服务器还在忙碌着,哈哈,等上班了继续收数据。
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- 数学--数论--Alice and Bob (CodeForces - 346A )推导
- ACM-ICPC 2019 山东省省赛 M Sekiro
- 数学--数论--HDU2136 Largest prime factor 线性筛法变形
- ACM-ICPC 2019 山东省省赛 C Wandering Robot
- 数据库SQL语言从入门到精通--Part 2--MySQL安装
- ACM-ICPC 2019 山东省省赛 A Calandar
- POJ 1845-Sumdiv(厉害了这个题)
- 数据库SQL语言从入门到精通--Part 1--SQL语言概述
- DP背包(一)
- 程序员最喜欢用的在线代码编译器,什么?你竟然不知道!可以在网页敲代码,运行调试!
- ZOJ 3623 Battle Ships
- POJ 2955 区间DP必看的括号匹配问题,经典例题
- POJ 3211 Washing Clothes
- 1745 Divisibility
- POJ 3616 Milking Time