㈠ 如何實時監控mysql中的SQL語句的執行情況
首先介紹下 pt-stalk,它是 Percona-Toolkit 工具包中的一個工具,說起 PT 工具包大家都不陌生,平時常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自於這個工具包,這里就不多介紹了。
pt-stalk 的主要功能是在出現問題時收集 OS 及 MySQL 的診斷信息,這其中包括:
1. OS 層面的 CPU、IO、內存、磁碟、網路等信息;
2. MySQL 層面的行鎖等待、會話連接、主從復制,狀態參數等信息。
而且 pt-stalk 是一個 Shell腳本,對於我這種看不懂 perl 的人來說比較友好,腳本裡面的監控邏輯與監控命令也可以拿來參考,用於構建自己的監控體系。
三、使用
接著我們來看下如何使用這個工具。
pt-stalk 通常以後台服務形式監控 MySQL 並等待觸發條件,當觸發條件時收集相關診斷數據。
觸發條件相關的參數有以下幾個:
function:
∘默認為 status,代表監控 SHOW GLOBAL STATUS 的輸出;
∘也可以設置為 processlist,代表監控 show processlist 的輸出;
variable:
∘默認為 Threads_running,代表 監控參數,根據上述監控輸出指定具體的監控項;
threshold:
∘默認為 25,代表 監控閾值,監控參數超過閾值,則滿足觸發條件;
∘監控參數的值非數字時,需要配合 match 參數一起使用,如 processlist 的 state 列;
cycles:
∘默認為 5,表示連續觀察到五次滿足觸發條件時,才觸發收集;
其他一些重要參數:
iterations:該參數指定 pt-stalk 在觸發收集幾次後退出,默認會一直運行。
run-time:觸發收集後,該參數指定收集多長時間的數據,默認 30 秒。
sleep:該參數指定在觸發收集後,sleep 多久後繼續監控,默認 300 秒。
interval:指定狀態參數的檢查頻率,判斷是否需要觸發收集,默認 1 秒。
dest:監控數據存放路徑,默認為 /var/lib/pt-stalk。
retention-time :監控數據保留時長,默認 30 天。
daemonize:以後台服務運行,默認不開啟。
log:後台運行日誌,默認為 /var/log/pt-stalk.log。
collect:觸發發生時收集診斷數據,默認開啟。
∘collect-gdb:收集 GDB 堆棧跟蹤,需要 gdb 工具。
∘collect-strace:收集跟蹤數據,需要 strace 工具。
∘collect-tcpmp:收集 tcpmp 數據,需要 tcpmp 工具。
連接參數:host、password、port、socket。
㈡ 如何跟蹤mysql執行的sql語句
其實方法很簡單,開啟mysql的日誌log功能,通過查看跟蹤日誌即可。
開啟mysql的日誌log方法:
windows環境下的配置方法:
我使用的版本:Version: 5.0.37-community-nt-log (MySQL Community Edition (GPL))
找到my.ini,我的是在「G:\Program Files (x86)\MySQL\MySQL Server 5.0」目錄下,
找到[mysqld],在下面添加:
log=存放日誌的路徑/my.log
㈢ 如何實時監控mysql中的SQL語句的執行情況
可以查看日誌文件【機器名-slow.log】,裡面有執行緩慢的語句,看看是否需要優化程序還是修改資料庫結構。
可以show
full
processlist查看正在執行的語句。
㈣ 求教,怎麼監控mysql資料庫執行的語句
general_log=[on|off] #是否啟用通用查詢日誌
general_log_file[=filename] #通用查詢日誌位置及名字
這2個參數可以開啟mysql通用日誌,裡面記錄了你執行過的語句
應該對你有用。但是開啟後,日誌增長會非常快
㈤ 如何監聽mysql執行的sql語句呢
比如我想監聽mysql的這樣的操作,delete from acrelation where *** 如果是這樣的話,你可以看看關於mysql的觸發器的東西。 Rainbow702 寫道引用最好可以日誌或其它方式記錄下來資料庫本身應該就有操作日誌的啊問題補充:我用的hibernate的PostDeleteEvent,還是有些問題 hibernate自帶的監聽 jkxydp 寫道用spring的aop啊,在刪除記錄的方法上加一個記錄日誌的切入點去記錄啊,層一般增、刪、改、查的方法都是單獨出來的吧,在所有刪除記錄的方法上寫切入點。 或者使用loger,其它的都不寫,就在刪除的方法裡面寫上日誌應該就沒問題。 用hibernate就肯定有用到log4j吧,不想全寫,就只在刪除方法上寫就完了。
㈥ mysql可以實時監控sql語句執行情況嗎
好像沒看到.
你在好好找找看
㈦ 監控mysql 執行過哪些sql語句
如果你想知道mysql在干嗎,需要配置log my.ini文件中 log=log路徑 比如D:/MySQL/datalog.log 配置後重啟mysql服務,然後就可以查看mysql執行的sql語句了, 如果你沒開啟日誌的話,那就沒辦法
㈧ mysql如何跟蹤執行的sql語句
不知你是不是指這個:
用慣了微軟的ms sql的事件探查器,一直也想在mysql中找到相應的這么一種工具:
修改my.cnf,在mysqld下添加log一行,
[mysqld]
log = /tmp/mysqld.sql
然後,重新啟動mysql,tail -f /tmp/mysqld.sql,就可以實時看到myql伺服器當前正在執行的語句了。
文章出處:http://www.diybl.com/course/6_system/linux/Linuxjs/20071129/89017.html
㈨ 如何實時監控mysql中的SQL語句的執行情況
首先介紹下 pt-stalk,它是 Percona-Toolkit 工具包中的一個工具,說起 PT 工具包大家都不陌生,平時常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自於這個工具包,這里就不多介紹了。
pt-stalk 的主要功能是在出現問題時收集 OS 及 MySQL 的診斷信息,這其中包括:
1. OS 層面的 CPU、IO、內存、磁碟、網路等信息;
2. MySQL 層面的行鎖等待、會話連接、主從復制,狀態參數等信息。
而且 pt-stalk 是一個 Shell腳本,對於我這種看不懂 perl 的人來說比較友好,腳本裡面的監控邏輯與監控命令也可以拿來參考,用於構建自己的監控體系。
三、使用
接著我們來看下如何使用這個工具。
pt-stalk 通常以後台服務形式監控 MySQL 並等待觸發條件,當觸發條件時收集相關診斷數據。
觸發條件相關的參數有以下幾個:
function:
∘默認為 status,代表監控 SHOW GLOBAL STATUS 的輸出;
∘也可以設置為 processlist,代表監控 show processlist 的輸出;
variable:
∘默認為 Threads_running,代表 監控參數,根據上述監控輸出指定具體的監控項;
threshold:
∘默認為 25,代表 監控閾值,監控參數超過閾值,則滿足觸發條件;
∘監控參數的值非數字時,需要配合 match 參數一起使用,如 processlist 的 state 列;
cycles:
∘默認為 5,表示連續觀察到五次滿足觸發條件時,才觸發收集;
其他一些重要參數:
iterations:該參數指定 pt-stalk 在觸發收集幾次後退出,默認會一直運行。
run-time:觸發收集後,該參數指定收集多長時間的數據,默認 30 秒。
sleep:該參數指定在觸發收集後,sleep 多久後繼續監控,默認 300 秒。
interval:指定狀態參數的檢查頻率,判斷是否需要觸發收集,默認 1 秒。
dest:監控數據存放路徑,默認為 /var/lib/pt-stalk。
retention-time :監控數據保留時長,默認 30 天。
daemonize:以後台服務運行,默認不開啟。
log:後台運行日誌,默認為 /var/log/pt-stalk.log。
collect:觸發發生時收集診斷數據,默認開啟。
∘collect-gdb:收集 GDB 堆棧跟蹤,需要 gdb 工具。
∘collect-strace:收集跟蹤數據,需要 strace 工具。
∘collect-tcpmp:收集 tcpmp 數據,需要 tcpmp 工具。
連接參數:host、password、port、socket。
㈩ 如何記錄MySQL執行過的SQL語句
您好,很高興為您解答。 開啟記錄MySQL執行過SQL語句的方法很簡單:編輯/etc/my.cnf文件,在[mysqld]節下面添加:log=/var/lib/mysql/sql_row.log行(日誌的路徑自己根據需要定義)。 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 log=/var/lib/mysql/sql_row.log # Disabling symbolic-links is recommended to prevent assorted security risks; # to do so, uncomment this line: # symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid 修改完畢後,記得重啟 MySQL: service mysql restart # 或者 /etc/init.d/mysqld stop /etc/init.d/mysqld start 現在去 /var/lib/mysql/ 路徑下的 sql_row.log 文件應該是能夠看到 MySQL 什麼時候執行了哪些程序了