percona-toolkit的安装和使用

percona-toolkit简介

percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括:

  • 检查master和slave数据的一致性
  • 有效地对记录进行归档
  • 查找重复的索引
  • 对服务器信息进行汇总
  • 分析来自日志和tcpdump的查询
  • 当系统出问题的时候收集重要的系统信息

percona-toolkit工具包安装

#wget https://www.percona.com/downloads/percona-toolkit/2.2.20/deb/percona-toolkit_2.2.20-1.tar.gz

#tar zxf percona-toolkit_2.2.20-1.tar.gz

#cd percona-toolkit-2.2.20/

#perl Makefile.PL  报错如下:

[[email protected] percona-toolkit-2.2.20]# perl Makefile.PL

Can‘t locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 1.

BEGIN failed--compilation aborted at Makefile.PL line 1.

该错误解决办法:

#yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y

问题解决,下面我继续安装

#perl Makefile.PL

#make && make install

安装成功!

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

下面我使用percona-toolkit中的pt-online-schema-change来给一个表增加字段

pt-online-schema-change用处:

ALTER tables without locking them.修改过程中不会造成读写阻塞,用于给大表添加字段。

实现原理:

如果表有外键,除非使用 –alter-foreign-keys-method 指定特定的值,否则工具不予执行。
1 创建一个和你要执行 alter 操作的表一样的空表结构。
2 执行表结构修改,然后从原表中的数据到copy到 表结构修改后的表,
3 在原表上创建触发器将 copy 数据的过程中,在原表的更新操作 更新到新表.
注意:如果表中已经定义了触发器这个工具就不能工作了。
4 copy 完成以后,用rename table 新表代替原表,默认删除原表。


# pt-online-schema-change --alter "ADD COLUMN num INT" D=sls,t=lisa

//给我mysql中的sls数据库的lisa表增加一个num字段   D:指定数据库  t:指定表

报错如下:

Can‘t locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/bin/pt-online-schema-change line 3727.

BEGIN failed--compilation aborted at /usr/local/bin/pt-online-schema-change line 3727.

该错误的意思是:系统没有安装Perl的Time组件

该错误解决办法:

# yum -y install perl-Time*

解决问题后再次添加字段:

# pt-online-schema-change --alter "ADD COLUMN num INT" D=sls,t=lisa

再次报错如下:

Operation, tries, wait:

analyze_table, 10, 1

copy_rows, 10, 0.25

create_triggers, 10, 1

drop_triggers, 10, 1

swap_tables, 10, 1

update_foreign_keys, 10, 1

Exiting without altering `sls`.`lisa` because neither --dry-run nor --execute was specified.  Please read the tool‘s documentation carefully before using this tool.

解决办法:

# pt-online-schema-change --alter "ADD COLUMN num INT" D=sls,t=lisa --user=sls --socket=/tmp/mysql.sock --password=122541 --execute

报错如下:

You do not have the PROCESS privilege at /usr/local/bin/pt-online-schema-change line 4330.

错误原因:没有给sls用户授权

解决办法

mysql>grant all privileges on *.* to [email protected] identified by "122541";

mysql> flush privileges;

解决问题后再次添加字段:

# pt-online-schema-change --alter "ADD COLUMN num INT" D=sls,t=lisa --user=sls --socket=/tmp/mysql.sock --password=122541 --execute

报错如下:

No slaves found.  See --recursion-method if host b0d81312ea9e has slaves.

Not checking slave lag because no slaves were found and --check-slave-lag was not specified.

Operation, tries, wait:

analyze_table, 10, 1

copy_rows, 10, 0.25

create_triggers, 10, 1

drop_triggers, 10, 1

swap_tables, 10, 1

update_foreign_keys, 10, 1

Altering `sls`.`lisa`...

Creating new table...

Created new table sls._lisa_new OK.

Altering new table...

Altered `sls`.`_lisa_new` OK.

2016-12-24T08:54:54 Dropping new table...

2016-12-24T08:54:54 Dropped new table OK.

`sls`.`lisa` was not altered.

The new table `sls`.`_lisa_new` does not have a PRIMARY KEY or a unique index which is required for the DELETE trigger.

错误原因:没有给lisa表创建主键

解决办法:

mysql> alter table lisa add id int not null primary key auto_increment;

//id列必须是lisa表中不存在的列。存在会报错。

解决问题后再次添加字段:

# pt-online-schema-change --alter "ADD COLUMN num INT" D=sls,t=lisa --user=sls --socket=/tmp/mysql.sock --password=122541 --execute

成功了!!!

No slaves found.  See --recursion-method if host b0d81312ea9e has slaves.

Not checking slave lag because no slaves were found and --check-slave-lag was not specified.

Operation, tries, wait:

analyze_table, 10, 1

copy_rows, 10, 0.25

create_triggers, 10, 1

drop_triggers, 10, 1

swap_tables, 10, 1

update_foreign_keys, 10, 1

Altering `sls`.`lisa`...

Creating new table...

Created new table sls._lisa_new OK.

Altering new table...

Altered `sls`.`_lisa_new` OK.

2016-12-24T09:09:15 Creating triggers...

2016-12-24T09:09:15 Created triggers OK.

2016-12-24T09:09:15 Copying approximately 12 rows...

2016-12-24T09:09:15 Copied rows OK.

2016-12-24T09:09:15 Analyzing new table...

