【KSDWRT】自發在ALERT檔案或TRACE檔案中留“腳印”

secooler發表於2009-12-17
使用sys.dbms_system.ksdwrt儲存過程可以實現主動向alert或trace檔案中記錄資訊的功能。簡單記錄一下,供參考。

1.先看一下向alert檔案中寫資訊的功能
1)使用引數“2”實現向alert檔案中記錄資訊
sys@ora10g> execute sys.dbms_system.ksdwrt(2,'Secooler marked here at '||to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));

PL/SQL procedure successfully completed.

2)檢視alert檔案,會發現如下兩條資訊,第一條是系統自動記錄的時間,第二條就是我悄悄做的mark。
Thu Dec 17 21:24:41 2009
Secooler marked here at 2009-12-17 21:24:41

2.再看一下向trace檔案中寫資訊的功能
1)使用引數“1”實現向trace檔案中記錄資訊
sys@ora10g> execute sys.dbms_system.ksdwrt(1,'Secooler marked here at '||to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));

PL/SQL procedure successfully completed.

2)此時會自動建立一個trace檔案,並在trace檔案中看到我們寫入的資訊。
sys@ora10g> ed /oracle/app/oracle/admin/ora10g/udump/ora10g_ora_3634.trc
/oracle/app/oracle/admin/ora10g/udump/ora10g_ora_3634.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
ORACLE_HOME = /oracle/app/oracle/product/10.2.0/db_1
System name:    Linux
Node name:      asdlabdb01
Release:        2.6.18-128.el5
Version:        #1 SMP Wed Dec 17 11:41:38 EST 2008
Machine:        x86_64
Instance name: ora10g
Redo thread mounted by this instance: 1
Oracle process number: 14
Unix process pid: 3634, image: oracle@asdlabdb01 (TNS V1-V3)

*** 2009-12-17 21:28:51.050
*** SERVICE NAME:(SYS$USERS) 2009-12-17 21:28:51.050
*** SESSION ID:(513.163) 2009-12-17 21:28:51.050
Secooler marked here at 2009-12-17 21:28:51
~
~

3.該儲存過程可以同時向alert檔案和trace檔案寫入資訊
1)使用引數“3”便可以實現同時向alert和trace檔案中記錄資訊
sys@ora10g> execute sys.dbms_system.ksdwrt(3,'Secooler marked here at '||to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));

PL/SQL procedure successfully completed.

2)檢視在alert檔案中記錄的資訊
Thu Dec 17 21:30:08 2009
Secooler marked here at 2009-12-17 21:30:08

3)檢視在trace檔案中記錄的資訊
*** 2009-12-17 21:30:08.067
Secooler marked here at 2009-12-17 21:30:08

4.小結
如果對系統的某繫緊急事件需要向alert或trace檔案輸出的話,這是一個很好的途徑。
sys.dbms_system.ksdwrt儲存過程中DEST有三個可用值:
PROCEDURE KSDWRT
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 DEST                           BINARY_INTEGER          IN
 TST                            VARCHAR2                IN

“1”:向trace檔案中寫入資訊;
“2”:向alert檔案中寫入資訊:
“3”:同時向trace和alert檔案中寫入資訊。

Good luck.

secooler
09.12.17

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-622766/,如需轉載,請註明出處,否則將追究法律責任。

相關文章