原文:http://blog.csdn.net/lidan3959/article/details/35985569

平台支持:

TokuDB 只能在 64-bit Linux 下使用.
最小内存要求:
    TokuDB 需要至少1GB 的物理内存,当然这里建议最好是 2GB .

1、安装mysql(可以是mariadb、percona或oracle mysql)

安装percona的源

yum install http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm  
     
     测试是否可用
     yum list | grep percona

然后选择合适的版本 [这里选择5.6.17 ]安装即可,很简单这里就不多废话。

2、安装tokuDB

tokuDB内存分配需要jemalloc支持(一般安装percona mysql以后自己就有,如果没有则需要额外安装)

(1)、 安装jemalloc

yum install jemalloc
   
   (2)、安装tokudb
       二进制包安装
       cd /usr/local/src
       wget -c http://www.percona.com/redir/downloads/Percona-Server-5.6/LATEST/binary/tarball/Percona-Server-5.6.17-rel66.0-  608.TokuDB.Linux.x86_64.tar.gz
       tar -zxvf Percona-Server-5.6.17-rel66.0-608.TokuDB.Linux.x86_64.tar.gz

mv Percona-Server-5.6.17-rel66.0-608.TokuDB.Linux.x86_64 percona-Server-5.6.17-rel66.0-608.TokuDB.Linux.x86_64

然后将/usr/local/src/percona-Server-5.6.17-rel66.0-608.Linux.x86_64/lib/mysql/plugin下的ha_tokudb.so 链接或拷贝到mysql

的plugin目录[/database1/mysql/Percona-Server-5.6.17-rel66.0-608.Linux.x86_64/lib/mysql/plugin/]下即可

或者你也可以使用rpm二进制包安装,这个也简单不多解释
       yum -y install Percona-Server-tokudb-56.x86_64

修改系统参数

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 
建议写到 /etc/rc.local 中,重启后也可生效

登陆mysql执行:

INSTALL PLUGIN tokudb_file_map SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_fractal_tree_info SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_fractal_tree_block_map SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_trx SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_locks SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb_lock_waits SONAME 'ha_tokudb.so';
INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so'; ###安装这个后会生成toku相应的日志文件和回滚文件等,需要删除

(如果指定的数据文件和日志文件不在默认的mysql数据目录下的话)然后在my.cnf配置好toku的参数后重启即可

推荐参数:

tokudb_commit_sync=ON
    tokudb_cache_size=10G ##指定tokuDB可使用的缓存类似innodb 的innodb_buffer_pool_size 默认是物理内存的50%
    tokudb_directio=ON          ##写操作不经过缓存,直接写入磁盘
    row_format=tokudb_fast   ##指定行格式默认是tokudb_zlib
    tokudb_tmp_dir=/database1/mysql_tmpdir
    tokudb_write_status_frequency =1
    tokudb_read_status_frequency=1    
    tokudb_data_dir=/xxx/yyy
    tokudb_log_dir=/xxx /yyy

注意指定的目录必须存在并且具有可访问的权限

如果要卸载

UNINSTALL PLUGIN  tokudb ;
UNINSTALL PLUGIN  tokudb_file_map ;
UNINSTALL PLUGIN  tokudb_fractal_tree_info;
UNINSTALL PLUGIN  tokudb_fractal_tree_block_map;
UNINSTALL PLUGIN  tokudb_trx ;
UNINSTALL PLUGIN  tokudb_locks;
UNINSTALL PLUGIN  tokudb_lock_waits;

另外进入数据目录删除tokudb相关的文件
      并且注释掉my.cnf toku相关的配置参数即可

安装当中可能的报错

'/database1/mysql/percona-sever-4005/lib/mysql/plugin/ha_tokudb.so' (errno: 13 /database1/mysql/percona-sever-4005/lib/mysql/plugin/ha_tokudb.so: 
cannot open shared object file: No such file or directory)

很明显是数据库插件目录没有ha_tokudb.so 共享库,做一个软连接或拷贝ha_tokudb.so到percoan mysql的plugin目录下即可
    如:
    ln -s /usr/local/src/percona-Server-5.6.17-rel66.0-608.Linux.x86_64/lib/mysql/plugin/ha_tokudb.so /database1/mysql/percona-sever-4005/lib/mysql/plugin/ha_tokudb.so 
 
 
     最后show engines;即可查看到tokudb引擎
                                                                                                          图1
 或SHOW PLUGINS;也可以
 