2016-12-24T09:09:15 Swapping tables...

2016-12-24T09:09:15 Swapped original and new tables OK.

2016-12-24T09:09:15 Dropping old table...

2016-12-24T09:09:15 Dropped old table `sls`.`_lisa_old` OK.

2016-12-24T09:09:15 Dropping triggers...

2016-12-24T09:09:15 Dropped triggers OK.

Successfully altered `sls`.`lisa`.

成功了!!!

终于成功了!!我已经爱上我自己!!哈哈哈

时间: 2024-10-28 11:20:00

percona-toolkit的安装和使用的相关文章

Percona Toolkit 的安装与使用(安装篇)

Percona Toolkit 是一个相当好用的mysql管理工具.这里记录下最简单的安装方法.比源码安装要方便多了. wget https://www.percona.com/downloads/percona-toolkit/2.2.17/RPM/percona-toolkit-2.2.17-1.noarch.rpm   yum install percona-toolkit-2.2.17-1.noarch.rpm 这样就安装好了.够简单了吧 如果你习惯用rpm包来安装的话,可能要手动解决依

pt(Percona Toolkit)工具详解:(一)安装

pt(Percona Toolkit)工具是由Percona公司开发的一个用perl语言编写的工具集,包含很多功能,例如在线更改数据表结构,校验主从数据,检查数据库状态,分析慢查询等这些靠人手做起来比较麻烦的事情,功能强大,操作简单. 安装 既然是perl语言开发的工具集,那当然是先安装perl相关依赖包了 yum install -y perl perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes perl-Digest-MD5 然后,就到下面这个

Percona Toolkit 安装

Percona Toolkit(pt工具)是一组用于维护数据库的命令行工具, 大部分是Perl脚本, 其连接数据库, 需要DBI和DBD::mysql的支持. 直接使用yum安装这两个软件包就行. # yum install perl-DBI perl-DBD-MySQL 安装pt工具的依赖后, 就是安装pt本身了(percona-toolkit-3.0.3_x86_64.tar.gz), 这里指定其安装的目录. # perl Makefile.PLPREFIX=/usr/local/perco

Centos 安装Percona Toolkit工具集

1.下载 下载地址:   https://www.percona.com/downloads/percona-toolkit/LATEST/ [[email protected] ~]# wget https://www.percona.com/downloads/percona-toolkit/3.0.13/binary/redhat/7/x86_64/percona-toolkit-3.0.13-re85ce15-el7-x86_64-bundle.tar 2.安装 [[email prot

Percona Toolkit mysql辅助利器

1 PT介绍 Percona Toolkit简称pt工具—PT-Tools,是Percona公司开发用于管理MySQL的工具,功能包括检查主从复制的数据一致性.检查重复索引.定位IO占用高的表文件.在线DDL等,DBA熟悉掌握后将极大提高工作效率. 2 PT 安装 下载地址 :https://www.percona.com/downloads/percona-toolkit/ 下载完上传到linux 服务器 安装PT [[email protected] ~]# yum -y install p

Percona Server 的安装及tokudb引擎的安装笔记

Percona Server 的安装及tokudb引擎的安装笔记 2017年7月7日 安装percona server: yum localinstall Percona-Server-client-57-5.7.18-15.1.el6.x86_64.rpm  Percona-Server-shared-57-5.7.18-15.1.el6.x86_64.rpm Percona-Server-server-57-5.7.18-15.1.el6.x86_64.rpm  Percona-Server

Percona Toolkit 学习(四)(heartbeat, index-usage,ioprofile,killmextmysql-summary)

seconds_behind_master含义及不足 seconds_behind_master的值是通过将salve服务器当前的时间戳与二进制日志中的事件的时间戳相比得到的,所以只有执行事件时才会报告延迟. 1.1 如果备库复制线程没有运行,就会报延迟为null.1.2 一些错误比如网络不稳定可能导致复制中断或停止复制线程,但是seconds_behind_master将显示为0,而不是显示错误1.3 即使备库线程正在运行,备库有时候可能无法计算延时,如果发生这种情况,备库会报0或者null.

Percona Toolkit 2.2.12 发布,MySQL 管理工具

Percona Toolkit 2.2.12 发布了, Percona Toolkit 是一组高级的命令行工具,用来管理 MySQL 和系统任务. 改进内容包括: New Features: pt-stalk now gathers dmesg output from up to 60 seconds before the triggering event. Bugs Fixed: Fixed bug 1376561 : pt-archiver was not able to archive a

Percona 5.7安装

一.从官网下载Percona5.7 地址:https://www.percona.com/downloads/Percona-Server-5.7/LATEST/ 需要注意是服务器的版本.我这里选择的是Percona-Server-5.7.16-10-ra0c7d0d-el6-x86_64-bundle.tar 二.解压 tar xvf Percona-Server-5.7.16-10-ra0c7d0d-el6-x86_64-bundle.tar 能够看到解压出7个文件 三.安装 rpm -iv

Percona MySQL编译安装到CentOS6.5

下载 percona-server-5.6.26-74.0.tar.gz 利用yum安装一些必须的软件: yum -y install make gcc gcc-c++ cmake bison-devel  ncurses-devel gcc \autoconf* automake* zlib* fiex* libxml* libmcrypt* libtool-ltdl-devel* \openssl openssl-devel ncurses compat* mpfr cpp glibc  r