Oracle 11g 通過登入觸發器跟蹤會話產生trace檔案
通過登入觸發器跟蹤會話產生trace檔案,方便對測試環境進行SQL跟蹤,即使執行失敗的SQL也會記錄到跟蹤檔案中,這對於排錯很有用
sqlplus / as sysdba
--建立登陸後的觸發器
CREATE OR REPLACE TRIGGER check_user
AFTER LOGON ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'alter session set sql_trace=true';
EXECUTE IMMEDIATE 'ALTER SESSION SET tracefile_identifier= ''TRACE'' ';
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR
(-20000, 'Unexpected error: '|| DBMS_Utility.Format_Error_Stack);
END;
--建立退出登入前的觸發器
CREATE OR REPLACE TRIGGER check_user_2
BEFORE LOGOFF ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'alter session set sql_trace=false';
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR
(-20000, 'Unexpected error: '|| DBMS_Utility.Format_Error_Stack);
END;
--檢視跟蹤檔案的路徑
select * from v$diag_info where name = 'Diag Trace';
1 Diag Trace /u01/app/oracle/product/11.2.0/db_1/rdbms/bdump/diag/rdbms/ota4g/OTA4G/trace
跟蹤檔名中帶有會話的程式號
SELECT SPID FROM V$PROCESS WHERE ADDR IN ( SELECT PADDR FROM V$SESSION WHERE SID = 40 and serial# = 1561);
--檢視跟蹤檔案
ls -trl
-rw-r----- 1 oracle oinstall 141 Dec 22 18:59 OTA4G_ora_19602_TRACE.trm
-rw-r----- 1 oracle oinstall 9049 Dec 22 18:59 OTA4G_ora_19602_TRACE.trc
[oracle@localhost trace]$ vi OTA4G_ora_19602_TRACE.trc
vi OTA4G_ora_19602_TRACE.trc
格式化生成的跟蹤檔案
tkprof OTA4G_ora_19602_TRACE.trc 02.txt
需要注意的是,在排錯結束要及時刪除對應的觸發器,以免產生大量的跟蹤檔案
drop trigger check_user;
drop trigger check_user_2;
sqlplus / as sysdba
--建立登陸後的觸發器
CREATE OR REPLACE TRIGGER check_user
AFTER LOGON ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'alter session set sql_trace=true';
EXECUTE IMMEDIATE 'ALTER SESSION SET tracefile_identifier= ''TRACE'' ';
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR
(-20000, 'Unexpected error: '|| DBMS_Utility.Format_Error_Stack);
END;
--建立退出登入前的觸發器
CREATE OR REPLACE TRIGGER check_user_2
BEFORE LOGOFF ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'alter session set sql_trace=false';
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR
(-20000, 'Unexpected error: '|| DBMS_Utility.Format_Error_Stack);
END;
--檢視跟蹤檔案的路徑
select * from v$diag_info where name = 'Diag Trace';
1 Diag Trace /u01/app/oracle/product/11.2.0/db_1/rdbms/bdump/diag/rdbms/ota4g/OTA4G/trace
跟蹤檔名中帶有會話的程式號
SELECT SPID FROM V$PROCESS WHERE ADDR IN ( SELECT PADDR FROM V$SESSION WHERE SID = 40 and serial# = 1561);
--檢視跟蹤檔案
ls -trl
-rw-r----- 1 oracle oinstall 141 Dec 22 18:59 OTA4G_ora_19602_TRACE.trm
-rw-r----- 1 oracle oinstall 9049 Dec 22 18:59 OTA4G_ora_19602_TRACE.trc
[oracle@localhost trace]$ vi OTA4G_ora_19602_TRACE.trc
vi OTA4G_ora_19602_TRACE.trc
格式化生成的跟蹤檔案
tkprof OTA4G_ora_19602_TRACE.trc 02.txt
需要注意的是,在排錯結束要及時刪除對應的觸發器,以免產生大量的跟蹤檔案
drop trigger check_user;
drop trigger check_user_2;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-2131238/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle跟蹤檔案trace檔案Oracle
- Oracle跟蹤會話Oracle會話
- 跟蹤 sql 的trace檔案SQL
- trace 檔案產生過多,使用者不能登陸
- oracle session(會話) 跟蹤OracleSession會話
- -t【Oracle-故障管理】-Trace跟蹤會話和會話執行慢故障分析Oracle會話
- 跟蹤session 與 trace檔案分析Session
- 跟蹤SESSION 與 trace 檔案解析Session
- 【TRACE】Oracle跟蹤事件Oracle事件
- Oracle 登入觸發器Oracle觸發器
- Oracle跟蹤檔案Oracle
- 使用dbms_monitor.session_trace_enable跟蹤一個會話Session會話
- 利用sql_trace跟蹤一個指定會話的操作SQL會話
- [zt] oracle跟蹤檔案與跟蹤事件Oracle事件
- oracle跟蹤檔案與跟蹤事件(zt)Oracle事件
- oracle跟蹤檔案和跟蹤事件(zt)Oracle事件
- 通過關閉trace再次產生日誌檔案
- 用oracle trace 來跟蹤sessionOracleSession
- truncate、recreate後臺程式跟蹤檔案(trace file)
- ass109.awk 分析Oracle 的跟蹤檔案(trace file)Oracle
- 會話跟蹤技術會話
- 給會話開跟蹤會話
- 會話級SQL跟蹤會話SQL
- 用oracle trace 來跟蹤session 活動OracleSession
- SQL效能的度量 - 會話級別的SQL跟蹤sql_traceSQL會話
- oracle 跟蹤當前使用者會話Oracle會話
- oracle10g會話跟蹤處理Oracle會話
- 【最佳化】SQL_TRACE之生成跟蹤檔案SQL
- tkprof: 分析ORACLE跟蹤檔案Oracle
- 11G 怎麼得到跟蹤檔案
- sp_trace_setfilter sqlserver篩選跟蹤或跟蹤過濾FilterSQLServer
- 10046 跟蹤的trace檔案相關解釋
- 用Oracle跟蹤診斷掛起的會話Oracle會話
- 會話跟蹤技術Cookieless會話Cookie
- 檔案-跟蹤檔案
- 【TRACE】如果通過10046跟蹤資料庫效能問題資料庫
- 使用 Tkprof 分析 ORACLE 跟蹤檔案Oracle
- oracle 跟蹤檔案理論整理Oracle