使用外部表訪問oracle告警日誌

本文介紹了通過使用oracle外部表的方式訪問oracle告警日誌。

1、創建用戶、賦予權限

SQL>create user checker identified by password default tablespace users quota unlimited on users;

SQL>grant connect,resource,create any directory to checker;

2、創建目錄對象

SQL>show parameter background_dump_dest;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest                 string      /u01/app/oracle/orcl/bdump

SQL> conn  checker/password

SQL>create directory  bdump as '/u01/app/oracle/orcl/bdump';

3、創建外部表

SQL> create table alert_log( text varchar2(400) )
organization external (type oracle_loader
default directory bdump
access parameters (records delimited by newline)
location('alert_orcl.log'));

4、使用外部表查看告警日誌

SQL> select   text   from  alert_log;  //查看全部的告警日誌

SQL>select  text  from  alert_log  where  text like 'ORA-%';  //查看告警日誌中的錯誤信息

SQL> select * from (select text from alert_log order by rowid desc) where rownum <50;  //查看最近50行告警日誌。

擴展知識:

外部表就像是在數據庫中創建的一個視圖,數據庫中只存儲表的元數據,真正的記錄存放在操作系統上。對於外部表的使用有一些限制:

1、只能讀取外部表中的內容,不能對外部表進行DML操作,不能爲其創建索引。

2、使用外部表必須使用目錄對象。

3、同一個操作系統數據文件只能使用一種分隔符,如逗號或分號。

4、刪除外部表時應遵循先刪除所有的外部表然後再刪除目錄對象的原則,如果直接刪除目錄對象,系統不會自動檢查它上面外部表,可能會造成外部表不可用。可以通過查詢dba_external_locations查詢系統當前所有的目錄對象以及相關的外部表,還會查詢出這些外部表所對應的操作系統文件的名字。

 

來源:http://www.chinaoug.net/space.php?uid=356676&do=blog&id=1843

發佈了41 篇原創文章 · 獲贊 11 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章