您的位置:威尼斯官方网站 > 威尼斯官方网站登录 > 减削细节...

减削细节...

发布时间:2019-11-27 17:27编辑:威尼斯官方网站登录浏览(144)

    Percona TokuDB

    Percona TokuDB. 1

    1.     TokuDB说明... 1

    2.     TokuDB安装... 1

    3.     使用TokuDB. 1

    3.1 飞快插入和富索引... 1

    3.2 聚集secondary索引... 1

    3.3 在头脑引创立... 1

    3.4 在线增加,删除,扩大,重命名列... 1

    3.5            压缩细节... 1

    3.6 改善表的压缩... 1

    3.7 无io读复制... 1

    3.8 事务和ACID包容恢复生机... 1

    3.9 管理Log大小... 1

    3.10 恢复... 1

    3.11 关闭写缓存... 1

    3.12 进度追踪... 1

    3.13 迁移到TokuDB. 1

    4 TokuDB后台 ANALYZE TABLE. 1

    4.1 后台作业... 1

    4.2 自动解析... 1

    4.3 系统变量... 1

    4.4 information_schema相关表... 1

    5 TokuDB变量... 1

    6 TokuDB Troubleshooting. 1

    6.1 得到消息难题... 1

    6.2 TukoDB锁... 1

    6.2.1 TOKUDB_TRX表... 1

    6.2.2 TOKUDB_LOCKS表... 1

    6.2.3 TOKUDB_LOCK_WAITS表... 1

    6.3 引擎状态... 1

    6.4 全局状态变量... 1

    7 Percona TokuBackup.. 1

    7.1 从binary安装... 1

    7.2 备份... 1

    7.3 还原... 1

    7.4 推荐配置... 1

    7.4.1 监察和控制进程... 1

    7.4.2 消亡源文件... 1

    7.4.3 备份率阀值... 1

    7.4.4 节制备份目的... 1

    7.4.5 错误报告... 1

    7.4.6 限制和已知的难点... 1

    8 FAQ.. 1

     

    1.  TokuDB说明

    具体看:

    2.  TokuDB安装

    Percona Server包容独立可用的TokuDB存储引擎包。TokuDB引擎必得分别下载然后以插件的款型启用。这几个包能够独立设置,无需其他特定的本子的Percona Server。

    TokuDB存款和储蓄引擎是可扩展,ACID,MVCC的囤积引擎,提供基于索引查询,提供online的框架校订和减削slave延迟。这一个蕴藏引擎设计员为了写入质量,是依据fractal tree的。

    警告:

           近日percona提供的TokuDB被应用在Percona Server 5.7。TokuDB引擎从其余省方下载的不可能被包容。TokuDB文件格式和MySQL变种不是风姿浪漫律的。从三个变种到其它多个大概需求做多少导入导出。

     

    嵌入必要

    Libjemalloc库

    ToKuDB要求libjemalloc 3.3.0依旧更加高版本。能够从percona或然其余地点下载。纵然libjemalloc,从前从没安装,TokuDB存款和储蓄引擎在接纳apt,yum安装的时候自动安装,不过并不会被加载到mysql,能够应用如下配置导入。

    [mysqld_safe]

    malloc-lib= /path/to/jemalloc

    大页面转变

    TokuDB假如在大页面转变运行的时候不会被运维。大页面转变是新水源版本的功力。能够通过以下语句检查时候运转。

    $ cat /sys/kernel/mm/transparent_hugepage/enabled

     [always] madvise never

    假定开发银行了大页面转化,运行TokuDB引擎会受到错误日志里面犹如下消息:

    Transparent huge pages are enabled, according to /sys/kernel/mm/redhat_transparent_hugepage/enabled

    Transparent huge pages are enabled, according to /sys/kernel/mm/transparent_hugepage/enabled

    您也能够关闭大页面转变功效,把transparent_hugepage=never传递到内核bottloader工具。可是要重启。也能够运用以下命令关闭:

    echo never > /sys/kernel/mm/transparent_hugepage/enabled

    echo never > /sys/kernel/mm/transparent_hugepage/defrag

     

    安装

    当今TukoDB能够利用Percona的源安装:

    如果为yum:

    [root@centos ~]# yum install Percona-Server-tokudb-57.x86_64

    如果为apt:

    root@wheezy:~# apt-get install percona-server-tokudb-5.7
    

     

    开始TokuDB存款和储蓄引擎

    如果设置好TokuDB就能好似下输出:

    * This release of Percona Server is distributed with TokuDB storage engine.
    
       * Run the following script to enable the TokuDB storage engine in Percona Server:
    
     
    
        ps_tokudb_admin --enable -u <mysql_admin_user> -p[mysql_admin_pass] [-S <socket>] [-h <host> -P <port>]
    
     
    
       * See http://www.percona.com/doc/percona-server/5.7/tokudb/tokudb_installation.html for more installation details
    
     
    
       * See http://www.percona.com/doc/percona-server/5.7/tokudb/tokudb_intro.html for an introduction to TokuDB
    

    Percona Server实现了ps_tokudb_admin脚本运行TokuDB存款和储蓄引擎。脚本会自动关闭大页面转变。须要sudo 运营一下语句:

    ps_tokudb_admin --enable -uroot -pPassw0rd
    

    运转后会输出:

    Checking if Percona server is running with jemalloc enabled...
    
    >> Percona server is running with jemalloc enabled.
    
     
    
    Checking transparent huge pages status on the system...
    
    >> Transparent huge pages are currently disabled on the system.
    
     
    
    Checking if thp-setting=never option is already set in config file...
    
    >> Option thp-setting=never is not set in the config file.
    
    >> (needed only if THP is not disabled permanently on the system)
    
     
    
    Checking TokuDB plugin status...
    
    >> TokuDB plugin is not installed.
    
     
    
    Adding thp-setting=never option into /etc/mysql/my.cnf
    
    >> Successfuly added thp-setting=never option into /etc/mysql/my.cnf
    
     
    
    Installing TokuDB engine...
    
    >> Successfuly installed TokuDB plugin.
    

    假使脚本未有回去错误,那么TokuDB被成功安装,能够运用show engins检查:

    mysql> SHOW ENGINES;
    
    ...
    
     | TokuDB | YES | Tokutek TokuDB Storage Engine with Fractal Tree(tm) Technology | YES | YES | YES |
    
    ...
    

     

    手动运维TokuDB存款和储蓄引擎

    假若你不想用ps_tokudb_admin脚本,就需求手动安装存款和储蓄引擎,加载plugins:

    INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so';
    
    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_background_job_status SONAME 'ha_tokudb.so';
    

    下一场拿走当前囤积引擎列表:

    mysql> SHOW ENGINES;
    
    ...
    
    | TokuDB | YES | Tokutek TokuDB Storage Engine with Fractal Tree(tm) Technology | YES | YES | YES |
    
    ...
    

    然后show plugins检查是或不是安装准确:

    mysql> SHOW PLUGINS;
    
    ...
    
    | TokuDB                        | ACTIVE   | STORAGE ENGINE     | ha_tokudb.so | GPL     |
    
    | TokuDB_file_map               | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
    
    | TokuDB_fractal_tree_info      | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
    
    | TokuDB_fractal_tree_block_map | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
    
    | TokuDB_trx                    | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
    
    | TokuDB_locks                  | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
    
    | TokuDB_lock_waits             | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
    
    | TokuDB_background_job_status  | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so | GPL     |
    
    ...
    

     

    TokuDB版本

    查看TokuDB版本:

    mysql> SELECT @@tokudb_version;
    
    +------------------+
    
    | @@tokudb_version |
    
    +------------------+
    
    | 5.7.10-1rc1      |
    
    +------------------+
    
    1 row in set (0.00 sec)
    

    3.  使用TokuDB

    3.1 火速插入和富索引

    TokuDB使用富索引,让越来越快的目录,能够让查询越来越快。比方覆盖也许集中索引。

     

    3.2 聚集secondary索引

    TokuDB允许二个secondary索引定义为聚集索引。认为那全体的表上的列都在此个secondary索引上。Percona Server解析并且询问优化的时候帮助多聚焦键,当TokuDB被运用的时候。也正是说在一定条件下,查询优化器会防止主键凑集索引读取,而是采用secondary 集中索引读取。

    目前解析式帮助一下语法:

    CREATE TABLE ... ( ..., CLUSTERING KEY identifier (column list), ...
    
    CREATE TABLE ... ( ..., UNIQUE CLUSTERING KEY identifier (column list), ...
    
    CREATE TABLE ... ( ..., CLUSTERING UNIQUE KEY identifier (column list), ...
    
    CREATE TABLE ... ( ..., CONSTRAINT identifier UNIQUE CLUSTERING KEY identifier (column list), ...
    
    CREATE TABLE ... ( ..., CONSTRAINT identifier CLUSTERING UNIQUE KEY identifier (column list), ...
    
     
    
    CREATE TABLE ... (... column type CLUSTERING [UNIQUE] [KEY], ...)
    
    CREATE TABLE ... (... column type [UNIQUE] CLUSTERING [KEY], ...)
    
     
    
    ALTER TABLE ..., ADD CLUSTERING INDEX identifier (column list), ...
    
    ALTER TABLE ..., ADD UNIQUE CLUSTERING INDEX identifier (column list), ...
    
    ALTER TABLE ..., ADD CLUSTERING UNIQUE INDEX identifier (column list), ...
    
    ALTER TABLE ..., ADD CONSTRAINT identifier UNIQUE CLUSTERING INDEX identifier (column list), ...
    
    ALTER TABLE ..., ADD CONSTRAINT identifier CLUSTERING UNIQUE INDEX identifier (column list), ...
    
     
    
    CREATE CLUSTERING INDEX identifier ON ...
    

    定义secondary集中索引:

    CREATE TABLE table (
    
      column_a INT,
    
      column_b INT,
    
      column_c INT,
    
      PRIMARY KEY index_a (column_a),
    
      CLUSTERING KEY index_b (column_b)) ENGINE = TokuDB;
    

    TokuDB能够应用集中索引是因为它精美的滑坡和异常高的索引率。

     

    3.3 在头脑引创制

    TokuDB能够令你在线的增多索引到已经存在的表中。不是行使online 关键字,仍旧接受tokudb_create_index_online的对话系统变量:

    mysql> SET tokudb_create_index_online=on;
    
    Query OK, 0 rows affected (0.00 sec)
    
     
    
    mysql> CREATE INDEX index ON table (field_name);
    

    也得以接收,alter table命令离线方式的创立索引,不管有未有展开tokudb_create_index_online都以离线的。唯有create index情势能够在线的创始。

    Online成立索引比offline 的满,和劳动繁忙程度有关。创设索引的精度能够由此命令show processlist查看。意气风发旦索引创建达成,新的目录在下个查询安插中就能够被利用。

    如若在同八个表上有多余一个的创办索引,索引会线性的被创建。索引创制会等待其它叁个到位,在show processlist中会彰显被锁定。推荐在创建索引实现以往再来实行下一个。

     

    3.4 在线加多,删除,扩展,重命名列

    TokuDB能够让您加多和删除已经存在表的列,扩张char,varchar,varbinary,integer类型,可能重命名已经存在的列。HCADE福睿斯会短暂的锁定表,校正数据字段。然后当数码从磁盘读入的时候都会被涂改。对于列重命名,全部的做事在几分钟内成功,在磁盘上的数量不会被改革。

    赢得HCADEEvoque的好品质,的几点:

    Ÿ   加多,删除或许增添操作的继续会被认为是fractal tree的风姿浪漫有个别。
    能够应用optimize table x来一回性管理,optimize table并不会重新建立索引,不过会诱发HCADE景逸SUV的周转。

    Ÿ   各类HCADE陆风X8务必独立的运作。若是想要增加和删除改多个列,那么就写四个语句。

    Ÿ   制止HCADE陆风X8和在头脑引操作一同管理。

    Ÿ   表锁的风浪有所分歧,HCADE库罗德的锁定事件是脏数据刷新的事件,因为mysql会在alter table之后关闭。假设近期时有产生过检查点,那么操作就能够十分的快。要是有太多的脏数据,那么刷新事件恐怕会十分短。

    Ÿ   制止删除的列是索引的大器晚成有的。假若列是索引的风华正茂局部,那么删除会非常慢。

    Ÿ   在线扩大只援助char,varchar,varbinary和integer。若是字段是主键只怕别的secondary索引的意气风发有个别也不帮忙。

    Ÿ   重命名只好是一句二个列。

    只顾有所的列属性必得制订,alter table change恐怕会一点也不快:

    Ÿ   在线列重命名不帮助以下字段,time,enum,blob,tinyblob,mediumblob,longblob。那几个列的重命名会走正规的流程。

    Ÿ   有时表不能够运用HCADE陆风X8。

     

    3.5    压缩细节

    TokuDB提供区别品级的减削,是cpu和压缩率之间的部分平衡。标准的回降使用少些的cpu不过压缩品级也比超级低,高等其他减少相比消耗cpu。

    TokuDB压缩发生在后台线程,表示高压缩率并不会延迟数据库。事实上,在少数有个别情状下,压缩率越高品质越好。

    注意:

           平时在6核一下的推荐介绍规范的减弱,6核以上的引荐高压缩

    压缩率的抉择依旧在于数据库的时候,推荐应用暗许配置。

    压缩在create table,alter table的依据每张表设置行格式:

    CREATE TABLE table (

      column_a INT NOT NULL PRIMARY KEY,

      column_b INT NOT NULL) ENGINE=TokuDB

      ROW_FORMAT=row_format;

     
    

    如果在create table 的时候从不设置行格式,那么是怎么减弱看tokudb_row_format的装置。如果未有设置tokudb_row_format,那么压缩就采取zlib。

    Row_format和tokudb_row_format取值如下:

    ·         TOKUDB_DEFUALT:以暗许情势裁减。在TokuDB 7.1,私下认可的使用zlib举办裁减,之后恐怕会改。

    ·         TOKUDB_FAST:这么些装置使用quicklz压缩。

    ·         TOKUDB_SMALL:使用lzma进行压缩。

    其它也足以直接采用压缩库,可用的压缩库:

    ·         TOKUDB_ZLIB:选择zlib进行减削,提供中等的压缩和cpu使用率

    ·         TOKUDB_QUICKLZ:使用quicklz进行裁减,提供轻量级的削减和低cpu使用率。

    ·         TOKUDB_LZMA:行使lzma进行压缩,提供最高的削减和cpu使用率。

    ·         TOKUDB_SNAPPY:采取snappy进行裁减,合理的敏捷的收缩。

    ·         TOKUDB_UNCOMPRESSED:那么些装置关闭了压缩,而且表不会被减去。

    3.6 改良表的滑坡

    校正表的裁减语法如下:

    ALTER TABLE table

      ROW_FORMAT=row_format;

    注意:

           改过表偶的裁减至会影响性写入的数量。更改表压缩之后能够经过OPTIMZE TABLE把全部的block全体写二回。

    3.7 无io读复制

    TokuDB slave能够布置,让来自master校订能够最小化。通过记录fractal tree索引:

    ·         Insert/update/delete操作能够垄断撤销read-modify-write的行为,然后注入新闻到卓殊的fractal tree。

    ·         Update/delete操作能够配备废除必要io的生机勃勃致性检查。

    为了利用使用无io读复制,服务须求配备:

    ·         在replication master:

    o    设置为binlog行模式:BINLOG_FORMAT=ROW

    ·         在replication slave:

    o    Slave必需为只读:read_only=1

    o    撤废防大队器晚成致性检查:tokudb_rpl_unique_checks=0

    o    关闭查找(read-modify-write) :tokudb_rpl_lookup_rows=0

    能够在七个如故七个slave上陈设。只要master使用了根据行的复制,优化在tokudb slave就可用。也便是说要是master使用innodb或然myisam表也是可用的。

    3.8 事务和ACID包容苏醒

    暗中同意,Tokudb检查有着检查点之间的开垦的表和日志的改良,所以在系统崩溃的,Tokudb会恢复生机全体的表大ACID宽容状态。全部的交由业务都会被反射在表上,并且没有交给的政工都会被回滚。

    默许检查点60秒推行一回,假若检查点要求更加多的推行,那么下三个反省点会立即推行。那些和日志文件截断的效能有关。客商能够运用flush logs命令实践检查点。当数据库关闭会实施检查点况兼打消全体的感慨事务。日志在重启的时候被截断。

    3.9 管理Log大小

    TokuDB有限支撑日志文件能够会到终极二次检查点。当日志文件达到100MB,就能够运转一个新的文本。不管是或不是有检查点,全体的日记文件比checkpoint老的都会被扬弃。如果检查点时间被设置了异常的大的值,log的截断频率会减削。暗中认可这么些值为60s。

    TokuDB为种种张开的事体保存了回滚日志,每一种log的文件大小和职业的天职和被削减保存到磁盘的分寸有关。回滚日志在有关事务完结后会被截断。

     

    3.10 恢复

    复原是电动的,TokuDB使用日志文件,和回滚日志来过来。恢复生机的日子和和日志文件的大小和未压缩回滚日志大小有关。因而只要未有长日子运作的事务,那么复苏进程是快速的。

     

    3.11 关闭写缓存

    不过用任何职业安全的数据库,都固然在你精通硬件的写缓存的底蕴上。TokuDB提供工作安全的寄放引擎。若是写入磁盘的作文,操作系统或然硬件未有当真的写入到磁盘,那么crash之后会破坏。

    其不常候必要关闭写缓存,在ATA/SATA上行使以下命令:

    $ hdparm -W0 /dev/hda

    在有些情状下能够运用写缓存:

    ·         写缓存能够在xfs上,何况保障电瓶工作正常的图景下利用。假如在/var/log /messages上冒出以下消息就不能够应用写缓存:

    o    Disabling barriers, not supported with external log device

    o    Disabling barriers, not supported by the underlying device

    o    Disabling barriers, trial barrier write failed

    以下境况就务须关闭写缓存:

    ·         假如你利用了ext3文件系统

    ·         假诺利用了LVM

    ·         假如您接受了软的RAID

    ·         要是选拔了RAID有battery-backed-up memory

     

    3.12 进程追踪

    TokuDB有二个类别来追踪长运转语句:

    ·         Bluk Load:当使用load data infile导入大批量多少,使用show processlist命令能够查见到速度分为2部分,已不是唤醒为:Inserted about 1000000 rows。别的一些是比例,提醒为Loading of data about 46% done。

    ·         扩大索引,当使用alter table也许create index命令创立索引,show processlist显示速度,会唤醒已经管理的行数。通过那几个苗条来证实进度。和bulk load相仿,第一品级显示行管理速度,第二等第显示百分比。

    ·         提交和撤消,当提交恐怕撤销二个专门的学问,使用show processlist,会评估业务操作处理。

     

    3.13 迁移到TokuDB

    为了吧表转变到TokuDB引擎,能够运用alter table engine来修正,倘使您想要从文件中导入数据,那么使用load data infile,不要接纳mysqldump,因为微微慢。

     

    4 TokuDB后台 ANALYZE TABLE

    TokuDB有叁个后台线程依照改良的评估来机关深入分析表。

    4.1 后台作业

    后台作业调解是短间距赛跑的,借使在关服务的时候有后台作业运维,那么会被甘休。当服务重启已经运转的都会被忽略,须要再度来,若是手动调用ANALYZE TABLE和后台作业冲突,那么后台作业会被撤消,能够由此表TOKUDB_BACKGROUND_JOB_STATUS查看后台作业是或不是运维。

    新的tokudb_analyze_in_background变量能够用来贯彻调整时候ANALYZE TABLE是后台运转照旧在前台。tokudb_analyze_mode用来调控ANALYZE TABLE的一坐一起。

    tokudb_analyze_mode变量用来兑现对ANALYZE TABLE的主宰:

    TOKUDB_ANALYZE_CANCEL:撤销在特定表上任何运维的照旧应调用的课业。

    TOKUDB_ANALYZE_STANDARD:使用已经存在解析算法。

    TOKUDB_ANALYZE_RECOUNT_ROWS:重新计算表上的逻辑行况兼更新当前的计数。

     

    TOKUDB_ANALYZE_RECOUNT_ROWS 是新的体制,用来施行逻辑重算全部表中的行何况保存,作为表的评价值评估。这些方式扩充是为了从老版本晋级的TokuDB难点,老的TokuDB只扶植物理行计数,何况未有一个不错的逻辑行计数。新创建的表或然分区开端以逻辑行,况且无需被另行计算除非一些边际条件形成逻辑计数变得不纯粹。那些剖析格局不会潜移暗化基数计数。会基于tokudb_analyze_in_background和tokudb_analyze_throttle。job运营后在设置变量不会影响当下job的周转。

     

    废除任何后台线程,可以安装tokudb_analyze_mode=TOKUDBANALYZE_CANCEL而且在表上运转ANALYZE TABLE。

    4.2 自动解析

    为了促成后台的深入分析和收罗计数总计每种表上都维护了贰个增量值,这么些值并非保存的,当服务重启就能棉被服装置为0.这几个记录了具有的写操作。当以此值超越了tokudb_auto_analyze设置的值,那么依据最近对话的安装会实践三个剖判。别的对于那么些表的分区就能截止,除非这些分析产生。当深入分析到位,值棉被服装置为0,重新总括。

     

    其余剖判变成,状态值都会被上报到劳动。半时反转深入分析,也被落成,也正是说假如超越二分之一的tokudb_analyze_time时间过去,可是还还没分析到数据量的二分一,那么解析会重启,从最后一条数据在这里以前往上解析,而且把深入分析结构充足到事先的结果上。

     

    对于小表,自动解析或然每一回纠正都会施行。出发更是如下就算(table_delta >= ((table_rows *tokudb_auto_analyze) / 100))那么就初阶运营ANALYZE TABLE。假如顾客手动调用ANALYZE TABLE何况tokudb_auto_analyze被运维了何况未有矛盾的后台作业,顾客运营的ANALYZE TABLE会和增量值超越了上线同样,完结后会吧增量设置为0.

    威尼斯官方网站,4.3 系统变量

    tokudb_analyze_in_background:如若设置为on,那么任何analyze table都会在后台运维。

    tokudb_analyze_mode:

        

    TOKUDB_ANALYZE_CANCEL:撤除在一定表上任何运维的照旧应调用的功课。

    TOKUDB_ANALYZE_STANDA福特ExplorerD:使用已经存在深入分析算法。

    TOKUDB_ANALYZE_RECOUNT_ROWS:重新总计表上的逻辑行并且更新当前的计数。

    tokudb_analyze_throttle:表示当analyze table的时候最大每秒访谈的key

    tokudb_analyze_time:会话变量支配深入分析操作费用的事件。

    tokudb_auto_analyze:会话变量支配超过自动解析的比值,写入操作到了那些比率就能更新。

    tokudb_cardinality_scale_percent:弱化只怕加重索引大概表的基数本性,举例innodb写死四分之二,在400行数据,肆十三个唯意气风发值,公式如下:(200/40 *tokudb_cardinality_scale) / 100

    4.4 information_schema相关表

    INFORMATION_SCHEMA.TOKUDB_BACKGROUND_JOB_STATUS

    5 TokuDB变量

    具体看:

    6 TokuDB Troubleshooting

    6.1 得到消息难点

    复制和binary log:

    TokuDB扶持binary log和复制,可是有个约束TokuDB,正是auto-increment功能的锁机制未有贯彻,所以并发插入语句或然会招致不鲜明的,那么在slave上运维的时候会促成和master不相配,独有在依靠语句复制上才会发生。

    在还未索引也许索引是主键子集的表上使用REPLACE INTO只怕INSERT IGNORE,tokudb_pk_insert_mode调节行是不是被复制。

     

    Uninformative error message

    LOAD INFILE命令恐怕会引致错误,ERubiconROEvoque 1030 (HY000): Got error 1 from storage engine.音信也会说是因为磁盘空间不足引致临时文件不可能创立。

     

    Transparent Huge Pages

    假定开发银行了transparent huge page,Tokudb不会运维。使用以下命令来剥夺:

    # echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled

     

    XA behavior vs. InnoDB

    InnoDB会强制死锁捐躯,但是Tokudb不会。

    6.2 TukoDB锁

    TokuDB使用key range lock来贯彻串行事务,在事情进度中获取,在工作结束时释放锁。

    TokuDB把那几个数据结构存放在锁树中。锁树寄放了各类事情的range锁。别的锁树也保留了因为冲突未有被获取的锁。当事情退出,那么这么些等待是锁也会被抽离。假诺pengding的锁未有被予以,那么锁超时后也会脱离。

    6.2.1 TOKUDB_TRX表

    TOKUDB_TRX在INFORMATION_SCHEMA中,能够用一下主意和mysql顾客端关联:

    SELECT * FROM INFORMATION_SCHEMA.TOKUDB_TRX,

      INFORMATION_SCHEMA.PROCESSLIST

      WHERE trx_mysql_thread_id = id;

    6.2.2 TOKUDB_LOCKS表

    Tokudb_locks表在information_schema中富含了授权了的TokuDB的事情中的锁。使用以下语句和客商端关联:

    SELECT id FROM INFORMATION_SCHEMA.TOKUDB_LOCKS,

      INFORMATION_SCHEMA.PROCESSLIST

      WHERE locks_mysql_thread_id = id;

    6.2.3 TOKUDB_LOCK_WAITS表

    Tokudb_lock_waits表也在information_schema中:

    SELECT * FROM INFORMATION_SCHEMA.TOKUDB_LOCK_WAITS;

    6.3 引擎状态

    具体看:

    6.4 全局状态变量

    具体看:

    7 Percona TokuBackup

    Percona tokubackup是叁个开源的备份tokudb的二个热备工具。在备份期间不会锁定数据库。Tokubackup会获取系统写入文件的调用,并复制到备份目录中。

    7.1 从binary安装

    TokuBackup富含在percona server 5.7.10和事后的本子,安装能够应用ps_tokudb_admin脚本。

    安装TokuBackup:

    1.      运行ps_tokudb_admin –enable-backup增加preload-hotbackup选项到[mysqld-safe]下的my.cnf中。

    2.      重启mysql服务

    3.      运行ps_tokudb_admin –enable-backup安装tokubackup插件。

    7.2 备份

    备份的目录必需存在,能够写为空,並且属于mysql运转客商。黄金年代旦目录被成立备份能够利用以下命令备份:

    mysql> set tokudb_backup_dir='/path_to_empty_directory';

    7.3 还原

    备份工具未有复苏数据库的功效,要使用rsync大概cp来还原来的著作件。检查还原的文件和对应的关联和权力。比方利用rsync来还原备份:

    $ rsync -avrP /data/backup/ /var/lib/mysql/

    改革全数者

    $ chown -R mysql:mysql /var/lib/mysql

    即使改造了某个人tokudb数据目录也许Tokudb日志目录,那么必要单独的去设置。

    $ rsync -avrP /data/backup/mysql_data_dir/ /var/lib/mysql/

    $ rsync -avrP /data/backup/tokudb_data_dir/ /path/to/original/tokudb_data_dir/

    $ rsync -avrP /data/backup/tokudb_log_dir/ /path/to/original/tokudb_log_dir/

    $ chown -R mysql:mysql /var/lib/mysql

    $ chown -R mysql:mysql /path/to/original/tokudb_data_dir

    $ chown -R mysql:mysql /path/to/original/tokudb_log_dir

    7.4 推荐配置

    7.4.1 监察和控制进程

    TokuBackup更新processlist的景况,显示备份的速度,能够动用show processlist查看。

    7.4.2 毁灭源文件

    能够经过正则表明式消灭文件大概目录,设置在tokudb_backup_exclude会话变量中。假设源文件名负荷这么些正则表明式,那么就能够被消亡。比如lost+found目录:

    mysql> SET tokudb_backup_exclude='/lost\+found($|/)';

    7.4.3 备份率阀值

    能够钦命备份的阀值,tokudb_backup_throttle会话品级变量。那一个变量表示每秒字节传输率。

    7.4.4 约束备份目的

    你可以约束当地目的目录,tokudb_backup_allowed_prefix系统变量。暗许是null,备份未有节制指标目录。参数是只读的只好通过my.cnf配置。

    7.4.5 错误报告

    Tokubackup使用2个变量来收获错误音讯。Tokudb_backup_last_error, tokudb_backup_laster_error_string。当tokubackup爆发三个八花九裂,变量就能够来得显影的错误代码和错误音讯。

    mysql> SET tokudb_backup_dir='/tmp/backupdir';

    ERROR 1231 (42000): Variable 'tokudb_backup_dir' can't be set to the value of '/tmp/backupdir'

     

    mysql> SELECT @@tokudb_backup_last_error;

    +----------------------------+

    | @@tokudb_backup_last_error |

    +----------------------------+

    |                         17 |

    +----------------------------+

     

    mysql> SELECT @@tokudb_backup_last_error_string;

    +---------------------------------------------------+

    | @@tokudb_backup_last_error_string                 |

    +---------------------------------------------------+

    | tokudb backup couldn't create needed directories. |

    +---------------------------------------------------+

    7.4.6 节制和已知的主题素材

    ·         你必需关闭innodb异步io假设应用tukobackup备份innodb表。不然就能够并爆发龙活虎致性错误。innodb_use_native_aio=0

    ·         若是急需还原到钦赐点,必要手动获取binary log position。

    ·         事务存款和储蓄引擎会在备份还原后,第叁次运维会进行还原。

    ·         表使用非事务引擎在备份的时候不会锁定。所以最佳在备份的时候制止表操作。

    ·         备份的时候目的目录必需存在,並且为空

    ·         TokuBackup会平昔备份datadir目录,选用性的备份tokudb_data_dir和tokudb_log_dir,和binary log目录。假如不在datadir中那么需求独自备份。

    ·         不帮助其余目录结构,innodb,myisam和任何存款和储蓄引擎必需在datadir下边。

    ·         Buzhichi symbolic links

    ·         不备份配置文件

    ·         不备份datadir 外的表空间。

    ·         当备份的时候在实施optimize table只怕alter table tablespace,那么就不能恢复备份。

    ·         不帮助增量备份。

    8 FAQ

    具体看:

     

    本文由威尼斯官方网站发布于威尼斯官方网站登录,转载请注明出处:减削细节...

    关键词:

上一篇:没有了

下一篇:没有了