【alert】使用SYS.DBMS_SYSTEM.KSDWRT向Oracle實現向警告日誌中寫入資訊
在PL/SQL程式碼中或SQL*Plus命令列中均可以使用“SYS.DBMS_SYSTEM.KSDWRT”來實現向Oracle警告日誌中寫入資訊的目的。
1.進入到alert目錄存放位置
ora10g@asdlabdb01 /home/oracle$ cd $ORACLE_BASE/admin/$ORACLE_SID/bdump
2.檢視警告日誌中最後10行的資訊
ora10g@asdlabdb01 /oracle/app/oracle/admin/ora10g/bdump$ tail -10 alert_ora10g.log
replication_dependency_tracking turned off (no async multimaster replication found)
Starting background process QMNC
QMNC started with pid=32, OS id=31597
Thu Dec 15 06:23:57 2010
Completed: ALTER DATABASE OPEN
Thu Dec 15 06:23:57 2010
db_recovery_file_dest_size of 4096 MB is 0.00% used. This is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or ASM diskgroup.
此處是為了對比寫入前後資訊的不同。
3.在SQL*Plus中實現向alert日誌中寫入資訊的目的
ora10g@asdlabdb01 /oracle/app/oracle/admin/ora10g/bdump$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on Thu Dec 15 06:24:33 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
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
sys@ora10g> exec SYS.DBMS_SYSTEM.KSDWRT(2, 'Alert message writed by Secooler.');
PL/SQL procedure successfully completed.
sys@ora10g> exit
Disconnected from 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
4.檢視alert日誌中寫入的內容
ora10g@asdlabdb01 /oracle/app/oracle/admin/ora10g/bdump$ tail -10 alert_ora10g.log
QMNC started with pid=32, OS id=31597
Thu Dec 15 06:23:57 2010
Completed: ALTER DATABASE OPEN
Thu Dec 15 06:23:57 2010
db_recovery_file_dest_size of 4096 MB is 0.00% used. This is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or ASM diskgroup.
Thu Dec 15 06:24:39 2010
Alert message writed by Secooler.
可見alert日誌中的最後兩行記錄了這條寫入的資訊(第一行表示寫入的時間,第二行便是寫入資訊的內容)。
5.知識擴充套件
1)DBMS_SYSTEM的引數資訊
sys@ora10g> desc SYS.DBMS_SYSTEM
……
PROCEDURE KSDWRT
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
DEST BINARY_INTEGER IN
TST VARCHAR2 IN
……
從引數資訊上可以看到KSDWRT這個PROCEDURE有兩個引數。第二個引數TST便是寫入的資訊內容;那麼第一個引數都有幾種可用的值呢?具體有如下三種可取的值:
“1”: Write to the standard trace file(向標準Trace檔案中寫入資訊)
“2”: Write to the alert log(向alert日誌檔案中寫入資訊)
“3”: Write to both files at once(同時向Trace檔案和alert日誌檔案中寫入資訊)
本例中我們用到了“2”這個選項實現的向alert日誌檔案中寫入資訊。
如果使用“1”或“3”,我們也可以實現向Trace檔案中寫入資訊,該標準trace檔案位於“$ORACLE_BASE/admin/$ORACLE_SID/udump”目錄中。
6.小結
注意,使用“SYS.DBMS_SYSTEM.KSDWRT”實現向alert檔案和trace檔案中寫入資訊的方法並未經過Oracle驗證和支援!請評估並測試後慎用。
Good luck.
secooler
10.12.15
-- The End --
1.進入到alert目錄存放位置
ora10g@asdlabdb01 /home/oracle$ cd $ORACLE_BASE/admin/$ORACLE_SID/bdump
2.檢視警告日誌中最後10行的資訊
ora10g@asdlabdb01 /oracle/app/oracle/admin/ora10g/bdump$ tail -10 alert_ora10g.log
replication_dependency_tracking turned off (no async multimaster replication found)
Starting background process QMNC
QMNC started with pid=32, OS id=31597
Thu Dec 15 06:23:57 2010
Completed: ALTER DATABASE OPEN
Thu Dec 15 06:23:57 2010
db_recovery_file_dest_size of 4096 MB is 0.00% used. This is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or ASM diskgroup.
此處是為了對比寫入前後資訊的不同。
3.在SQL*Plus中實現向alert日誌中寫入資訊的目的
ora10g@asdlabdb01 /oracle/app/oracle/admin/ora10g/bdump$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on Thu Dec 15 06:24:33 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
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
sys@ora10g> exec SYS.DBMS_SYSTEM.KSDWRT(2, 'Alert message writed by Secooler.');
PL/SQL procedure successfully completed.
sys@ora10g> exit
Disconnected from 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
4.檢視alert日誌中寫入的內容
ora10g@asdlabdb01 /oracle/app/oracle/admin/ora10g/bdump$ tail -10 alert_ora10g.log
QMNC started with pid=32, OS id=31597
Thu Dec 15 06:23:57 2010
Completed: ALTER DATABASE OPEN
Thu Dec 15 06:23:57 2010
db_recovery_file_dest_size of 4096 MB is 0.00% used. This is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or ASM diskgroup.
Thu Dec 15 06:24:39 2010
Alert message writed by Secooler.
可見alert日誌中的最後兩行記錄了這條寫入的資訊(第一行表示寫入的時間,第二行便是寫入資訊的內容)。
5.知識擴充套件
1)DBMS_SYSTEM的引數資訊
sys@ora10g> desc SYS.DBMS_SYSTEM
……
PROCEDURE KSDWRT
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
DEST BINARY_INTEGER IN
TST VARCHAR2 IN
……
從引數資訊上可以看到KSDWRT這個PROCEDURE有兩個引數。第二個引數TST便是寫入的資訊內容;那麼第一個引數都有幾種可用的值呢?具體有如下三種可取的值:
“1”: Write to the standard trace file(向標準Trace檔案中寫入資訊)
“2”: Write to the alert log(向alert日誌檔案中寫入資訊)
“3”: Write to both files at once(同時向Trace檔案和alert日誌檔案中寫入資訊)
本例中我們用到了“2”這個選項實現的向alert日誌檔案中寫入資訊。
如果使用“1”或“3”,我們也可以實現向Trace檔案中寫入資訊,該標準trace檔案位於“$ORACLE_BASE/admin/$ORACLE_SID/udump”目錄中。
6.小結
注意,使用“SYS.DBMS_SYSTEM.KSDWRT”實現向alert檔案和trace檔案中寫入資訊的方法並未經過Oracle驗證和支援!請評估並測試後慎用。
Good luck.
secooler
10.12.15
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-681980/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- alert日誌中的一條ora警告資訊的分析
- Oracle 警告日誌 (alert log) 中包含哪些內容 ?Oracle
- alert日誌中出現ash size的警告
- 警告日誌檔案alert_.log
- oracle alert日誌Oracle
- dbms_system.ksdwrt:向告警日誌檔案寫指定資訊
- 最佳實踐(保持、清理ORACLE alert日誌)Oracle
- 歸檔oracle alert日誌Oracle
- 使用sql查alert日誌SQL
- 【ADRCI】使用ADRCI (ADR Command Interpreter) 工具檢視Oracle alert警告日誌Oracle
- 使用Oracle的外部表查詢警告日誌Oracle
- oracle alert日誌每天截斷truncate_alert.shOracle
- PHP實現日誌寫入log.txtPHP
- Oracle之外部表警告日誌Oracle
- oracle alert日誌亂碼處理Oracle
- 用外部表實現Alert日誌的檢視
- oracle 11g的警告日誌Oracle
- 熟練使用alert.log日誌
- 使用Oracle的外部表查詢警告日誌檔案Oracle
- oracle 中 alert 報警日誌過大的處理方法Oracle
- Lua 中實現物件導向物件
- oracle 11g檢視alert日誌方法Oracle
- ORACLE 告警日誌alert過大的處理Oracle
- qt 單獨執行緒實現日誌寫入功能QT執行緒
- zaq寫入日誌
- 刪除oracle 11g的警告日誌和監聽日誌Oracle
- asp.net 向Oracle資料庫表的Clob欄位中寫入文字編輯器中輸入的大段文字資訊ASP.NETOracle資料庫
- 登入觸發器不生效,只在alert日誌中顯示觸發器
- 一個用python寫的自動監控alert日誌告警資訊的小程式Python
- 使用sqlloader向oracle匯入文字資料SQLOracle
- 使用GoldenGate 實現Oracle for Oracle 單向資料同步(實現表的DML操作同步)GoOracle
- 從alert日誌看Oracle 11g Datagurad日誌傳輸(上)Oracle
- 從alert日誌看Oracle 11g Datagurad日誌傳輸(下)Oracle
- 【問題處理】處理alert警告日誌中出現無法找到libocr*.so檔案問題
- 使用go+gin編寫日誌中間,實現自動化收集http訪問資訊,錯誤資訊等,自動化生成日誌檔案GoHTTP
- alert日誌中的兩種ORA錯誤分析
- Data guard 中 alert 日誌報錯 "FAL archive failed"HiveAI
- 使用外部表訪問警告日誌檔案