Ⅰ 如何實時監控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。
Ⅱ 如何創建監視SQL語句的事件監控器
打2008事件探查器工具欄按鈕新建跟蹤連要跟蹤資料庫實例確定即新建跟蹤查看鏈接資料庫實例語句執行創建完跟蹤
每客戶端都ClientProcessID想跟蹤客戶端語句執行情況:
先讓客戶端查詢報表通事件探查器看看ClientProcessID暫停事件探查
文件——屬性——篩選——面找ClientProcessID,等於處雙擊填入客戶端ClientProcessID,確定重新啟追看客戶端運行情況!
Ⅲ sqlserver2008 監控某個表的改動情況
create trigger kuabaobao
on a
for update
as
if update(a_id)
begin
insert into b (ip, datetime, sqlCode) values () // 關鍵這些值,怎麼獲取?
end
go
sql語句的話,用SQL中有事件查看器,代碼的話,select * FROM sys.dm_exec_requests 可以獲取請求信息 但不全。 kuabaobao
最好還是 程序保存 要執行的sql,和ip, 然後在 SQL Exc 時,檢測是不是對表a的 update 和 delete, 這在程序里邊應該很好控制的吧。
Ⅳ 關於sql2008,怎麼監控某資料庫表變化情況
在每個表中添加觸發器~~
一旦數據有變化, 觸發器就被觸發~ 觸發器中寫代碼將這個變化寫入到你指定的日誌表中即可。
注意:是多個表的觸發器, 去操作同一個日誌表。
Ⅳ 如何使用SQL 監控來查看調用的哪個SP
用SQL SERVER MANAGEMENT STUDIO的工具 PROFILER 可以監控語句運行情況
Ⅵ 在sqlserver2008用sql監視器 怎麼監視客戶端應用程序的sql語句
SQL2008 可以設置 Profiler。
打開Microsoft SQL Server Management Studio , 在菜單欄有個工具(Tool), 裡面有個事件追蹤(SQL Server Profiler)。
打開sql server profiler, 連接資料庫。彈出Trace Properties(跟蹤屬性), 選擇事件(Events Selection)
重要列名解釋:
CPU:事件所使用的 CPU 時間總計(以毫秒為單位)。
Duration : 持續時間,事件所花費的時間總計,(以毫秒為單位)。
Reads : 伺服器代表事件執行的邏輯磁碟讀取數,(以位元組為單位) 。
Writes :伺服器代表事件執行的物理磁碟寫入數,(以位元組為單位) 。
loginName:SQL 登陸用戶;
SPID:會話編號;
starttime:開始執行時間;
endtime:執行結束時間;
TEXTDATA:執行的語句。
Ⅶ 如何使用SQL 事件探查器
SQL 事件探查器是圖形工具,使系統管理員得以監視 Microsoft SQL Server 實例中的事件。可以捕獲有關每個事件的數據並將其保存到文件或 SQL
Server 表中供以後分析。例如,可以對生產環境進行監視,了解執行速度太慢而妨礙性能的存儲過程。
使用 SQL事件探查器只監視感興趣的事件。如果跟蹤變得太大,可以基於需要的信息進行篩選,以便只收集事件數據的子集。監視太多事件類會增加伺服器和監視進程的開銷,並且可能導致跟蹤文件或跟蹤表變得很大,尤其是在進行長時間監視時。
在跟蹤事件後,SQL 事件探查器允許重播在 SQL Server 實例上捕獲的事件數據,因此可以如事件當初發生時一樣有效地重新執行保存的事件。
使用SQL 事件探查器可以:
● 監視 SQL Server 實例的性能。
● 調試 Transact-SQL 語句和存儲過程。●識別執行慢的查詢。
● 在工程開發階段,通過單步執行語句測試 SQL 語句和存儲過程,以確認代碼按預期運行。●通過捕獲生產系統中的事件並在測試系統中重播它們來解決 SQL Server 中的問題。這對測試和調試很有用,並使得用戶可以不受干擾地繼續使用生產系統。●審核和復查在 SQL Server
實例中發生的活動。這使得安全管理員得以復查任何審核事件,包括登錄嘗試的成功與失敗,以及訪問語句和對象的許可權成功與失敗。
SQL事件探查器為用於監視 SQL Server 實例的一組存儲過程提供圖形用戶界面。例如,可以創建您自己的應用程序,以便使用 SQL 事件探查器存儲過程監視
SQL Server。
必須有至少 10 MB 的可用空間用以運行 SQL 事件探查器。當使用 SQL 事件探查器時,如果可用空間降至 10
MB 以下,SQL 事件探查器的所有功能都將停止。
在"企業管理器"的"工具"菜單上單擊"SQL 事件探查器"命令打開 "SQL 事件探查器"
2. 在"SQL事件探查器"工具欄上點擊"新跟蹤"圖標打開SQL Server連接窗口,輸入SQL Server地址、選擇一種身份驗證方式後確定連接3.
選擇默認的模板並運行即可開始跟蹤,也可以自定義一個模板對指定的事件和進行跟蹤並顯示自定義的數據列
Ⅷ sql2008怎麼監控存儲過程
在SQL中監控存儲過程,我們可以使用SQL Server Profiler。
關於SQL Server Profiler 的相關用法,參考下面的文檔:
http://msdn.microsoft.com/zh-cn/library/ms181091.aspx
http://www.mssqltips.com/sqlservertip/3259/several-methods-to-collect-sql-server-stored-procere-execution-history/
Ⅸ Oracle有實時監控SQL語句的工具嗎
---正在執行的
select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT
from v$session a, v$sqlarea b
where a.sql_address = b.address
---執行過的
select b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXT
from v$sqlarea b
where b.FIRST_LOAD_TIME between '2009-10-15/09:24:47' and
'2009-10-15/09:24:47' order by b.FIRST_LOAD_TIME
(此方法好處可以查看某一時間段執行過的sql,並且 SQL_FULLTEXT 包含了完整的 sql 語句)
Ⅹ 如何監控 SQL語句的執行時間
如何監控 SQL語句的執行時間
首先糾正你一個說法 不是監視器是PROfilter , 你所說的情況如果是在PROFILTER 中是不存在的任何對資料庫的 修改都會在上面顯示並標出語句,請你確認你的PROFILTER 是否打開正確的資料庫並開始