《MySQL_第三方数据库引擎 tokudb》要点:
本文介绍了MySQL_第三方数据库引擎 tokudb,希望对您有用。如果有疑问,可以联系我们。
特性:高压缩,可支持多个凑集索引,支持ACID、MVCC,使用 Fractal Tree 索引
长处:
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.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.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库里边的相应系统视图阐发
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到 数据目录,或者直接使用备份目录
注意权限改动
《MySQL_第三方数据库引擎 tokudb》是否对您有启发,欢迎查看更多与《MySQL_第三方数据库引擎 tokudb》相关教程,学精学透。维易PHP学院为您提供精彩教程。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/9186.html