优点:
fractal tree 可以再理解下,对随机IO有非常大的改进浸染
fractal tree 可以快速插入及删除,在随机IO方面的性能比 B-tree的性能更优
高压缩,官网给出最大25倍
对数据及索引进行压缩,根据数据的可压缩性,官网给出的最大压缩比是 25 倍
在线索引创建,创建期间,insert delete的DML支持,update呢 ?
在线列增加删除重命名,修正期间,insert delete的DML支持,update呢 ?
在线备份
多个聚拢索引
无io读复制
TokuDB slave可以配置,让来自master修正可以最小化。通过记录fractal tree索引:
Insert/update/delete操作可以掌握取消read-modify-write的行为,然后注入到得当的fractal tree。
Update/delete操作可以配置取消须要io的同等性检讨。
为了利用利用无io读复制,做事须要配置:
在replication master:
设置为binlog行模式:BINLOG_FORMAT=ROW
在replication slave:
Slave必须为只读:read_only=1
取消同等性检讨:tokudb_rpl_unique_checks=0
关闭查找(read-modify-write) :tokudb_rpl_lookup_rows=0
可以在一个或者多个slave上配置。只要master利用了基于行的复制,优化在tokudb slave就可用。也便是说如果master利用innodb或者myisam表也是可用的。
无损化,少碎片
4Mb为单位进行存储
快速规复
规复时长少于1min
2 Tokudb安装2.1 percona mysql安装
2.2 安装 jemalloc,管理内存
https://github.com/jemalloc/jemalloc/releases 找个最新版本安装就可以了
解压过程中如果报错如下,请安装 bzip2 包 :yum install -y bzip2
安装成功后,在数据库配置文件中的mysqld_safe模块,添加引用libjemalloc.so,记得须要先找下这个文件的实际位置,然后cp或者ls一份到/usr/lib64目录下。
在数据库配置文件中添加引用
把稳,数据库关闭后,须要用mysqld_safe启动做事,利用 jemalloc 管理内存。
2.3 修正transparent_hugepage
tokudb引擎须要启动透来岁夜页,更好的供应内存管理。
须要修正为never,如果不修正,利用tokudb引擎的时候,会在error.log中报错
配置如下:
2.4 安装tokudb引擎跟percona client
官网下载后安装。
2.5 启用tokudb存储引擎
安装tokudb引擎后,会提示启动指令语法如下:
利用 ps_tokudb_admin指令 :
ps_tokudb_admin --enable -uroot -p --sock=/tmp/pmysql.sock --defaults-file=/data/mysql/mysql3306.cnf
如果正常,则因此下显示,不正常的话,看下前面的安装步骤是不是少了
安装生产后,可以在
TokuDB Version
3 文件管理及剖析
3.1 安装tokudb引擎后的新增文件
在数据目录中,新增了8个文件
tokudb.environment:tokudb赢取的环境变量存储文件,像创建韶光、当前版本号
tokudb.rollback:每一个tokudb的事务,都有自己的回滚日志,详细回滚日志分配干系信息记录在这里
tokudb.directory:映射文件夹的名字
3.2 tokudb文件管理
可以统一把tokudb的数据文件存储在某个文件夹下,参数是 tokudb_data_dir
可以统一把tokudb的临时文件存储在某个文件夹下,参数是 tokudb_tmp_dir
可以统一把tokudb的日志文件存储在某个文件夹下,参数是 tokudb_log_dir
如何迁移:
SELECT dictionary_name, internal_file_name FROM INFORMATION_SCHEMA.TokuDB_file_map;
移动 .tokudb 文件 跟 __tokudb_lock_dont_delete_me_data 到新的存储目录
移动 __tokudb_lock_dont_delete_me_temp 到新的 存储目录
移动 到新的 log.tokulog files and your __tokudb_lock_dont_delete_me_logs file 存储目录
关闭数据库做事
配置文件中添加或者修正 tokudb_data_dir、tokudb_tmp_dir、、、
创建 tokudb 文件的存储目录
移动文件
启动数据库做事器
查看文件的存放位置
3.3 问题剖析
https://www.percona.com/doc/percona-server/5.7/tokudb/tokudb_troubleshooting.html
information_schema库里边的相应系统视图剖析
4 备份
tokudb如何备份呢?
单表也可以利用mysqldump。全库呢? tokudb引擎全库备份,官方版本是利用 tokudb_backup 引擎来进行,支持在线热备。也便是,须要其余安装这个引擎,安装相对大略,利用 ps_tokudb_admin + 重启数据库做事预加载引擎 + ps_tokudb_admin。
4.1 安装备份引擎
首先,确保数据库是启动正常状态,实行ps_tokudb_admin,如果 数据库配置文件 cnf不是在 /etc/my.cnf,须要手动指定 --defaults-file,避免无法找到配置文件写入 preload-hotbackup。
这个时候,可以看到提示:Successfully added preload-hotbackup option into /data/mysql/pmysql3330.cnf,查看配置文件,在 mysqld_safe 配置中,添加多了一行 配置 :preload-hotbackup。
重启数据库做事,利用 mysqladmin关闭,mysqld_safe 启动
这里有个地方把稳下, libHotBackup.so 记得要cp到 /usr/lib 或者 /usr/lib64的目录下,不然mysqld_safe启动数据库的时候,会报错如下:
这种情形下,它检讨到 安装目录下有 libHotBackup.so 引擎文件,会利用这个加载,须要 把这个文件拷贝到 /usr/lib64 或者 /usr/lib,再重新加载这个文件,然后再次实行 mysqld_saft启动做事。
数据库启动后,安装备份引擎
检讨
4.2 备份tokudb
实例备份
配置条件
如果实例含有innodb引擎的表格,须要关闭 innodb异步io的变量 innodb_use_native_aio,避免涌现数据不一致,无法规复的备份。这个变量只能在配置文件中添加,属于readonly变量
建立备份文件夹,这个文件夹必须是为空、授权备份文件夹可写,由于备份的时候,须要写入及创建文件夹,以是对其所在的文件夹须要有权限
把稳,tokudb_back对本身引擎的表格,支持对单独存储的 tokudb_data_dir\ tokudb_log_dir \binary log备份,但是,不支持不支持不支持 innodb或者myisam引擎的表格其余存储,也便是 所有的InnoDB存储引擎,MyISAM,及其他文件必须在MySQL datadir
tokubackup不备份MySQL的配置文件(S)
tokubackup不支持增量备份
配置
chown -R mysql:mysql /data/backup
在配置文件中设置 innodb_use_native_aio = OFF,重启数据库实例,这里把稳,启动数据库须要到 /usr/local/pmysql 目录下,实行 ./bin/mysqld_safe --defaults-file=/data/mysql/pmysql3330.cnf
建立文件夹 /data/backup/pmysql3330 ,并授权
备份分为2中,一种是实例备份,一种是指定备份,目前tokudb_backup仅支持全体实例备份,支持稠浊引擎,指定备份,目前采取mysqldump方法。
实例备份
set tokudb_backup_dir='/data/backup/pmysql3330';
实行这个指令则开始备份,备份过程中,支持读写,
备份出错验证
表格备份
实例备份后还原
tokudbback没有特定的函数进行数据规复,可以利用cp或者sync到 数据目录,或者直策应用备份目录
把稳权限修正