(3)使用tokudb创建表

CREATE TABLE `toku` (

`pid` varchar(32) NOT NULL DEFAULT '',

`CREATETIME` datetime NOT NULL,

`UPDATETIMES` datetime NOT NULL,

`USER_ID` bigint(20) NOT NULL,

`HOMEWORK_ID` varchar(255) DEFAULT NULL,

`COMPLETE_PRACTICE` int(11) NOT NULL DEFAULT '0',

`note` varchar(256) NOT NULL DEFAULT '',

`CLAZZ_ID` bigint(20) NOT NULL DEFAULT '0',

`score` bigint(20) NOT NULL DEFAULT '0',

`NOTE_CHECKEDS` bit(1) NOT NULL DEFAULT b'0',

PRIMARY KEY (`pid`)

) ENGINE=TokuDB

(4)、 一些注意事项

1、alter table xxx engine=tokudb 的情况会加metadata锁阻塞插入更新, 而myql-5.6.17 innodb引擎则不会导致阻塞。     
     2、只有char, varchar, varbinary, and integer  字段类型的扩展才支持online  ddl【缩减不支持online 操作】,注意修改的时候字段属性不能发生变化,同时也不能是任何主键或二级索引的字段【二级索引的话,可以先删除二级索引,不过tokuDB创建索引二级索引并不快】,否则会导致copy表。
     3、 修改列名的时候必须是单个列修改,如果是一条语句同时修改多条语句则会copy表。
     4、这些字段TIME, ENUM, BLOB, TINYBLOB, MEDIUMBLOB, LONGBLOB类型不支持online ddl。    
     其他的一些限制详情可参考官网

(5)、tokuDB事物、锁信息查看

查看事物情况:

SELECT * FROM information_schema.tokudb_trx,
        information_schema.processlist
        WHERE trx_mysql_thread_id = id; 
      
       查看锁的情况
        SELECT id FROM information_schema.tokudb_locks,
        information_schema.processlist
        WHERE locks_mysql_thread_id = id; 
      
     警告
       不要移动任何TokuDB相关的文件、否则会导致数据库崩溃并且需要使用备份才能进行恢复。

(6)、 关于TokuDB行格式

tokudb_row_format 可以设置如下的几个值:

tokudb_default: 设置默认的压缩行为。在 TokuDB 7.1.0版本,默认使用zlib 库进行压缩,未来版本可能会改变。
    tokudb_fast: 使用quicklz 库的压缩模式。
    tokudb_small: 使用 lzma 库的压缩模式。
    tokudb_zlib: 使用 zlib 库的压缩模式,提供了中等级别的压缩比和中等级别的CPU消耗。

tokudb_quicklz: 使用 quicklz 库的压缩模式, 提供了轻量级的压缩比和较低基本的CPU消耗。

tokudb_lzma: 使用lzma库压缩模式,提供了高压缩比和高CPU消耗。
             tokudb_uncompressed: 不使用压缩模式。
    可以使用如下命令修改行格式:
     ALTER TABLE table_name ROW_FORMAT=row_format;  
     注意修改行格式的操作也是online 操作。

吐槽:

该引擎现在一般用于大量历史数据的归档存储,但是最致命的还是没有一款合适的备份工具,只能使用mysqldump 备份或者停机物理备份,貌似官方的物理备份工具要收费。

之后有时间再补充TokuDB的压测报告  。

参考:http://docs.tokutek.com/tokudb/tokudb-index-installation.html
  
 网上有一篇对tokudb性能测试的文章请参考:http://www.tuicool.com/articles/vAbIFjb

