安装percona-toolkit-3

# yum localinstall percona-toolkit-3.0.-.el6.x86_64.rpm perl-TermReadKey.x86_64 :2.30-.el6 -y

1.pt-summary #显示和系统相关的基本信息:

[root@master ~]# pt-summary
# Percona Toolkit System Summary Report ######################
Date | -- :: UTC (local TZ: CST +)
Hostname | master
Uptime | day, :, user, load average: 0.00, 0.00, 0.00
System | VMware, Inc.; VMware Virtual Platform; vNone (Other)
Service Tag | VMware- 4d c6 e2 - f4 f3 f8
Platform | Linux
Release | CentOS release 6.5 (Final)
Kernel | 2.6.-.el6.x86_64
Architecture | CPU = -bit, OS = -bit
Threading | NPTL 2.12
SELinux | Disabled
Virtualized | VMWare
# Processor ##################################################
Processors | physical = , cores = , virtual = , hyperthreading = no
Speeds | 2x2592.
Models | 2xIntel(R) Core(TM) i7-6700HQ CPU @ .60GHz
Caches | 2x6144 KB
# Memory #####################################################
Total | .8G
Free | 123.4M
Used | physical = .7G, swap allocated = .9G, swap used = 5.8M, virtual = .7G
Shared | 0.0
Buffers | 40.6M
Caches | 905.3M
Dirty | kB
UsedRSS | 882.9M
Swappiness |
DirtyPolicy | ,
DirtyStatus | ,
...

2.pt-mysql-summary #查看mysql的各个统计信息:

[root@master ~]# pt-mysql-summary -S /data/mysql/mysql.sock --user=root --host=localhost --port= --password=
Warning: Using a password on the command line interface can be insecure.
# Percona Toolkit MySQL Summary Report #######################
System time | -- :: UTC (local TZ: CST +)
# Instances ##################################################
Port Data Directory Nice OOM Socket
===== ========================== ==== === ======
/data/mysql/data /data/mysql/mysql.sock
# MySQL Executable ###########################################
Path to executable | /usr/sbin/mysqld
Has symbols | No
# Report On Port ########################################
User |
Time | (CST)
Hostname | master
Version | 5.7.-- Percona XtraDB Cluster (GPL), Release rel15, Revision 7693d6e, WSREP version 29.20, wsrep_29.
Built On | Linux x86_64
Started | (up +::)
Databases |
Datadir | /data/mysql/data/
Processes | connected, running
Replication | Is not a slave, has slaves connected
Pidfile | /data/mysql/logs/mysql.pid (exists)
# Processlist ################################################ Command COUNT(*) Working SUM(Time) MAX(Time)
------------------------------ -------- ------- --------- ---------
Query
Sleep User COUNT(*) Working SUM(Time) MAX(Time)
------------------------------ -------- ------- --------- ---------
root
system user Host COUNT(*) Working SUM(Time) MAX(Time)
------------------------------ -------- ------- --------- --------- localhost db COUNT(*) Working SUM(Time) MAX(Time)
------------------------------ -------- ------- --------- ---------
NULL State COUNT(*) Working SUM(Time) MAX(Time)
------------------------------ -------- ------- --------- ---------
starting
wsrep
...
# Configuration File #########################################
Config File | /etc/my.cnf [mysqld]
user = mysql
innodb_buffer_pool_size = 1024M
datadir = /data/mysql/data
port =
server_id =
socket = /data/mysql/mysql.sock
pid-file = /data/mysql/logs/mysql.pid
log-error = /data/mysql/logs/error.log
log_warnings =
slow_query_log_file = /data/mysql/logs/slow.log
long_query_time = 0.1
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
wsrep_provider = /usr/lib64/galera3/libgalera_smm.so
wsrep_cluster_address = gcomm://192.168.3.12,192.168.3.13,192.168.3.198
binlog_format = ROW
default_storage_engine = InnoDB
wsrep_slave_threads =
wsrep_log_conflicts
innodb_autoinc_lock_mode =
wsrep_node_address = 192.168.3.12
wsrep_cluster_name = my-pxc-cluster
wsrep_node_name = pxc01
pxc_strict_mode = ENFORCING
wsrep_sst_method = xtrabackup-v2
wsrep_sst_auth = "sstuser:sstuser"
# Memory management library ##################################
jemalloc enabled in MySQL config for process with ID
Using jemalloc from /usr/lib64/libjemalloc.so.
# The End ####################################################

