博客文章除注明转载外,均为原创。转载请注明出处。
本文链接地址: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
阅读(5270) | 评论(0) | 转发(0) |