使用percona-toolkit操作MySQL的实用命令小结_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文件中:
pt-archiver --source h=192.168.3.135,D=sanmao,t=oss_log --user=root --password=zhang@123 --dest
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文件中:
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的记录:
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的表 ,并打印。
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引擎。
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库中的空表,并删除。
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的表:
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的语句,并打印
pt-kill --busy-time 60 --print --host=192.168.3.135 --user=root --password=zhang@123
范例2:查找192.168.3.135服务器运行时间超过60s的语句,并kill
pt-kill --busy-time 60 --kill --host=192.168.3.135 --user=root --password=zhang@123
范例3:从proccesslist文件中查找执行时间超过60s的语句
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:查看本地和远程服务器的配置文件差异:
pt-config-diff h=localhost h=192.168.3.92 --user=root --password=zhang@123
比较出来内容如下:
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:比较本地配置文件和远程服务器的差异:
pt-config-diff /etc/my.cnf h=192.168.3.92 --user=root --password=zhang@123
比较出来内容如下:
12 config differences Variable /etc/my.cnf localhost.localdomain ========================= =========== ===================== binlog_cache_size 8388608 2097152 binlog_format mixed MIXED
范例3:比较本地两个配置文件的差异:
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和配置信息:
pt-mysql-summary -- --user=root --password=zhang@123 --host=localhost
范例2:汇总本地mysql服务器192.168.3.92的status和配置信息:
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获取变量值
pt-variable-advisor --user=root --password=zhang@123 localhost
范例2:从指定的文件中读取配置,这个有格式要求
pt-variable-advisor --user=root --password=zhang@123 --source-of-variables my.cnf
以上就是使用percona-toolkit操作MySQL的实用命令小结_MySQL的内容,更多相关内容请关注PHP中文网(www.php.cn)!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

MySQL是一個開源的關係型數據庫管理系統。 1)創建數據庫和表:使用CREATEDATABASE和CREATETABLE命令。 2)基本操作:INSERT、UPDATE、DELETE和SELECT。 3)高級操作:JOIN、子查詢和事務處理。 4)調試技巧:檢查語法、數據類型和權限。 5)優化建議:使用索引、避免SELECT*和使用事務。

可以通過以下步驟打開 phpMyAdmin:1. 登錄網站控制面板;2. 找到並點擊 phpMyAdmin 圖標;3. 輸入 MySQL 憑據;4. 點擊 "登錄"。

MySQL是一種開源的關係型數據庫管理系統,主要用於快速、可靠地存儲和檢索數據。其工作原理包括客戶端請求、查詢解析、執行查詢和返回結果。使用示例包括創建表、插入和查詢數據,以及高級功能如JOIN操作。常見錯誤涉及SQL語法、數據類型和權限問題,優化建議包括使用索引、優化查詢和分錶分區。

選擇MySQL的原因是其性能、可靠性、易用性和社區支持。 1.MySQL提供高效的數據存儲和檢索功能,支持多種數據類型和高級查詢操作。 2.採用客戶端-服務器架構和多種存儲引擎,支持事務和查詢優化。 3.易於使用,支持多種操作系統和編程語言。 4.擁有強大的社區支持,提供豐富的資源和解決方案。

Redis 使用單線程架構,以提供高性能、簡單性和一致性。它利用 I/O 多路復用、事件循環、非阻塞 I/O 和共享內存來提高並發性,但同時存在並發性受限、單點故障和不適合寫密集型工作負載的局限性。

MySQL和SQL是開發者必備技能。 1.MySQL是開源的關係型數據庫管理系統,SQL是用於管理和操作數據庫的標準語言。 2.MySQL通過高效的數據存儲和檢索功能支持多種存儲引擎,SQL通過簡單語句完成複雜數據操作。 3.使用示例包括基本查詢和高級查詢,如按條件過濾和排序。 4.常見錯誤包括語法錯誤和性能問題,可通過檢查SQL語句和使用EXPLAIN命令優化。 5.性能優化技巧包括使用索引、避免全表掃描、優化JOIN操作和提升代碼可讀性。

MySQL在數據庫和編程中的地位非常重要,它是一個開源的關係型數據庫管理系統,廣泛應用於各種應用場景。 1)MySQL提供高效的數據存儲、組織和檢索功能,支持Web、移動和企業級系統。 2)它使用客戶端-服務器架構,支持多種存儲引擎和索引優化。 3)基本用法包括創建表和插入數據,高級用法涉及多表JOIN和復雜查詢。 4)常見問題如SQL語法錯誤和性能問題可以通過EXPLAIN命令和慢查詢日誌調試。 5)性能優化方法包括合理使用索引、優化查詢和使用緩存,最佳實踐包括使用事務和PreparedStatemen

直接從數據庫中恢復被刪除的行通常是不可能的,除非有備份或事務回滾機制。關鍵點:事務回滾:在事務未提交前執行ROLLBACK可恢復數據。備份:定期備份數據庫可用於快速恢復數據。數據庫快照:可創建數據庫只讀副本,在數據誤刪後恢復數據。慎用DELETE語句:仔細檢查條件,避免誤刪數據。使用WHERE子句:明確指定要刪除的數據。使用測試環境:在執行DELETE操作前進行測試。