3.pt-slave-find #查找和显示指定的Master 有多少个Slave:

# pt-slave-find --host=10.10.76.96 --port= --user=root --password=
10.10.76.96
Version 5.5.-ucloudrel1-log
Server ID
Uptime +:: (started --01T14::)
Replication Is not a slave, has slaves connected, is not read_only
Filters
Binary logging MIXED
Slave status
Slave mode STRICT
Auto-increment increment , offset
InnoDB version 1.1.

4. pt-query-digest 慢日志查询:

# pt-query-digest /data/mysql/master-log.

5.pt-online-schema-change
#在线DDL操作改变表结构并且不阻塞,正常情况下在线ALTER一个表增加一个字段、一个索引的话MySQL会锁表,正常的流程如下:

①按照原始表(original_table)的表结构和DDL语句,新建一个不可见的临时表(tmp_table)
②在原表上加write lock,阻塞所有更新操作(insert、delete、update等)
③执行insert into tmp_table select * from original_table
④rename original_table和tmp_table,最后drop original_table
⑤释放 write lock

但是在线上直接操作的话会导致大量的写入阻塞,临时表可能会导致磁盘空间占满等问题,因此要使用pt-online-schema-change更新表结果的过程如下:
创建一个和原表相同表结构的表,比如table_tmp
执行表结构修改,并从原表copy数据到修改后的表
在原表上创建触发器,将copy过程中产生的数据更新到新表
copy完成,将新表rename成当前使用的表,删除旧表

使用pt-online-schema-change在线更新表,注意是在线、在线、在线更新表结构不停止业务使用的在线更新表结构:

# pt-online-schema-change --user=root --host=localhost --port= --password= --execute --alter "ADD COLUMN Job VARCHAR(20)" D=testdatabase,t=testtable2

6.修改表结构并保留原表
pt-online-schema-change, test111库的tbl_app_table新增app_status字段默认为0

[root@test7_chat_api_im ~]# pt-online-schema-change --host=10.10.191.89 --user=root --password= --port= --no-drop-old-table --execute --alter "add column app_status char(1) default 0" D=test111,t=tbl_app_table

No slaves found. See --recursion-method if host qas01 has slaves.
Not checking slave lag because no slaves were found and --check-slave-lag was not specified.
Operation, tries, wait:
analyze_table, ,
copy_rows, , 0.25
create_triggers, ,
drop_triggers, ,
swap_tables, ,
update_foreign_keys, ,
Altering `test111`.`tbl_app_table`...
Creating new table...
Created new table test111._tbl_app_table_new OK.
Altering new table...
Altered `test111`.`_tbl_app_table_new` OK.
--08T17:: Creating triggers...
--08T17:: Created triggers OK.
--08T17:: Copying approximately rows...
--08T17:: Copied rows OK.
--08T17:: Analyzing new table...
--08T17:: Swapping tables...
--08T17:: Swapped original and new tables OK.
Not dropping old table because --no-drop-old-table was specified.
--08T17:: Dropping triggers...
--08T17:: Dropped triggers OK.
Successfully altered `test111`.`tbl_app_table`.