tokuDB存储引擎的安装、配置、使用及注意事项相关推荐

  1. 块存储服务(Cinder)安装配置,这一篇就够了!

    本实验是一个比较综合的实验,需要结合前面所学的OpenStack基础环境安装配置,身份认证服务(Keystone)安装配置等一些基础的实验来做这个块存储服务(Cinder)安装配置实验.为了更好地理解 ...

  2. tokudb 安装mysql_tokuDB存储引擎的安装、配置、使用及注意事项 | 学步园

    平台支持: TokuDB 只能在 64-bit Linux 下使用. 最小内存要求: TokuDB 需要至少1GB 的物理内存,当然这里建议最好是 2GB . 1.安装mysql(可以是mariadb ...

  3. TokuDB存储引擎

    TokuDB是Tokutek公司开发的基于ft-index(Fractal Tree Index)键值对的存储引擎. 它使用索引加快查询速度,具有高扩展性,并支持hot scheme modifica ...

  4. MySQL 存储引擎 (SphinxSE)安装详解

    sphinxSE是一个mysql存储引擎,它可以编译进入mysql server之中,但必须版本是5.x(5.0.22或者5.0.x更高版本,5.1.12或者更高但5.1.x),在这里我采用的是5.1 ...

  5. mysql之存储引擎和文件配置

    (查看系统服务,在运行里输入services.msc) 补充:将mysql做成系统服务:mysqld --install 取消:mysqld --romove 在服务中可以直接鼠标操作mysql服务的 ...

  6. mysql1033错误存储引擎_MySQL Innodb存储引擎因为缓存配置出现的错误

    引用 100920 10:50:21 mysqld_safe Starting mysqld daemon with databases from /byread/data InnoDB: The I ...

  7. plsql/PLSQL安装配置tnsnames.ora注意事项

    plsql/PLSQL安装配置注意事项 1.pssql老版本,链接:https://pan.baidu.com/s/1n-2xmlb1UdsEjMFRgXQ2sg?pwd=8vla 提取码:8vla ...

  8. Unraid以Docker方式安装配置qbittorrent的注意事项

    文章目录 0.前言 1.qbittorrent是什么? 2.在UnRaid中安装部署设置qbittorrent 2.1.关于qbittorrent的安装 2.2.关于qbittorrent的配置 3. ...

  9. 【Irrlicht鬼火引擎】 安装配置Irrlicht鬼火引擎

    一.下载引擎 官方网站:http://irrlicht.sourceforge.net/‎ 官方网站需要翻墙才能进入,如果不想翻墙,可以通过其他下载地址: CSDN下载:http://download ...

最新文章

  1. 学了js php就简单,学习笔记:JS + 简单的PHP实现用户注册及登录
  2. Javascript实现表格的全选框
  3. 城市轨道交通运营票务管理论文_城市轨道交通票务组织管理论文
  4. 剑指offer——面试题10:斐波那契数列
  5. poj 1192(简单树形dp)
  6. layui获取checkbox选中值_小程序之十二 获取多选按钮数值及后续想法
  7. Html百分比设宽偏差大,absolute和relative元素 设置百分比宽高的差异
  8. sh变量特性(3)默认特性
  9. vue路由切换组件没有加载_Vue面试题: 如何实现路由懒加载?
  10. tensor转换为图片_pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
  11. bzoj 2763: [JLOI2011]飞行路线 分层图
  12. linux可执行文件在window,教你如何在windows下编译linux生成windows的可执行程序
  13. ecshop dwt替换为html,修改ecshop模板中lbi和dwt文件需知
  14. [CTSC2010]珠宝商
  15. spring boot验证码的实现
  16. Leet Code题(2)——整数反转
  17. 06-1-SVM原理
  18. Ubuntu上MPI编程环境部署
  19. Jmeter 压力测试、并发测试、弱网测试
  20. 【前端学习】前端学习第十三天:JavaScript中DOM技术介绍

热门文章

  1. java北大青鸟视频_西安java se视频
  2. 欧拉计划:第21题计算10000以下所有亲和数之和,22题文件中所有名字的得分之和
  3. 主机WiFi上网 虚拟机NAT方式上网
  4. 项目管理之项目进度管理
  5. 仿超级课程表的课程界面设计
  6. Shareplex下载
  7. 数据库安全审计系统可以实现哪些价值?
  8. 你知道位运算x=(x-1)表示什么嘛?
  9. 想拿高薪千万别错过!金三银四求职攻略来啦
  10. thc-ssl-dos攻击https站点