Chinaunix首页 | 论坛 | 博客
  • 博客访问: 759610
  • 博文数量: 99
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1163
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-22 09:50
个人简介

一个守望数据库的老菜鸟

文章分类

全部博文(99)

文章存档

2019年(21)

2018年(17)

2017年(37)

2016年(24)

我的朋友

分类: Mysql/postgreSQL

2017-01-22 17:47:53

博客文章除注明转载外,均为原创。转载请注明出处。
本文链接地址:http://blog.chinaunix.net/uid-31396856-id-5758785.html


     TokuDB虽然使用还不广泛。但TokuDB是一种高性能,支持MySQL事务的存储引擎。其特点是高压缩比,高 INSERT 性能,支持大多数在线修改索引、添加字段,非常适合日志型应用场景(大部分insert和select,少两update)。这里简单记述下其安装使用过程。
假设数据库已经安装,我这里数据库的版本是MySQL 5.6.34,接着开始安装TokuDB:
1.安装jemalloc
tokuDB内存分配需要jemalloc支持,因此使用之前需要安装jemalloc
yum install jemalloc
另外,percona MySQL自带有插件库,也可以复制文件直接使用。

2.安装tokudb包
这里使用二进制包。

tar -zxvf Percona-Server-5.6.34-rel79.1-Linux.x86_64.ssl101.tar.gz
cp /opt/Percona-Server-5.6.34-rel79.1-Linux.x86_64.ssl101/lib/mysql/plugin/ha_tokudb.so  /usr/local/mysql/lib/plugin/

别忘了,修改权限权限
chown -R mysql:mysql /usr/local/mysql/lib/plugin/

还有相关命令:
cp /opt/Percona-Server-5.6.34-rel79.1-Linux.x86_64.ssl101/bin/t* /usr/local/mysql/bin/
chown -R mysql:mysql usr/local/mysql/bin/

如果直接使用percona的jemalloc文件
cp /opt/Percona-Server-5.6.34-rel79.1-Linux.x86_64.ssl101/lib/mysql/libjemalloc.so* /usr/local/mysql/lib/
or
cp /opt/Percona-Server-5.6.34-rel79.1-Linux.x86_64.ssl101/lib/mysql/libjemalloc.so* /usr/lib/
chown -R mysql:mysql  /usr/local/mysql/lib/libjemalloc.so*
chown -R mysql:mysql  /usr/lib/libjemalloc.so*

3.修改系统参数
停用transparent huge pages,如果不关闭可能会导致TokuDB内存泄露
编辑 /etc/rc.local
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag 

4.安装插件
(mysql5.6.34)root@localhost [(none)]> SELECT @@tokudb_version;
ERROR 1193 (HY000): Unknown system variable 'tokudb_version'

(mysql5.6.34)root@localhost [(none)]> INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so';
Query OK, 0 rows affected (0.18 sec)

(mysql5.6.34)root@localhost [(none)]> INSTALL PLUGIN tokudb_file_map SONAME 'ha_tokudb.so';
Query OK, 0 rows affected (0.00 sec)

(mysql5.6.34)root@localhost [(none)]> INSTALL PLUGIN tokudb_fractal_tree_info SONAME 'ha_tokudb.so';
Query OK, 0 rows affected (0.00 sec)

(mysql5.6.34)root@localhost [(none)]> INSTALL PLUGIN tokudb_fractal_tree_block_map SONAME 'ha_tokudb.so';
Query OK, 0 rows affected (0.00 sec)

(mysql5.6.34)root@localhost [(none)]> INSTALL PLUGIN tokudb_trx SONAME 'ha_tokudb.so';
Query OK, 0 rows affected (0.00 sec)

(mysql5.6.34)root@localhost [(none)]> INSTALL PLUGIN tokudb_locks SONAME 'ha_tokudb.so';
Query OK, 0 rows affected (0.01 sec)

(mysql5.6.34)root@localhost [(none)]> INSTALL PLUGIN tokudb_lock_waits SONAME 'ha_tokudb.so';
Query OK, 0 rows affected (0.00 sec)

(mysql5.6.34)root@localhost [(none)]> INSTALL PLUGIN tokudb_background_job_status SONAME 'ha_tokudb.so';
Query OK, 0 rows affected (0.00 sec)

5.验证安装结果



TokuDB的版本


6.tokuDB参数



推荐参数配置如下:
tokudb_cache_size=1.5g
tokudb_directio=ON
tokudb_data_dir=/data/mysql/mysql3306/tokudbData
tokudb_log_dir=/data/mysql/mysql3306/tokudbLog
tokudb_commit_sync=
tokudb_row_format=tokudb_small
tokudb_read_block_size=128k
tokudb_read_buf_size=128k
tokudb_write_status_frequency=1
tokudb_read_status_frequency=1                     

7.TokuDB的局限
在使用TokuDB存储引擎的时候,应考虑以下因素:
(1)不支持外键
(2)Xtrabackup不支持TokuDB,只能使用mysqldump 备份或者停机物理备份
(3)不支持全文索引
(4)tokuDB cache取决于操作系统内存的分配
(5)高压缩带来高CPU的使用

--The End


阅读(5119) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~