mysql管理工具percona-toolkit-3简单使用介绍的更多相关文章

  1. 15款最佳的MySQL管理工具和应用程序

    工欲善其事,必先利其器.几乎每个开发人员都有最钟爱的 MySQL 管理工具,它帮助开发人员在许多方面支持包括 PostgreSQL,MySQL,SQLite,Redis,MongoDB 等在内的多种数 ...

  2. 分享几款常用的MySQL管理工具

    MySQL数据库以体积小.速度快.总体拥有成本低等优点,深受广大中小企业的喜爱,像我们常见的MySQL管理工具都有那些呢?下面给大家推荐六个常用的MySQL管理工具!      phpMyAdmin  ...

  3. 五大好用的开源MySQL管理工具推荐

    众所周知,对于数据库管理工作者(DBA)来说,保持数据正常运行在最佳状态需要具备敏捷.专注.冷静和快速的反应能力.因为数据库几乎是所有应用程序成功运行的核心,由于DBA负责组织数据,因此寻找可靠的工具 ...

  4. mysql 管理工具

    摘自: http://www.chinaz.com/free/2009/0306/68691.shtml MySQL是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购.目前 ...

  5. 涂抹mysql笔记-mysql管理工具

    五花八门的mysql管理工具<>mysql提供的命令行工具 mysql_install_db:mysql建库工具,在源码安装mysql环节我们使用过. mysql_safe:mysql启动 ...

  6. MySQL管理工具HeidiSQL

    MySQL管理工具HeidiSQL   HeidiSQL 是一个功能非常强大的 MySQL 客户端软件.它是德国程序员Ansgar Becker和几个Delphi程序员开发的一个开源工具.要通过Hei ...

  7. 三十二. 多表查询 MySQL管理工具 、 用户授权及撤销

    1.MySQL管理工具 部署LAMP+phpMyAdmin平台 安装httpd.mysql.php-mysql及相关包 启动httpd服务程序 解压phpMyAdmin包,部署到网站目录 配置conf ...

  8. Database基础(四):密码恢复及设置、 用户授权及撤销、数据备份与恢复、MySQL管理工具

    一.密码恢复及设置 目标: 本案例要求熟悉MySQL管理密码的控制,完成以下任务操作: 练习重置MySQL管理密码的操作 通过正常途径设置MySQL数据库的管理密码 步骤: 步骤一:重置MySQL管理 ...

  9. RDS for MySQL 如何使用 Percona Toolkit

    Percona Toolkit 包含多种用于 MySQL 数据库管理的工具. 下面介绍常用的 pt-online-schema-change  和  pt-archiver 搭配 RDS MySQL ...

随机推荐

  1. HDU 1263(水果统计 **)

    题意是对水果的产地和种类进行统计再按格式输出. 代码如下: #include <bits/stdc++.h> using namespace std; struct node { ],pl ...

  2. [Asp.Net MVC4]验证用户登录实现

    最近我们要做一个仿sina的微博,碰巧的是我最近在学习mvc,就想用mvc技术实现这个项目. 既然是微博,那不用想也应该知道肯定要有用户登陆,但是和常规的asp.net登陆又不一样,以下是我一下午+一 ...

  3. JDK源码之ArrayList

    序言 ArrayList底层通过数组实现. ArrayList即动态数组,实现了动态的添加和减少元素 需要注意的是,容量拓展,是创建一个新的数组,然后将旧数组上的数组copy到新数组,这是一个很大的消 ...

  4. C#窗口闪烁问题解决

    https://www.cnblogs.com/AndyDai/p/5203798.html 开发WinForm 程序时经常会遇到闪屏的问题,这会给用户造成很差的使用体验,所以必须妥善解决好这个问题. ...

  5. FontAwesome图标选择器

    虽然比较简单,但很实用,在C# MVC下开发,请首先将图标名称保存到数据库中,图标窗口如下. @{ Layout = "~/Views/Shared/_Form.cshtml"; ...

  6. CoreText实现图文混排

    CoreText的介绍 Core Text 是基于 iOS 3.2+ 和 OSX 10.5+ 的一种能够对文本格式和文本布局进行精细控制的文本引擎.它良好的结合了 UIKit 和 Core Graph ...

  7. Mysql 基础导入导出

    Mysql 导出数据库: mysqldump -u root -p 数据库 > 导出库名.sql mysqldump -u 用户名 -p 数据库名 表名 > 导出表名.sql 示例:mys ...

  8. 前端分辨pc和移动端导入不同css

    通过navigator获取浏览器,根据浏览器的不同判断出pc和移动端然后设置不同的css 分辨不同屏幕导入不同的css文件: function loadCSS() { if((navigator.us ...

  9. python基础学习11天,作业题

    1. 文件a.txt内容:每一行内容分别为商品名字,价钱,个数. apple 10 3 tesla 100000 1 mac 3000 2 lenovo 30000 3 chicken 10 3 通过 ...

  10. linux 开发板上的调试

    1.需要命令 ulimit 进行设置core file size ,  看 core file size. cat /proc/pid/limits,  这个暂时不用 2.需要有gdb命令 , 需要g ...