文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

percona-toolkit的安装与使用

2016-05-22 00:20

关注

一、percona-toolkit的安装请参考:https://blog.csdn.net/yuanyk1222/article/details/100066788

二、下面来说说此工具的一些用法:

pt-online-schema-change

功能可以在线整理表结构,收集碎片,给大表添加字段和索引。避免出现锁表导致阻塞读写的操作。不过针对 MySQL 5.7 版本,就可以不需要使用这个命令,直接在线 online DDL 就可以了。

Mysql数据库中有如下表:

mysql> desc t;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| k     | int(11)     | NO   | MUL | NULL    |       |
| b     | varchar(10) | YES  |     | NULL    |       |
| name  | varchar(16) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

如果我们想在线增加一个字段,可以执行如下命令:

[root@i-vvwtw5ne pt-kill]# pt-online-schema-change --user=root --password=Falsesoul1207 --host=192.192.18.34 --alter="add column c int after b" D=test,t=t --execute
Found 1 slaves:
  i-s70m0mun
Will check slave lag on:
  i-s70m0mun
*******************************************************************
 Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client
 is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER
 possibly with SSL_ca_file|SSL_ca_path for verification.
 If you really don"t want to verify the certificate and keep the
 connection open to Man-In-The-Middle attacks please set
 SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application.
*******************************************************************
  at /usr/bin/pt-online-schema-change line 6576.
Operation, tries, wait:
  copy_rows, 10, 0.25
  create_triggers, 10, 1
  drop_triggers, 10, 1
  swap_tables, 10, 1
  update_foreign_keys, 10, 1
Altering `test`.`t`...
Creating new table...
Created new table test._t_new OK.
Altering new table...
Altered `test`.`_t_new` OK.
2019-12-08T00:17:36 Creating triggers...
2019-12-08T00:17:36 Created triggers OK.
2019-12-08T00:17:36 Copying approximately 1 rows...
2019-12-08T00:17:36 Copied rows OK.
2019-12-08T00:17:36 Swapping tables...
2019-12-08T00:17:36 Swapped original and new tables OK.
2019-12-08T00:17:36 Dropping old table...
2019-12-08T00:17:36 Dropped old table `test`.`_t_old` OK.
2019-12-08T00:17:36 Dropping triggers...
2019-12-08T00:17:36 Dropped triggers OK.
Successfully altered `test`.`t`.

再查看原来的表结构,发再增加字段成功,在b字段后面成功增加了一个字段c:

mysql> desc t;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| k     | int(11)     | NO   | MUL | NULL    |       |
| b     | varchar(10) | YES  |     | NULL    |       |
| c     | int(11)     | YES  |     | NULL    |       |
| name  | varchar(16) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

重点说下pt-kill用法:

show  PROCESSLIST结果如下:

 print执行时间超过10s的查询:

[root@i-vvwtw5ne ~]# pt-kill -h192.192.18.34 -P3306 -uroot -pFalsesoul1207  --busy-time=10 --print 
# 2019-12-08T19:53:06 KILL 67432267 (Query 33 sec) do sleep(60000)

kill执行时间超过11s的查询:

[root@i-vvwtw5ne ~]# pt-kill -h192.192.18.34 -P3306 -uroot -pFalsesoul1207  --busy-time=10 --kill

每隔10s执行kill所有的“Command”条件为“Query”的查询:

[root@i-vvwtw5ne ~]# pt-kill -h192.192.18.34 -P3306 -uroot -pFalsesoul1207  --busy-time=10 --match-command=Query --victims=all --interval=10 --kill

print所以“State”条件为“User sleep”的查询:

[root@i-vvwtw5ne ~]# pt-kill -h192.192.18.34 -P3306 -uroot -pFalsesoul1207  --busy-time=10 --match-state="User sleep" --victims=all --interval=10 --print
# 2019-12-08T19:59:34 KILL 67432969 (Query 12 sec) do sleep(6000000)

每10s打印一次数据库为test state=User sleep的sql语句

[root@i-vvwtw5ne ~]# pt-kill -h192.192.18.34 -P3306 -uroot -pFalsesoul1207 --match-db="test"  --busy-time=10 --match-state="User sleep" --victims=all --interval=10 --print

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