您的位置:新葡亰496net > 网络数据库 > 新葡亰496net:MySQL_第三方数据库引擎_tokudb

新葡亰496net:MySQL_第三方数据库引擎_tokudb

发布时间:2019-06-20 12:56编辑:网络数据库浏览(79)

    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

     

    Percona TokuDB,perconatokudb

        前阵子迁移zabbix到tokudb,整理部分操作笔记到那篇博文。新葡亰496net 1

        前阵子迁移zabbix到tokudb,整理部分操作笔记到那篇博文。新葡亰496net 2

    1.  TokuDB说明

    具体看:

    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

     

     

     

    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)
    

    1.  TokuDB说明

    具体看:



    3.  使用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:

    [[email protected] ~]# yum install Percona-Server-tokudb-57.x86_64

    如果为apt:

    [email protected]:~# 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.1 快捷插入和富索引

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

     

    3.  使用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.1 飞快插入和富索引

    TokuDB使用富索引,让更加快的目录,能够让查询更快。比如覆盖可能集中索引。

     

        如若转发,请注脚博文来源: www.cnblogs.com/xinysu/   ,版权归 博客园 苏家小萝卜 全体。望各位协理!

        假诺转发,请声明博文来源: www.cnblogs.com/xinysu/   ,版权归 腾讯网 苏家小萝卜 全数。望各位扶助!

    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.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.4 在线增加,删除,扩大,重命名列

    TokuDB可以让您增添和删除已经存在表的列,增加char,varchar,varbinary,integer类型,大概重命名已经存在的列。HCADEEvoque会短暂的锁定表,修改数据字段。然后当数码从磁盘读入的时候都会被涂改。对于列重命名,全体的办事在几分钟内做到,在磁盘上的数码不会被改造。

    得到HCADE奇骏的好品质,的几点:

    Ÿ   加多,删除或然扩大操作的持续会被以为是fractal tree的一有的。
    能够利用optimize table x来二回性管理,optimize table并不会重建索引,但是会诱发HCADE奥迪Q5的运维。

    Ÿ   各个HCADEHaval必须独立的周转。要是想要增加和删除改多个列,那么就写几个语句。

    Ÿ   制止HCADE智跑和在线索引操作一齐处理。

    Ÿ   表锁的风浪有所区别,HCADE奥德赛的锁定事件是脏数据刷新的轩然大波,因为mysql会在alter table之后关闭。假设那二日发出过检查点,那么操作就能不慢。要是有太多的脏数据,那么刷新事件也许会相当长。

    Ÿ   制止删除的列是索引的一有的。假若列是索引的一局地,那么删除会极慢。

    Ÿ   在线扩展只援救char,varchar,varbinary和integer。即便字段是主键也许其余secondary索引的一局地也不援助。

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

    小心有所的列属性必须制定,alter table change或者会相当慢:

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

    Ÿ   一时表无法动用HCADEPAJERO。

     

    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中会呈现被锁定。推荐在开创索引完结之后再来施行下七个。

     



    新葡亰496net:MySQL_第三方数据库引擎_tokudb。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.4 在线增多,删除,扩充,重命名列

    TokuDB可以让您增加和删除已经存在表的列,扩充char,varchar,varbinary,integer类型,也许重命名已经存在的列。HCADECRUISER会短暂的锁定表,修改数据字段。然后当数码从磁盘读入的时候都会被改动。对于列重命名,全数的干活在几分钟内产生,在磁盘上的数据不会被改变。

    获取HCADE奥迪Q5的好品质,的几点:

    Ÿ   增添,删除可能扩展操作的接二连三会被以为是fractal tree的一有个别。
    能够应用optimize table x来一遍性管理,optimize table并不会重建索引,可是会诱发HCADEWrangler的周转。

    Ÿ   每一种HCADERubicon必须独立的运作。假诺想要增加和删除改多个列,那么就写多个语句。

    Ÿ   防止HCADEHaval和在线索引操作一齐管理。

    Ÿ   表锁的风云有所分歧,HCADERAV4的锁定事件是脏数据刷新的轩然大波,因为mysql会在alter table之后关闭。假诺近来发生过检查点,那么操作就能异常的快。假使有太多的脏数据,那么刷新事件或然会非常短。

    Ÿ   幸免删除的列是索引的一有个别。如若列是索引的一有的,那么删除会不快。

    Ÿ   在线扩大只支持char,varchar,varbinary和integer。若是字段是主键也许其余secondary索引的一有的也不帮助。

    Ÿ   重命名只可以是一句一个列。

    在意有所的列属性必须制定,alter table change大概会比较慢:

    Ÿ   在线列重命名不帮衬以下字段,time,enum,blob,tinyblob,mediumblob,longblob。这几个列的重命名会走正规的流水生产线。

    Ÿ   有时表不能够选用HCADELacrosse。

     



    3.6 修改表的缩减

    修改表的削减语法如下:

    ALTER TABLE table

      ROW_FORMAT=row_format;

    注意:

           修改表偶的缩短至会影响性写入的数额。修改表压缩之后方可因此OPTIMZE TABLE把具有的block全体写三回。

    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压缩。

    新葡亰496net:MySQL_第三方数据库引擎_tokudb。·         TOKUDB_SMALL:使用lzma进行压缩。

    除此以外也足以直接选用压缩库,可用的压缩库:

    ·         TOKUDB_ZLIB:采纳zlib实行削减,提供中等的缩短和cpu使用率

    ·         TOKUDB_QUICKLZ:利用quicklz实行压缩,提供轻量级的削减和低cpu使用率。

    ·         TOKUDB_LZMA:行使lzma实行削减,提供最高的减弱和cpu使用率。

    ·         TOKUDB_SNAPPY:使用snappy举行削减,合理的飞跃的削减。

    ·         TOKUDB_UNCOMPRESSED:本条装置关闭了减弱,并且表不会被减去。

     1 tokudb引擎介绍

    1. 特征:高压缩,可支撑两个集中索引,匡助ACID、MVCC,使用 Fractal Tree 索引
    2. 优点:
      • 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

     1 tokudb引擎介绍

    1. 性格:高压缩,可支撑多个聚焦索引,帮衬ACID、MVCC,使用 Fractal Tree 索引
    2. 优点:
      • 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

    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.6 修改表的滑坡

    修改表的减弱语法如下:

    ALTER TABLE table

      ROW_FORMAT=row_format;

    注意:

           修改表偶的削减至会影响性写入的多寡。修改表压缩之后能够通过OPTIMZE TABLE把持有的block整体写三次。

    2 Tokudb安装

    2 Tokudb安装

    3.8 事务和ACID包容恢复

    暗中同意,Tokudb检查有着检查点之间的开荒的表和日志的修改,所以在系统崩溃的,Tokudb会苏醒全体的表大ACID包容状态。全部的交由业务都会被反馈在表上,并且未有交到的业务都会被回滚。

    暗许检查点60秒推行一回,如若检查点须求更多的推行,那么下一个检查点会立刻施行。那个和日志文件截断的效用有关。用户能够使用flush logs命令实行检查点。当数据库关闭会推行检查点并且打消全体的感慨事务。日志在重启的时候被截断。

    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表也是可用的。

    2.1 percona mysql安装

    1 下载最新percona mysql二进制包
    
    2 解压
    
    tar zvxf Percona-Server-5.7.17-13-Linux.x86_64.ssl101.tar.gz
    
    3 软连接
    
    ln -s /opt/percona/Percona-Server-5.7.17-13-Linux.x86_64.ssl101 /usr/local/pmysql
    
    4 建立用户及用户组
    
    groupadd mysql
    
    useradd -g mysql -s /sbin/nologin -d /usr/local/mysql/ -M mysql
    
    5 建立文件夹
    
    mkdir -p /data/mysql/pmysql3330/{data,tmp,logs}
    
    6 数据库配置文件
    
    pmysql3330.cnf
    
    7 授权
    [root@sutest242 percona]# chown -R mysql:mysql /usr/local/pmysql/
    [root@sutest242 percona]# chown -R mysql:mysql /opt/percona/Percona-Server-5.7.17-13-Linux.x86_64.ssl101
    [root@sutest242 percona]# chown -R mysql:mysql /data/mysql/pmysql3330/
    
    8 看是否需要配置环境变量
    
    vim /etc/profile
    
    PATH=$PATH:/usr/local/pmysql/bin
    
    source profile
    
    9 初始化实例
    
    /usr/local/pmysql/bin/mysqld --defaults-file=/data/mysql/pmysql3330.cnf --initialize
    
    10 检查是否安装有问题
    
    vim /data/mysql/pmysql3330/data/error.log
    
    11 启动数据库实例
    
    /usr/local/pmysql/bin/mysqld --defaults-file=/data/mysql/pmysql3330.cnf &
    
    12 修改密码
    
    cat /data/mysql/pmysql3330/data/error.log | grep password
    
    /usr/local/pmysql/bin/mysql --socket=/tmp/pmysql3330.sock -uroot -p
    
    alter user root@localhost idnetified by '******';
    
    flush privileges;
    

    2.1 percona mysql安装

    1 下载最新percona mysql二进制包
    
    2 解压
    
    tar zvxf Percona-Server-5.7.17-13-Linux.x86_64.ssl101.tar.gz
    
    3 软连接
    
    ln -s /opt/percona/Percona-Server-5.7.17-13-Linux.x86_64.ssl101 /usr/local/pmysql
    
    4 建立用户及用户组
    
    groupadd mysql
    
    useradd -g mysql -s /sbin/nologin -d /usr/local/mysql/ -M mysql
    
    5 建立文件夹
    
    mkdir -p /data/mysql/pmysql3330/{data,tmp,logs}
    
    6 数据库配置文件
    
    pmysql3330.cnf
    
    7 授权
    [root@sutest242 percona]# chown -R mysql:mysql /usr/local/pmysql/
    [root@sutest242 percona]# chown -R mysql:mysql /opt/percona/Percona-Server-5.7.17-13-Linux.x86_64.ssl101
    [root@sutest242 percona]# chown -R mysql:mysql /data/mysql/pmysql3330/
    
    8 看是否需要配置环境变量
    
    vim /etc/profile
    
    PATH=$PATH:/usr/local/pmysql/bin
    
    source profile
    
    9 初始化实例
    
    /usr/local/pmysql/bin/mysqld --defaults-file=/data/mysql/pmysql3330.cnf --initialize
    
    10 检查是否安装有问题
    
    vim /data/mysql/pmysql3330/data/error.log
    
    11 启动数据库实例
    
    /usr/local/pmysql/bin/mysqld --defaults-file=/data/mysql/pmysql3330.cnf &
    
    12 修改密码
    
    cat /data/mysql/pmysql3330/data/error.log | grep password
    
    /usr/local/pmysql/bin/mysql --socket=/tmp/pmysql3330.sock -uroot -p
    
    alter user root@localhost idnetified by '******';
    
    flush privileges;
    

    3.9 管理Log大小

    TokuDB保险日志文件能够会到最终三遍检查点。当日志文件到达100MB,就能运营一个新的文本。不管是否有检查点,全数的日记文件比checkpoint老的都会被裁撤。假设检查点时间棉被服装置了一点都不小的值,log的截断频率会削减。暗许那些值为60s。

    TokuDB为种种展开的作业保存了回滚日志,各类log的文件大小和作业的任务和被减去保存到磁盘的分寸有关。回滚日志在有关事务达成后会被截断。

     

    3.8 事务和ACID包容复苏

    私下认可,Tokudb检查有着检查点之间的打开的表和日志的改变,所以在系统崩溃的,Tokudb会复苏全数的表大ACID包容状态。全体的交给业务都会被反馈在表上,并且未有交到的作业都会被回滚。

    暗中认可检查点60秒实践一遍,若是检查点须求越来越多的进行,那么下二个反省点会登时实践。这么些和日志文件截断的频率有关。用户能够运用flush logs命令实行检查点。当数据库关闭会试行检查点并且撤废所有的感慨事务。日志在重启的时候被截断。

    2.2 安装 jemalloc,管理内部存款和储蓄器

     找个新型版本安装就足以了

     

    wget 

    tar xjf jemalloc-4.2.1.tar.bz2

    cd jemalloc-4.2.1

    ./configure

    make && make install

    echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf

     

    解压进程中一经报错如下,请安装 bzip2 包 :yum install -y bzip2

     

    [root@sutest242 percona]# tar -xjf jemalloc-4.2.1.tar.bz2

    tar (child): bzip2: Cannot exec: No such file or directory

    tar (child): Error is not recoverable: exiting now

    tar: Child returned status 2

    tar: Error is not recoverable: exiting now

     

     

    安装成功后,在数据库配置文件中的mysqld_safe模块,增加引用libjemalloc.so,记得供给先找下那么些文件的实际上地点,然后cp大概ls一份到/usr/lib64目录下。

    在数据库配置文件中加上引用

     

    [mysqld_safe]

    malloc-lib=/usr/lib64/libjemalloc.so.1

     

     

    留神,数据库关闭后,必要用mysqld_safe运行服务,使用 jemalloc 管理内部存储器。

     

    [root@sutest242 jemalloc-5.0.0]# /usr/local/pmysql/bin/mysqladmin --socket=/tmp/pmysql3330.sock -uroot -p shutdown

    Enter password:

    [root@sutest242 jemalloc-5.0.0]# ps axu | grep pmysql

    root     12418  0.0  0.0 112648   964 pts/1    S    10:29   0:00 grep --color=auto pmysql

    [root@sutest242 jemalloc-5.0.0]# cd /usr/local/pmysql/

    [root@sutest242 pmysql]# ./bin/mysqld_safe --defaults-file=/data/mysql/pmysql3330.cnf &

    [1] 13745

    [root@sutest242 pmysql]#  mysqld_safe Adding '/usr/lib/libjemalloc.so.1' to LD_PRELOAD for mysqld

    2017-06-24T02:31:06.679622Z mysqld_safe Logging to '/data/mysql/pmysql3330/data/error.log'.

    2017-06-24T02:31:06.685066Z mysqld_safe Logging to '/data/mysql/pmysql3330/data/error.log'.

    2017-06-24T02:31:06.788240Z mysqld_safe Starting mysqld daemon with databases from /data/mysql/pmysql3330/data

     

    2.2 安装 jemalloc,管理内部存款和储蓄器

     找个流行版本安装就可以了

     

    wget 

    tar xjf jemalloc-4.2.1.tar.bz2

    cd jemalloc-4.2.1

    ./configure

    make && make install

    echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf

     

    解压进程中要是报错如下,请安装 bzip2 包 :yum install -y bzip2

     

    [root@sutest242 percona]# tar -xjf jemalloc-4.2.1.tar.bz2

    tar (child): bzip2: Cannot exec: No such file or directory

    tar (child): Error is not recoverable: exiting now

    tar: Child returned status 2

    tar: Error is not recoverable: exiting now

     

     

    设置成功后,在数据库配置文件中的mysqld_safe模块,增加引用libjemalloc.so,记得必要先找下那个文件的实际地点,然后cp大概ls一份到/usr/lib64目录下。

    在数据库配置文件中丰盛引用

     

    [mysqld_safe]

    malloc-lib=/usr/lib64/libjemalloc.so.1

     

     

    小心,数据库关闭后,必要用mysqld_safe运行服务,使用 jemalloc 处理内部存储器。

     

    [root@sutest242 jemalloc-5.0.0]# /usr/local/pmysql/bin/mysqladmin --socket=/tmp/pmysql3330.sock -uroot -p shutdown

    Enter password:

    [root@sutest242 jemalloc-5.0.0]# ps axu | grep pmysql

    root     12418  0.0  0.0 112648   964 pts/1    S    10:29   0:00 grep --color=auto pmysql

    [root@sutest242 jemalloc-5.0.0]# cd /usr/local/pmysql/

    [root@sutest242 pmysql]# ./bin/mysqld_safe --defaults-file=/data/mysql/pmysql3330.cnf &

    [1] 13745

    [root@sutest242 pmysql]#  mysqld_safe Adding '/usr/lib/libjemalloc.so.1' to LD_PRELOAD for mysqld

    2017-06-24T02:31:06.679622Z mysqld_safe Logging to '/data/mysql/pmysql3330/data/error.log'.

    2017-06-24T02:31:06.685066Z mysqld_safe Logging to '/data/mysql/pmysql3330/data/error.log'.

    2017-06-24T02:31:06.788240Z mysqld_safe Starting mysqld daemon with databases from /data/mysql/pmysql3330/data

     

    3.10 恢复

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

     

    3.9 管理Log大小

    TokuDB保障日志文件能够会到结尾二次检查点。当日志文件达到100MB,就能运行二个新的文本。不管是否有检查点,全数的日记文件比checkpoint老的都会被撤废。假如检查点时间棉被服装置了不小的值,log的截断频率会缩减。暗中认可那些值为60s。

    TokuDB为种种展开的政工保存了回滚日志,各类log的文件大小和业务的职务和被核减保存到磁盘的分寸有关。回滚日志在相关事情完毕后会被截断。

     

    2.3 修改transparent_hugepage

    tokudb引擎须求运转透明大页,更加好的提供内部存款和储蓄器管理。

    [root@sutest244 percona5718]# cat /sys/kernel/mm/transparent_hugepage/enabled

    [always] madvise never

     

    需求修改为never,要是不修改,使用tokudb引擎的时候,会在error.log中报错

     

    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

     

    配备如下:

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

     

    2.3 修改transparent_hugepage

    tokudb引擎供给运维透明大页,更加好的提供内部存款和储蓄器管理。

    [root@sutest244 percona5718]# cat /sys/kernel/mm/transparent_hugepage/enabled

    [always] madvise never

     

    内需修改为never,即使不修改,使用tokudb引擎的时候,会在error.log中报错

     

    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

     

    布局如下:

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

     

    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.10 恢复

    回复是半自动的,TokuDB使用日志文件,和回滚日志来过来。恢复生机的时刻和和日志文件的轻重缓急和未压缩回滚日志大小有关。因而假如未有长日子运作的作业,那么恢复生机进程是快速的。

     

    **2.4 安装tokudb引擎跟percona client **

    官方网站下载后装置。

    rpm -ivhPercona-Server-shared-57-5.7.17-13.1.el6.x86_64.rpm

    rpm -ivhPercona-Server-client-57-5.7.17-13.1.el7.x86_64.rpm

    rpm -ivhPercona-Server-server-57-5.7.17-13.1.el6.x86_64.rpm

    rpm -ivh --force --nodeps Percona-Server-tokudb-57-5.7.17-13.1.el7.x86_64.rpm

    **2.4 安装tokudb引擎跟percona client **

    官方网站下载后装置。

    rpm -ivhPercona-Server-shared-57-5.7.17-13.1.el6.x86_64.rpm

    rpm -ivhPercona-Server-client-57-5.7.17-13.1.el7.x86_64.rpm

    rpm -ivhPercona-Server-server-57-5.7.17-13.1.el6.x86_64.rpm

    rpm -ivh --force --nodeps Percona-Server-tokudb-57-5.7.17-13.1.el7.x86_64.rpm

    3.12 进程追踪

    TokuDB有叁个种类来追踪长运维语句:

    ·         Bluk Load:当使用load data infile导入多量数量,使用show processlist命令能够查阅到速度分为2部分,已不是引玉之砖为:Inserted about 一千000 rows。其它一些是比例,提醒为Loading of data about 四分之一 done。

    ·         扩大索引,当使用alter table恐怕create index命令成立索引,show processlist凸显速度,会提示已经管理的行数。通过那一个纤细来证明进度。和bulk load类似,第一等第突显行管理速度,第二阶段展现百分比。

    ·         提交和撤废,当提交或然吊销一个事情,使用show processlist,会评估专业操作管理。

     

    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

     

    **2.5 启用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 for more installation details

      * See for an introduction to TokuDB

     

    使用 ps_tokudb_admin指令 :

    ps_tokudb_admin --enable -uroot -p  --sock=/tmp/pmysql.sock --defaults-file=/data/mysql/mysql3306.cnf

     

    若是平常,则是以下展现,不正规的话,看下前面包车型大巴安装步骤是还是不是少了

     

    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.

     

    设置生产后,能够在

     

    SHOW PLUGINS;

    SHOW ENGINES;

     

    TokuDB Version

    root@localhost:pmysql3330.sock  10:42:50 [(none)]>SELECT @@tokudb_version;

    ------------------

    | @@tokudb_version |

    ------------------

    | 5.7.17-13        |

    ------------------

    1 row in set (0.00 sec)

     

    **2.5 启用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 for more installation details

      * See for an introduction to TokuDB

     

    使用 ps_tokudb_admin指令 :

    ps_tokudb_admin --enable -uroot -p  --sock=/tmp/pmysql.sock --defaults-file=/data/mysql/mysql3306.cnf

     

    譬如正常,则是以下彰显,不健康的话,看下后边的设置步骤是或不是少了

     

    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.

     

    安装生产后,能够在

     

    SHOW PLUGINS;

    SHOW ENGINES;

     

    TokuDB Version

    root@localhost:pmysql3330.sock  10:42:50 [(none)]>SELECT @@tokudb_version;

    ------------------

    | @@tokudb_version |

    ------------------

    | 5.7.17-13        |

    ------------------

    1 row in set (0.00 sec)

     

    3.13 迁移到TokuDB

    为了吧表转化到TokuDB引擎,能够动用alter table engine来修改,若是您想要从文件中程导弹入数据,那么使用load data infile,不要采纳mysqldump,因为有些慢。

     

    3.12 进程追踪

    TokuDB有一个种类来追踪长运营语句:

    ·         Bluk Load:当使用load data infile导入多量数码,使用show processlist命令能够查阅到速度分为2部分,已不是一得之见为:Inserted about 一千000 rows。此外一些是比例,提醒为Loading of data about 53% done。

    ·         扩展索引,当使用alter table恐怕create index命令成立索引,show processlist彰显速度,会提示已经处理的行数。通过这一个纤细来评释进程。和bulk load类似,第一等级显示行管理速度,第二等级展现百分比。

    ·         提交和收回,当提交也许撤除多少个事业,使用show processlist,会评估业务操作管理。

     

    3 文件管理及深入分析

    3 文件管理及深入分析

    4 TokuDB后台 ANALYZE TABLE

    TokuDB有二个后台线程根据修改的评估来机关分析表。

    3.13 迁移到TokuDB

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

     

    3.1 设置tokudb引擎后的激增文件

    在数据目录中,新增加了8个公文

    [root@sutest242 data]# pwd

    /data/mysql/pmysql3330/data

    [root@sutest242 data]# ls -lh | grep tokudb

    -rw-r-----. 1 mysql mysql  16K Jun 24 10:42 tokudb.directory

    -rw-r-----. 1 mysql mysql  16K Jun 24 10:42 tokudb.environment

    -rw-------. 1 mysql mysql    0 Jun 24 10:42 __tokudb_lock_dont_delete_me_data

    -rw-------. 1 mysql mysql    0 Jun 24 10:42 __tokudb_lock_dont_delete_me_environment

    -rw-------. 1 mysql mysql    0 Jun 24 10:42 __tokudb_lock_dont_delete_me_logs

    -rw-------. 1 mysql mysql    0 Jun 24 10:42 __tokudb_lock_dont_delete_me_recovery

    -rw-------. 1 mysql mysql    0 Jun 24 10:42 __tokudb_lock_dont_delete_me_temp

    -rw-r-----. 1 mysql mysql  16K Jun 24 10:42 tokudb.rollback

     

    1. tokudb.environment:tokudb赢取的处境变量存款和储蓄文件,像创制时间、当前版本号
    2. tokudb.rollback:每三个tokudb的事情,都有温馨的回滚日志,具体回滚日志分配相关消息记录在此间
    3. tokudb.directory:映射文件夹的名字

    3.1 设置tokudb引擎后的增加产量文件

    在数量目录中,新增加了8个文件

    [root@sutest242 data]# pwd

    /data/mysql/pmysql3330/data

    [root@sutest242 data]# ls -lh | grep tokudb

    -rw-r-----. 1 mysql mysql  16K Jun 24 10:42 tokudb.directory

    -rw-r-----. 1 mysql mysql  16K Jun 24 10:42 tokudb.environment

    -rw-------. 1 mysql mysql    0 Jun 24 10:42 __tokudb_lock_dont_delete_me_data

    -rw-------. 1 mysql mysql    0 Jun 24 10:42 __tokudb_lock_dont_delete_me_environment

    -rw-------. 1 mysql mysql    0 Jun 24 10:42 __tokudb_lock_dont_delete_me_logs

    -rw-------. 1 mysql mysql    0 Jun 24 10:42 __tokudb_lock_dont_delete_me_recovery

    -rw-------. 1 mysql mysql    0 Jun 24 10:42 __tokudb_lock_dont_delete_me_temp

    -rw-r-----. 1 mysql mysql  16K Jun 24 10:42 tokudb.rollback

     

    1. tokudb.environment:tokudb赢取的景况变量存款和储蓄文件,像创造时间、当前版本号
    2. tokudb.rollback:每贰个tokudb的政工,都有谈得来的回滚日志,具体回滚日志分配相关新闻记录在此处
    3. tokudb.directory:映射文件夹的名字

    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_STANDA奔驰G级D:使用已经存在分析算法。

    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 TokuDB后台 ANALYZE TABLE

    TokuDB有一个后台线程遵照修改的评估来机关深入分析表。

    3.2 tokudb文件管理

    能够统一把tokudb的数据文件存款和储蓄在有些文件夹下,参数是 tokudb_data_dir

    能够统一把tokudb的不经常文件存款和储蓄在有个别文件夹下,参数是 tokudb_tmp_dir

    能够统一把tokudb的日志文件存款和储蓄在有个别文件夹下,参数是 tokudb_log_dir

    • 怎么迁移:
      1. 关门数据库服务
      2. 陈设文件中丰硕可能涂改 tokudb_data_dir、tokudb_tmp_dir、、、
      3. 创设 tokudb 文件的仓库储存目录
      4. 运动文件
        1. 移动 *.tokudb 文件 跟 __tokudb_lock_dont_delete_me_data 到新的贮存目录
        2. 移动 __tokudb_lock_dont_delete_me_temp 到新的 存款和储蓄目录
        3. 移动 到新的 log*.tokulog* files and your __tokudb_lock_dont_delete_me_logs file 存款和储蓄目录
      5. 运行数据库服务器
      6. 翻开文件的寄放地方
        1. SELECT dictionary_name, internal_file_name FROM INFORMATION_SCHEMA.TokuDB_file_map;

    3.2 tokudb文件管理

    能够统一把tokudb的数据文件存款和储蓄在有些文件夹下,参数是 tokudb_data_dir

    可以统一把tokudb的不常文件存储在有些文件夹下,参数是 tokudb_tmp_dir

    可以统一把tokudb的日记文件存款和储蓄在有些文件夹下,参数是 tokudb_log_dir

    • 怎么样迁移:
      1. 闭馆数据库服务
      2. 配置文件中增进大概修改 tokudb_data_dir、tokudb_tmp_dir、、、
      3. 创建 tokudb 文件的积存目录
      4. 活动文件
        1. 移动 *.tokudb 文件 跟 __tokudb_lock_dont_delete_me_data 到新的仓库储存目录
        2. 移动 __tokudb_lock_dont_delete_me_temp 到新的 存款和储蓄目录
        3. 移动 到新的 log*.tokulog* files and your __tokudb_lock_dont_delete_me_logs file 存款和储蓄目录
      5. 启航数据库服务器
      6. 查看文件的存放地点
        1. SELECT dictionary_name, internal_file_name FROM INFORMATION_SCHEMA.TokuDB_file_map;

    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.1 后台作业

    后台作业调解是不久的,假诺在关服务的时候有后台作业运维,那么会被结束。当服务重启已经运维的都会被忽略,须求再度来,假若手动调用ANALYZE TABLE和后台作业争辩,那么后台作业会被裁撤,能够经过表TOKUDB_BACKGROUND_JOB_STATUS查看后台作业是或不是运维。

    新的tokudb_analyze_in_background变量能够用来落实调整时候ANALYZE TABLE是后台运营照旧在前台。tokudb_analyze_mode用来调控ANALYZE TABLE的一言一动。

    tokudb_analyze_mode变量用来落到实处对ANALYZE TABLE的垄断(monopoly):

    TOKUDB_ANALYZE_CANCEL:撤废在一定表上任何运维的依然应调用的学业。

    TOKUDB_ANALYZE_STANDARAV4D:使用已经存在深入分析算法。

    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。

    **3.3 难题剖析**

    information_schemaCurry边的照管系统视图深入分析

     

    root@localhost:pmysql3330.sock  17:15:33 [information_schema]>show tables like '%tokudb%';

    -----------------------------------------

    | Tables_in_information_schema (%tokudb%) |

    -----------------------------------------

    | TokuDB_fractal_tree_block_map           |

    | TokuDB_lock_waits                       |

    | TokuDB_trx                              |

    | TokuDB_file_map                         |

    | TokuDB_locks                            |

    | TokuDB_fractal_tree_info                |

    | TokuDB_background_job_status            |

    -----------------------------------------

    7 rows in set (0.00 sec)

     

     

    **3.3 主题素材解析**

    information_schemaCurry边的呼应系统视图分析

     

    root@localhost:pmysql3330.sock  17:15:33 [information_schema]>show tables like '%tokudb%';

    -----------------------------------------

    | Tables_in_information_schema (%tokudb%) |

    -----------------------------------------

    | TokuDB_fractal_tree_block_map           |

    | TokuDB_lock_waits                       |

    | TokuDB_trx                              |

    | TokuDB_file_map                         |

    | TokuDB_locks                            |

    | TokuDB_fractal_tree_info                |

    | TokuDB_background_job_status            |

    -----------------------------------------

    7 rows in set (0.00 sec)

     

     

    4.3 系统变量

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

    tokudb_analyze_mode:

        

    TOKUDB_ANALYZE_CANCEL:裁撤在一定表上任何运维的要么应调用的功课。

    TOKUDB_ANALYZE_STANDA中华VD:使用已经存在剖判算法。

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

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

    tokudb_analyze_time:会话变量支配分析操作开支的轩然大波。

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

    tokudb_cardinality_scale_percent:弱化只怕加重索引或然表的基数个性,比如innodb写死一半,在400行数据,肆10个唯一值,公式如下:(200/40 *tokudb_cardinality_scale) / 100

    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 备份

        tokudb怎么样备份呢?

       单表也得以使用mysqldump。全库呢? tokudb引擎全库备份,官方版本是使用 tokudb_backup 引擎来进展,扶助在线热备。也正是,供给其余安装那几个引擎,安装相对轻松,使用 ps_tokudb_admin 重启数据库服务预加载引擎 ps_tokudb_admin。

    4 备份

        tokudb如何备份呢?

       单表也足以行使mysqldump。全库呢? tokudb引擎全库备份,官方版本是采纳 tokudb_backup 引擎来拓展,帮忙在线热备。也正是,供给别的安装那个引擎,安装相对简便易行,使用 ps_tokudb_admin 重启数据库服务预加载引擎 ps_tokudb_admin。

    4.4 information_schema相关表

    INFORMATION_SCHEMA.TOKUDB_BACKGROUND_JOB_STATUS

    4.3 系统变量

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

    tokudb_analyze_mode:

        

    TOKUDB_ANALYZE_CANCEL:撤销在特定表上任何运营的依旧应调用的作业。

    TOKUDB_ANALYZE_STANDA大切诺基D:使用已经存在分析算法。

    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.1 安器材份引擎

       首先,确认保证数据库是开行平常景况,试行ps_tokudb_admin,如果数据库配置文件 cnf不是在 /etc/my.cnf,要求手动指定--defaults-file,防止不能够找到配置文件写入 preload-hotbackup。

     

    [root@sutest242 pmysql]# ps_tokudb_admin --enable-backup --socket=/tmp/pmysql3330.sock -uroot -p*** --defaults-file=/data/mysql/pmysql3330.cnf

    Checking SELinux status...

    INFO: SELinux is in permissive mode.

     

    Checking if Percona Server is running with jemalloc enabled...

    INFO: Percona Server is running with jemalloc enabled.

     

    Checking transparent huge pages status on the system...

    INFO: Transparent huge pages are currently disabled on the system.

     

    Checking if thp-setting=never option is already set in config file...

    INFO: Option thp-setting=never is not set in the config file.

          (needed only if THP is not disabled permanently on the system)

     

    Checking if preload-hotbackup option is already set in config file...

    INFO: Option preload-hotbackup is not set in the config file.

     

    Checking TokuDB engine plugin status...

    INFO: TokuDB engine plugin is installed.

     

    Checking TokuBackup plugin status...

    INFO: TokuBackup plugin is not installed.

     

    Adding preload-hotbackup option into /data/mysql/pmysql3330.cnf

    INFO: Successfully added preload-hotbackup option into /data/mysql/pmysql3330.cnf

    PLEASE RESTART MYSQL SERVICE AND RUN THIS SCRIPT AGAIN TO FINISH INSTALLATION!

     

     

        这年,能够看出提醒:Successfully added preload-hotbackup option into /data/mysql/pmysql3330.cnf,查看配置文件,在 mysqld_safe 配置中,添增添了一行 配置 :preload-hotbackup。

     

    [mysqld_safe]

    preload-hotbackup

    malloc-lib=/usr/lib/libjemalloc.so.1

     

     

        重启数据库服务,使用 mysqladmin关闭,mysqld_safe 启动

     

     

    [root@sutest242 pmysql]# /usr/local/pmysql/bin/mysqladmin --socket=/tmp/pmysql3330.sock -uroot -p shutdown

    Enter password:

    2017-06-26T03:48:20.192200Z mysqld_safe mysqld from pid file /data/mysql/pmysql3330/data/mysql.pid ended

    [1]   Done                    ./bin/mysqld_safe --defaults-file=/data/mysql/pmysql3330.cnf

     

    [root@sutest242 pmysql]# ./bin/mysqld_safe --defaults-file=/data/mysql/pmysql3330.cnf &

    [1] 10069

    [root@sutest242 pmysql]#  mysqld_safe Adding '/usr/lib/libjemalloc.so.1' to LD_PRELOAD for mysqld

     mysqld_safe Adding '/usr/lib64/libHotBackup.so' to LD_PRELOAD for mysqld

    2017-06-26T03:50:32.005677Z mysqld_safe Logging to '/data/mysql/pmysql3330/data/error.log'.

    2017-06-26T03:50:32.013350Z mysqld_safe Logging to '/data/mysql/pmysql3330/data/error.log'.

    2017-06-26T03:50:32.099577Z mysqld_safe Starting mysqld daemon with databases from /data/mysql/pmysql3330/data

     

       这里有个地点注意下, libHotBackup.so 记得要cp到 /usr/lib 大概/usr/lib64的目录下,不然mysqld_safe运营数据库的时候,会报错如下:

     

    mysqld_safe Adding '/usr/lib/libjemalloc.so.1' to LD_PRELOAD for mysqld

    mysqld_safe Adding '/opt/percona/Percona-Server-5.7.17-13-Linux.x86_64.ssl101/lib/libHotBackup.so' to LD_PRELOAD for mysqld

    mysqld_safe ld_preload libraries can only be loaded from system directories (/usr/lib64, /usr/lib, /usr/local/pmysql/lib)

     

        这种状态下,它检查到 安装目录下有 libHotBackup.so 引擎文件,会利用这一个加载,要求 把这几个文件拷贝到 /usr/lib64 或然/usr/lib,再重新加载那一个文件,然后再一次实行 mysqld_saft运转服务。

     

    cp /opt/percona/Percona-Server-5.7.17-13-Linux.x86_64.ssl101/lib/libHotBackup.so /usr/lib/libHotBackup.so

    mv /opt/percona/Percona-Server-5.7.17-13-Linux.x86_64.ssl101/lib/libHotBackup.so /opt/percona/Percona-Server-5.7.17-13-Linux.x86_64.ssl101/lib/libHotBackup.so.bak

     

        数据库运行后,安器材份引擎

     

    [root@sutest242 pmysql]# ps_tokudb_admin --enable-backup --socket=/tmp/pmysql3330.sock -uroot -p

    Enter password:

     

    Checking SELinux status...

    INFO: SELinux is in permissive mode.

     

    Checking if Percona Server is running with jemalloc enabled...

    INFO: Percona Server is running with jemalloc enabled.

     

    Checking transparent huge pages status on the system...

    INFO: Transparent huge pages are currently disabled on the system.

     

    Checking if thp-setting=never option is already set in config file...

    INFO: Option thp-setting=never is not set in the config file.

          (needed only if THP is not disabled permanently on the system)

     

    Checking if preload-hotbackup option is already set in config file...

    INFO: Option preload-hotbackup is set in the config file.

     

    Checking TokuDB engine plugin status...

    INFO: TokuDB engine plugin is installed.

     

    Checking TokuBackup plugin status...

    INFO: TokuBackup plugin is not installed.

     

    Checking if Percona Server is running with libHotBackup.so preloaded...

    INFO: Percona Server is running with libHotBackup.so preloaded.

     

    Adding thp-setting=never option into /etc/my.cnf

    INFO: Successfully added thp-setting=never option into /etc/my.cnf

     

    Installing TokuBackup plugin...

    INFO: Successfully installed TokuBackup plugin.

     

     

        检查

     

    root@localhost:pmysql3330.sock  14:34:21 [(none)]>show plugins;

    ......

    | TokuDB                        | ACTIVE   | STORAGE ENGINE     | ha_tokudb.so     | GPL     |

    | TokuDB_background_job_status  | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so     | GPL     |

    | TokuDB_file_map               | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so     | GPL     |

    | TokuDB_fractal_tree_block_map | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so     | GPL     |

    | TokuDB_fractal_tree_info      | 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_新葡亰496net,trx                    | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so     | GPL     |

    | tokudb_backup                 | ACTIVE   | DAEMON             | tokudb_backup.so | GPL     |

    ------------------------------- ---------- -------------------- ------------------ ---------

    59 rows in set (0.00 sec)

     

    4.1 安器具份引擎

       首先,确定保证数据库是开发银行不奇怪处境,推行ps_tokudb_admin,倘使数据库配置文件 cnf不是在 /etc/my.cnf,须要手动指定--defaults-file,制止无法找到配置文件写入 preload-hotbackup。

     

    [root@sutest242 pmysql]# ps_tokudb_admin --enable-backup --socket=/tmp/pmysql3330.sock -uroot -p*** --defaults-file=/data/mysql/pmysql3330.cnf

    Checking SELinux status...

    INFO: SELinux is in permissive mode.

     

    Checking if Percona Server is running with jemalloc enabled...

    INFO: Percona Server is running with jemalloc enabled.

     

    Checking transparent huge pages status on the system...

    INFO: Transparent huge pages are currently disabled on the system.

     

    Checking if thp-setting=never option is already set in config file...

    INFO: Option thp-setting=never is not set in the config file.

          (needed only if THP is not disabled permanently on the system)

     

    Checking if preload-hotbackup option is already set in config file...

    INFO: Option preload-hotbackup is not set in the config file.

     

    Checking TokuDB engine plugin status...

    INFO: TokuDB engine plugin is installed.

     

    Checking TokuBackup plugin status...

    INFO: TokuBackup plugin is not installed.

     

    Adding preload-hotbackup option into /data/mysql/pmysql3330.cnf

    INFO: Successfully added preload-hotbackup option into /data/mysql/pmysql3330.cnf

    PLEASE RESTART MYSQL SERVICE AND RUN THIS SCRIPT AGAIN TO FINISH INSTALLATION!

     

     

        今年,能够看看提醒:Successfully added preload-hotbackup option into /data/mysql/pmysql3330.cnf,查看配置文件,在 mysqld_safe 配置中,加多多了一行 配置 :preload-hotbackup。

     

    [mysqld_safe]

    preload-hotbackup

    malloc-lib=/usr/lib/libjemalloc.so.1

     

     

        重启数据库服务,使用 mysqladmin关闭,mysqld_safe 启动

     

     

    [root@sutest242 pmysql]# /usr/local/pmysql/bin/mysqladmin --socket=/tmp/pmysql3330.sock -uroot -p shutdown

    Enter password:

    2017-06-26T03:48:20.192200Z mysqld_safe mysqld from pid file /data/mysql/pmysql3330/data/mysql.pid ended

    [1]   Done                    ./bin/mysqld_safe --defaults-file=/data/mysql/pmysql3330.cnf

     

    [root@sutest242 pmysql]# ./bin/mysqld_safe --defaults-file=/data/mysql/pmysql3330.cnf &

    [1] 10069

    [root@sutest242 pmysql]#  mysqld_safe Adding '/usr/lib/libjemalloc.so.1' to LD_PRELOAD for mysqld

     mysqld_safe Adding '/usr/lib64/libHotBackup.so' to LD_PRELOAD for mysqld

    2017-06-26T03:50:32.005677Z mysqld_safe Logging to '/data/mysql/pmysql3330/data/error.log'.

    2017-06-26T03:50:32.013350Z mysqld_safe Logging to '/data/mysql/pmysql3330/data/error.log'.

    2017-06-26T03:50:32.099577Z mysqld_safe Starting mysqld daemon with databases from /data/mysql/pmysql3330/data

     

       这里有个地点注意下, libHotBackup.so 记得要cp到 /usr/lib 只怕/usr/lib64的目录下,不然mysqld_safe启动数据库的时候,会报错如下:

     

    mysqld_safe Adding '/usr/lib/libjemalloc.so.1' to LD_PRELOAD for mysqld

    mysqld_safe Adding '/opt/percona/Percona-Server-5.7.17-13-Linux.x86_64.ssl101/lib/libHotBackup.so' to LD_PRELOAD for mysqld

    mysqld_safe ld_preload libraries can only be loaded from system directories (/usr/lib64, /usr/lib, /usr/local/pmysql/lib)

     

        这种意况下,它检查到 安装目录下有 libHotBackup.so 引擎文件,会使用这么些加载,须求 把那些文件拷贝到 /usr/lib64 只怕/usr/lib,再另行加载这几个文件,然后再次实践 mysqld_saft运转服务。

     

    cp /opt/percona/Percona-Server-5.7.17-13-Linux.x86_64.ssl101/lib/libHotBackup.so /usr/lib/libHotBackup.so

    mv /opt/percona/Percona-Server-5.7.17-13-Linux.x86_64.ssl101/lib/libHotBackup.so /opt/percona/Percona-Server-5.7.17-13-Linux.x86_64.ssl101/lib/libHotBackup.so.bak

     

        数据库运维后,安道具份引擎

     

    [root@sutest242 pmysql]# ps_tokudb_admin --enable-backup --socket=/tmp/pmysql3330.sock -uroot -p

    Enter password:

     

    Checking SELinux status...

    INFO: SELinux is in permissive mode.

     

    Checking if Percona Server is running with jemalloc enabled...

    INFO: Percona Server is running with jemalloc enabled.

     

    Checking transparent huge pages status on the system...

    INFO: Transparent huge pages are currently disabled on the system.

     

    Checking if thp-setting=never option is already set in config file...

    INFO: Option thp-setting=never is not set in the config file.

          (needed only if THP is not disabled permanently on the system)

     

    Checking if preload-hotbackup option is already set in config file...

    INFO: Option preload-hotbackup is set in the config file.

     

    Checking TokuDB engine plugin status...

    INFO: TokuDB engine plugin is installed.

     

    Checking TokuBackup plugin status...

    INFO: TokuBackup plugin is not installed.

     

    Checking if Percona Server is running with libHotBackup.so preloaded...

    INFO: Percona Server is running with libHotBackup.so preloaded.

     

    Adding thp-setting=never option into /etc/my.cnf

    INFO: Successfully added thp-setting=never option into /etc/my.cnf

     

    Installing TokuBackup plugin...

    INFO: Successfully installed TokuBackup plugin.

     

     

        检查

     

    root@localhost:pmysql3330.sock  14:34:21 [(none)]>show plugins;

    ......

    | TokuDB                        | ACTIVE   | STORAGE ENGINE     | ha_tokudb.so     | GPL     |

    | TokuDB_background_job_status  | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so     | GPL     |

    | TokuDB_file_map               | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so     | GPL     |

    | TokuDB_fractal_tree_block_map | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so     | GPL     |

    | TokuDB_fractal_tree_info      | 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_trx                    | ACTIVE   | INFORMATION SCHEMA | ha_tokudb.so     | GPL     |

    | tokudb_backup                 | ACTIVE   | DAEMON             | tokudb_backup.so | GPL     |

    ------------------------------- ---------- -------------------- ------------------ ---------

    59 rows in set (0.00 sec)

     

    5 TokuDB变量

    具体看:

    4.4 information_schema相关表

    INFORMATION_SCHEMA.TOKUDB_BACKGROUND_JOB_STATUS

    **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不协助增量备份
    • 配置
      • 在安插文件中安装 innodb_use_native_aio = OFF,重启数据库实例,这里注意,运行数据库须要到 /usr/local/pmysql 目录下,实施 ./bin/mysqld_safe --defaults-file=/data/mysql/pmysql3330.cnf
      • 树立文件夹 /data/backup/pmysql3330 ,并授权
        • chown -R mysql:mysql /data/backup

          备份分为第22中学,一种是实例备份,一种是点名备份,近些日子tokudb_backup仅补助整个实例备份,帮衬混合引擎,钦赐备份,近年来应用mysqldump方法。

    • 实例备份
      • set tokudb_backup_dir='/data/backup/pmysql3330';
      • 进行那一个命令则始于备份,备份进程中,协理读写,
    • 备份出错验证

    root@localhost:pmysql3330.sock  10:57:13 [(none)]>select @@tokudb_backup_last_error;

    ----------------------------

    | @@tokudb_backup_last_error |

    ----------------------------

    |                         13 |

    ----------------------------

    1 row in set (0.00 sec)

     

    root@localhost:pmysql3330.sock  10:57:30 [(none)]>select @@tokudb_backup_last_error_string;

    ---------------------------------------------------

    | @@tokudb_backup_last_error_string                 |

    ---------------------------------------------------

    | tokudb backup couldn't create needed directories. |

    ---------------------------------------------------

    1 row in set (0.00 sec)

    • 报表备份

    [root@sutest242 local]# /usr/local/pmysql/bin/mysqldump --socket=/tmp/pmysql3330.sock -uroot -p --set-gtid-purged=OFF --databases toku --tables tbback_toku > /tmp/tbback_toku.sql

    Enter password:

    • 实例备份后复原
      • tokudbback未有一定的函数进行数据复苏,能够使用cp可能sync到 数据目录,恐怕直接动用备份目录
      • 小心权限修改

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

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

     

     

    **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不援助增量备份
    • 配置
      • 在布署文件中安装 innodb_use_native_aio = OFF,重启数据库实例,这里注意,运维数据库须要到 /usr/local/pmysql 目录下,实施 ./bin/mysqld_safe --defaults-file=/data/mysql/pmysql3330.cnf
      • 创立文件夹 /data/backup/pmysql3330 ,并授权
        • chown -R mysql:mysql /data/backup

          备份分为第22中学,一种是实例备份,一种是点名备份,近来tokudb_backup仅帮衬任何实例备份,援助混合引擎,钦点备份,前段时间应用mysqldump方法。

    • 实例备份
      • set tokudb_backup_dir='/data/backup/pmysql3330';
      • 实行那么些命令则始于备份,备份进程中,帮衬读写,
    • 备份出错验证

    root@localhost:pmysql3330.sock  10:57:13 [(none)]>select @@tokudb_backup_last_error;

    ----------------------------

    | @@tokudb_backup_last_error |

    ----------------------------

    |                         13 |

    ----------------------------

    1 row in set (0.00 sec)

     

    root@localhost:pmysql3330.sock  10:57:30 [(none)]>select @@tokudb_backup_last_error_string;

    ---------------------------------------------------

    | @@tokudb_backup_last_error_string                 |

    ---------------------------------------------------

    | tokudb backup couldn't create needed directories. |

    ---------------------------------------------------

    1 row in set (0.00 sec)

    • 报表备份

    [root@sutest242 local]# /usr/local/pmysql/bin/mysqldump --socket=/tmp/pmysql3330.sock -uroot -p --set-gtid-purged=OFF --databases toku --tables tbback_toku > /tmp/tbback_toku.sql

    Enter password:

    • 实例备份后回复
      • tokudbback未有一定的函数举行数据苏醒,可以利用cp或许sync到 数据目录,只怕直接动用备份目录
      • 瞩目权限修改

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

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

     

     

    6 TokuDB Troubleshooting

    5 TokuDB变量

    具体看:

    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命令恐怕会导致错误,ECRUISERROLacrosse 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 TokuDB Troubleshooting

    6.2 TukoDB锁

    TokuDB使用key range lock来落到实处串行事务,在专门的学问进度中获取,在工作停止时释放锁。

    TokuDB把那一个数据结构存放在锁树中。锁树存放了各类职业的range锁。其它锁树也保留了因为冲突未有被获取的锁。当专门的学问退出,那么这一个等待是锁也会被剥离。借使pengding的锁没有被赋予,那么锁超时后也会退出。

    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命令只怕会产生错误,ECR-VRO帕杰罗 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.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 TukoDB锁

    TokuDB使用key range lock来完结串行事务,在业务进度中获得,在事情截止时释放锁。

    TokuDB把那么些数据结构存放在锁树中。锁树存放了各种业务的range锁。此外锁树也保留了因为争持未有被获取的锁。当事情退出,那么这个等待是锁也会被剥离。假如pengding的锁没有被给予,那么锁超时后也会退出。

    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.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.3 TOKUDB_LOCK_WAITS表

    Tokudb_lock_waits表也在information_schema中:

    SELECT * FROM INFORMATION_SCHEMA.TOKUDB_LOCK_WAITS;

    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.3 引擎状态

    具体看:

    6.2.3 TOKUDB_LOCK_WAITS表

    Tokudb_lock_waits表也在information_schema中:

    SELECT * FROM INFORMATION_SCHEMA.TOKUDB_LOCK_WAITS;

    6.4 全局状态变量

    具体看:

    6.3 引擎状态

    具体看:

    7 Percona TokuBackup

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

    6.4 全局状态变量

    具体看:

    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 Percona TokuBackup

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

    7.2 备份

    备份的目录必须存在,能够写为空,并且属于mysql运营用户。一旦目录被成立备份能够行使以下命令备份:

    mysql> set tokudb_backup_dir='/path_to_empty_directory';

    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.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.2 备份

    备份的目录必须存在,能够写为空,并且属于mysql运营用户。一旦目录被创制备份能够利用以下命令备份:

    mysql> set tokudb_backup_dir='/path_to_empty_directory';

    7.4 推荐配置

    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.1 监察和控制进度

    TokuBackup更新processlist的景况,呈现备份的快慢,能够行使show processlist查看。

    7.4 推荐配置

    7.4.2 排除源文件

    能够因此正则表明式排除文件恐怕目录,设置在tokudb_backup_exclude会话变量中。借使源文件名负荷那么些正则表明式,那么就能够被扫除。举个例子lost found目录:

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

    7.4.1 监察和控制进程

    TokuBackup更新processlist的情事,展现备份的速度,可以动用show processlist查看。

    7.4.3 备份率阀值

    能够钦赐备份的阀值,tokudb_backup_throttle会话等级变量。这几个变量表示每秒字节传输率。

    7.4.2 排除源文件

    能够经过正则表明式排除文件也许目录,设置在tokudb_backup_exclude会话变量中。如果源文件名负荷这么些正则说明式,那么就能被免除。比如lost found目录:

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

    7.4.4 限制备份指标

    你能够限制本地指标目录,tokudb_backup_allowed_prefix系统变量。暗许是null,备份未有限定指标目录。参数是只读的只可以通过my.cnf配置。

    7.4.3 备份率阀值

    可以钦定备份的阀值,tokudb_backup_throttle会话等级变量。那一个变量表示每秒字节传输率。

    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.4 限制备份指标

    您能够界定本地指标目录,tokudb_backup_allowed_prefix系统变量。暗中认可是null,备份未有限定目的目录。参数是只读的只好通过my.cnf配置。

    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,那么就不能够复苏备份。

    ·         不帮助增量备份。

    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. |

    ---------------------------------------------------

    8 FAQ

    具体看:

     

    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

    具体看:

     

    TokuDB,perconatokudb Percona TokuDB Percona TokuDB . 1 1. TokuDB 表达 ... 1 2. TokuDB 安装 ... 1 3. 行使 TokuDB . 1 3.1 急忙插入和富索引 ... 1 3.2 聚焦 se...

    本文由新葡亰496net发布于网络数据库,转载请注明出处:新葡亰496net:MySQL_第三方数据库引擎_tokudb

    关键词:

上一篇:没有了

下一篇:没有了