澳门在线威尼斯官方 > 电脑数据库 > Percona TokuDB

原标题:Percona TokuDB

浏览次数:162 时间:2019-09-13

4.2 自动深入分析

为了落成后台的分析和搜集计数计算每一个表上都维护了八个增量值,这一个值实际不是保留的,当服务重启就能够棉被服装置为0.这一个记录了具备的写操作。当以此值超越了tokudb_auto_analyze设置的值,那么依据当下对话的设置会施行二个深入分析。别的对于这几个表的分区就能够告一段落,除非那个深入分析变成。当深入分析到位,值被设置为0,重新总计。

 

别的分析产生,状态值都会被举报到服务。半时反转解析,也被实现,也正是说假诺超越二分之一的tokudb_analyze_time时间过去,然而还从未深入分析到数据量的50%,那么深入分析会重启,从最后一条数据初叶往上深入分析,况兼把深入分析结构丰硕到事先的结果上。

 

对于小表,自动剖判也许每一遍修改都会施行。出发更是如下假使(table_delta >= ((table_rows *tokudb_auto_analyze) / 100))那么就最早运营ANALYZE TABLE。假如顾客手动调用ANALYZE TABLE并且tokudb_auto_analyze被运维了而且未有争论的后台作业,客商运维的ANALYZE TABLE会和增量值超越了上线同样,达成后会吧增量设置为0.

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插件。

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命令大概会导致错误,EPAJEROROSportage 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不会。

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凯雷德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。

3.  使用TokuDB

7.4.1 监察和控制进程

TokuBackup更新processlist的情况,展现备份的进程,能够使用show processlist查看。

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

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

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;

7 Percona TokuBackup

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

3.13 迁移到TokuDB

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

 

6.2 TukoDB锁

TokuDB使用key range lock来兑现串行事务,在作业进度中得到,在作业甘休时释放锁。

TokuDB把那些数据结构寄放在锁树中。锁树存放了每一个业务的range锁。别的锁树也保留了因为争持未有被拿走的锁。当事情退出,那么这么些等待是锁也会被剥离。固然pengding的锁未有被予以,那么锁超时后也会退出。

4 TokuDB后台 ANALYZE TABLE

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

7.4.1 监控进程

TokuBackup更新processlist的境况,展现备份的进程,能够应用show processlist查看。

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

7.2 备份

备份的目录必需存在,能够写为空,况且属于mysql运维顾客。一旦目录被创设备份能够选择以下命令备份:

mysql> set tokudb_backup_dir='/path_to_empty_directory';

4.3 系统变量

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

tokudb_analyze_mode:

    

TOKUDB_ANALYZE_CANCEL:撤消在一定表上任何运转的照旧应调用的学业。

TOKUDB_ANALYZE_STANDA昂CoraD:使用已经存在深入分析算法。

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

3.12 进度追踪

TokuDB有三个系统来追踪长运维语句:

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

·         扩大索引,当使用alter table或然create index命令创立索引,show processlist展现速度,会唤醒已经管理的行数。通过那么些苗条来证实进程。和bulk load类似,第一等第呈现行管理速度,第二级别展现百分比。

·         提交和撤除,当提交或许撤消三个事务,使用show processlist,会评估专门的工作操作管理。

 

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;

4 TokuDB后台 ANALYZE TABLE

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

1.  TokuDB说明

具体看:

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

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

 

7.4 推荐配置

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

具体看:

3.6 修改表的缩减

修改表的压缩语法如下:

ALTER TABLE table

  ROW_FORMAT=row_format;

注意:

       修改表偶的收缩至会影响性写入的多寡。修改表压缩之后方可由此OPTIMZE TABLE把装有的block全体写三次。

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命令只怕会造成错误,E福睿斯ROCR-V 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不会。

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

4.4 information_schema相关表

INFORMATION_SCHEMA.TOKUDB_BACKGROUND_JOB_STATUS

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使用富索引,让更加快的目录,能够让查询越来越快。比如覆盖或然聚焦索引。

 

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行数据,39个独一值,公式如下:(200/40 *tokudb_cardinality_scale) / 100

6.2.3 TOKUDB_LOCK_WAITS表

Tokudb_lock_waits表也在information_schema中:

SELECT * FROM INFORMATION_SCHEMA.TOKUDB_LOCK_WAITS;

6.3 引擎状态

具体看:

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

 

1.  TokuDB说明

具体看:

3.9 管理Log大小

TokuDB保险日志文件能够会到最终三次检查点。当日志文件达到100MB,就能运行一个新的文本。不管是或不是有检查点,全数的日记文件比checkpoint老的都会被抛弃。借使检查点时间被设置了十分大的值,log的截断频率会削减。暗中同意这一个值为60s。

TokuDB为各样打开的作业保存了回滚日志,各样log的文件大小和业务的任务和被减弱保存到磁盘的高低有关。回滚日志在有关事情实现后会被截断。

 

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;

7.2 备份

备份的目录必需存在,能够写为空,况且属于mysql运行客商。一旦目录被成立备份可以动用以下命令备份:

mysql> set tokudb_backup_dir='/path_to_empty_directory';

3.10 恢复

复原是机关的,TokuDB使用日志文件,和回滚日志来过来。复苏的时光和和日志文件的高低和未压缩回滚日志大小有关。因而若无长日子运作的工作,那么恢复生机进程是非常的慢的。

 

3.8 事务和ACID包容恢复生机

暗中认可,Tokudb检查有着检查点之间的开拓的表和日志的改造,所以在系统崩溃的,Tokudb会复苏全数的表大ACID包容状态。全体的交付业务都会被影响在表上,并且未有交给的事情都会被回滚。

私下认可检查点60秒实行三回,如若检查点必要愈来愈多的实施,那么下一个检查点会即刻执行。这几个和日志文件截断的效用有关。客商能够利用flush logs命令施行检查点。当数据库关闭会施行检查点并且撤除全数的感叹事务。日志在重启的时候被截断。

3.13 迁移到TokuDB

为了吧表转化到TokuDB引擎,可以应用alter table engine来修改,假使您想要从文件中程导弹入数据,那么使用load data infile,不要选择mysqldump,因为微微慢。

 

7.4.3 备份率阀值

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

本文由澳门在线威尼斯官方发布于电脑数据库,转载请注明出处:Percona TokuDB

关键词:

上一篇:没有了

下一篇:没有了