- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章使用percona-toolkit操作MySQL的实用命令小结由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1.pt-archiver 功能介绍: 将mysql数据库中表的记录归档到另外一个表或者文件 用法介绍: pt-archiver [OPTION...] --source DSN --where WHERE 这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将数据插入另外一台服务器的其他表中,也可以写入到一个文件中,方便使用load data infile命令导入数据。另外你还可以用它来执行delete操作。这个工具默认的会删除源中的数据。使用的时候请注意。 使用示例: 范例1:将192.168.3.135上的sanmao库的oss_log表id小于100000的记录转移到192.168.3.92上的sanmao库,并归档到oss_log_archive_20120605.log文件中
1
|
pt-archiver --
source
h=192.168.3.135,D=sanmao,t=oss_log --user=root --password=zhang@123 --dest
|
1
|
h=192.168.3.92,D=sanmao,t=oss_log --
file
'/var/log/oss_log_archive_20120605.log'
--where
"id<=100000"
--commit-each
|
范例2:将192.168.3.135上的sanmao库的oss_log小于160000的记录归档到oss_log_archive_20120607.log文件中
1
|
pt-archiver --
source
h=192.168.3.135,D=sanmao,t=oss_log --user=root --password=zhang@123 --
file
'/var/log/oss_log_archive_20120607.log'
--where
"id<=160000"
--commit-each
|
范例3:删除192.168.3.135上的sanmao库的oss_log表中id小于167050的记录:
1
|
pt-archiver --
source
h=192.168.3.135,D=sanmao,t=oss_log --user=root --password=zhang@123 --purge --where
'id<=167050'
|
注意:如果是字符集是utf8的话,需要在my.cnf中的[client]下面添加default-character-set = utf8,否则导出的文件内容中文会乱码。 2.pt-find 功能介绍: 查找mysql表并执行指定的命令,和gnu的find命令类似。 用法介绍: pt-find [OPTION...] [DATABASE...] 默认动作是打印数据库名和表名 使用示例: 范例1:查找192.168.3.135中1天以前创建的InnoDB的表 ,并打印.
1
|
pt-
find
--ctime +1 --host=192.168.3.135 --engine InnoDB --user=root --password=zhang@123
|
范例2:查找192.168.3.135中1天以前更改过的数据库名字匹配%hostsops%的并且引擎为MYISAM的表,并将表的引擎更改为InnoDB引擎.
1
|
pt-
find
--mtime +1 --dblike hostsops --engine MyISAM --host=192.168.3.135 --user=root --password=zhang@123 --
exec
"ALTER TABLE %D.%N ENGINE=InnoDB"
|
范例3:查找192.168.3.135中aaa库和zhang库中的空表,并删除.
1
|
pt-
find
--empty aaa zhang --host=192.168.3.135 --user=root --password=zhang@123 --
exec
-plus
"DROP TABLE %s"
|
范例4:查找192.168.3.135中超过100M的表:
1
|
pt-
find
--tablesize +100M --host=192.168.3.135 --user=root --password=zhang@123
|
3.pt-kill 功能介绍: Kill掉符合指定条件mysql语句 用法介绍: pt-kill [OPTIONS] 加入没有指定文件的话pt-kill连接到mysql并通过SHOW PROCESSLIST找到指定的语句,反之pt-kill从包含SHOW PROCESSLIST结果的文件中读取mysql语句 使用示例: 范例1:查找192.168.3.135服务器运行时间超过60s的语句,并打印 。
1
|
pt-
kill
--busy-
time
60 --print --host=192.168.3.135 --user=root --password=zhang@123
|
范例2:查找192.168.3.135服务器运行时间超过60s的语句,并kill 。
1
|
pt-
kill
--busy-
time
60 --
kill
--host=192.168.3.135 --user=root --password=zhang@123
|
范例3:从proccesslist文件中查找执行时间超过60s的语句 。
1
2
|
mysql -uroot -pzhang@123 -h192.168.3.135 -e
"show processlist"
> processlist.txt
pt-
kill
--
test
-matching processlist.txt --busy-
time
60 --print
|
4.pt-config-diff 功能介绍: 比较mysql配置文件和服务器参数 用法介绍: pt-config-diff [OPTION...] CONFIG CONFIG [CONFIG...] CONFIG可以是文件也可以是数据源名称,最少必须指定两个配置文件源,就像unix下面的diff命令一样,如果配置完全一样就不会输出任何东西。 使用示例: 范例1:查看本地和远程服务器的配置文件差异:
1
|
pt-config-
diff
h=localhost h=192.168.3.92 --user=root --password=zhang@123
|
比较出来内容如下:
1
2
3
4
5
6
7
|
22 config differences
Variable localhost.localdomain localhost.localdomain
========================= ===================== =====================
binlog_cache_size 8388608 2097152
have_ndbcluster DISABLED NO
innodb_additional_mem_... 16777216 33554432
innodb_buffer_pool_size 1677721600 1073741824
|
范例2:比较本地配置文件和远程服务器的差异:
1
|
pt-config-
diff
/etc/my
.cnf h=192.168.3.92 --user=root --password=zhang@123
|
比较出来内容如下:
1
2
3
4
5
|
12 config differences
Variable /etc/my.cnf localhost.localdomain
========================= =========== =====================
binlog_cache_size 8388608 2097152
binlog_format mixed MIXED
|
范例3:比较本地两个配置文件的差异:
1
|
pt-config-
diff
/usr/local/mysql/share/mysql/my-large
.cnf
/usr/local/mysql/share/mysql/my-medium
.cnf
|
5.pt-mysql-summary 功能介绍: 精细地对mysql的配置和sataus信息进行汇总,汇总后你直接看一眼就能看明白。 用法介绍: pt-mysql-summary [OPTIONS] [-- MYSQL OPTIONS] 工作原理:连接mysql后查询出status和配置信息保存到临时目录中,然后用awk和其他的脚本工具进行格式化。OPTIONS可以查阅官网的相关页面。 使用示例: 范例1:汇总本地mysql服务器的status和配置信息:
1
|
pt-mysql-summary -- --user=root --password=zhang@123 --host=localhost
|
范例2:汇总本地mysql服务器192.168.3.92的status和配置信息:
1
|
pt-mysql-summary -- --user=root --password=zhang@123 --host=192.168.3.92
|
6.pt-variable-advisor 功能介绍: 分析mysql的参数变量,并对可能存在的问题提出建议 用法介绍: pt-variable-advisor [OPTION...] [DSN] 原理:根据预先定义的规则检查show variables中的配置错误的设置和值。 使用示例: 范例1:从localhost获取变量值 。
1
|
pt-variable-advisor --user=root --password=zhang@123 localhost
|
范例2:从指定的文件中读取配置,这个有格式要求 。
1
|
pt-variable-advisor --user=root --password=zhang@123 --
source
-of-variables my.cnf
|
最后此篇关于使用percona-toolkit操作MySQL的实用命令小结的文章就讲到这里了,如果你想了解更多关于使用percona-toolkit操作MySQL的实用命令小结的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在努力做到这一点 在我的操作中从数据库获取对象列表(确定) 在 JSP 上打印(确定) 此列表作为 JSP 中的可编辑表出现。我想修改然后将其提交回同一操作以将其保存在我的数据库中(失败。当我使用
我有以下形式的 Linq to Entities 查询: var x = from a in SomeData where ... some conditions ... select
我有以下查询。 var query = Repository.Query() .Where(p => !p.IsDeleted && p.Article.ArticleSections.Cou
我正在编写一个应用程序包,其中包含一个主类,其中主方法与GUI类分开,GUI类包含一个带有jtabbedpane的jframe,它有两个选项卡,第一个选项卡包含一个jtable,称为jtable1,第
以下代码产生错误 The nested query is not supported. Operation1='Case' Operation2='Collect' 问题是我做错了什么?我该如何解决?
我已经为 HA redis 集群(2 个副本、1 个主节点、3 个哨兵)设置了本地 docker 环境。只有哨兵暴露端口(10021、10022、10023)。 我使用的是 stackexchange
我正在 Desk.com 中构建一个“集成 URL”,它使用 Shopify Liquid 模板过滤器语法。对于开始日期为 7 天前而结束日期为现在的查询,此 URL 需要包含“开始日期”和“结束日期
你一定想过。然而情况却不理想,python中只能使用类似于 i++/i--等操作。 python中的自增操作 下面代码几乎是所有程序员在python中进行自增(减)操作的常用
我需要在每个使用 github 操作的手动构建中显示分支。例如:https://gyazo.com/2131bf83b0df1e2157480e5be842d4fb 我应该显示分支而不是一个。 最佳答
我有一个关于 Perl qr 运算符的问题: #!/usr/bin/perl -w &mysplit("a:b:c", /:/); sub mysplit { my($str, $patt
我已经使用 ArgoUML 创建了一个 ERD(实体关系图),我希望在一个类中创建两个操作,它们都具有 void 返回类型。但是,我只能创建一个返回 void 类型的操作。 例如: 我能够将 book
Github 操作仍处于测试阶段并且很新,但我希望有人可以提供帮助。我认为可以在主分支和拉取请求上运行 github 操作,如下所示: on: pull_request push: b
我正在尝试创建一个 Twilio 工作流来调用电话并记录用户所说的内容。为此,我正在使用 Record,但我不确定要在 action 参数中放置什么。 尽管我知道 Twilio 会发送有关调用该 UR
我不确定这是否可行,但值得一试。我正在使用模板缓冲区来减少使用此算法的延迟渲染器中光体积的过度绘制(当相机位于体积之外时): 使用廉价的着色器,将深度测试设置为 LEQUAL 绘制背面,将它们标记在模
有没有聪明的方法来复制 和 重命名 文件通过 GitHub 操作? 我想将一些自述文件复制到 /docs文件夹(:= 同一个 repo,不是远程的!),它们将根据它们的 frontmatter 重命名
我有一个 .csv 文件,其中第一列包含用户名。它们采用 FirstName LastName 的形式。我想获取 FirstName 并将 LastName 的第一个字符添加到它上面,然后删除空格。然
Sitecore 根据 Sitecore 树中定义的项目名称生成 URL, http://samplewebsite/Pages/Sample Page 但我们的客户有兴趣降低所有 URL(页面/示例
我正在尝试进行一些计算,但是一旦我输入金额,它就会完成。我只是希望通过单击按钮而不是自动发生这种情况。 到目前为止我做了什么: Angular JS - programming-fr
我的公司创建了一种在环境之间移动文件的复杂方法,现在我们希望将某些构建的 JS 文件(已转换和缩小)从一个 github 存储库移动到另一个。使用 github 操作可以实现这一点吗? 最佳答案 最简
在我的代码中,我创建了一个 JSONArray 对象。并向 JSONArray 对象添加了两个 JSONObject。我使用的是 json-simple-1.1.jar。我的代码是 package j
我是一名优秀的程序员,十分优秀!