【原創】用外部表的方式查詢當天資料庫alert日誌檔案中當天所有的ora-錯誤資訊
外部表:表中的資料以作業系統檔案的方式來存放,現在表中的資料不是放在資料庫中了而是放在作業系統上面,Oracle提供了一種直接讀取外部資料的機制。
外部表好處:1.資料二次開發
2.大資料量遷移
3.充分利用作業系統空間
4.不佔用資料庫空間
5.支援標準SQL條件檢索
外部表也需要目錄物件的支援,透過目錄物件可以知道從哪個目錄讀取文字資料
LEO1@LEO1>create directory alert as'/u02/app/oracle/diag/rdbms/leo1/LEO1/trace';
Directory created.
這是Oracle 11g 告警日誌目錄
grant read,write on directory alert topublic; 對這個目錄物件授予讀/寫許可權,並授予所有使用者
LEO1@LEO1>select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
--------------------------------------------------------------------------------------------------------------
SYS EXP_DUMP /home/oracle/exp_dump
SYS XMLDIR /u02/app/oracle/product/11.2.0/db_1/rdbms/xml
SYS ALERT /u02/app/oracle/diag/rdbms/leo1/LEO1/trace
SYS DATA_PUMP_DIR /u02/app/oracle/admin/LEO1/dpdump/
SYS ORACLE_OCM_CONFIG_DIR /u02/app/oracle/product/11.2.0/db_1/ccr/state
我們下面就是Oracle告警日誌檔案當作資料庫的一個外部資料來源來訪問,我們使用外部表的方式抽取alert日誌資料,然後使用標準SQL語句來檢索“ora-錯誤資訊”。
下面我們就來建立一個外部表
LEO1@LEO1>create table leo_alert(content varchar2(4000)) alert日誌資料量多因此字串設定的大一點
organization external
(
type oracle_loader 如果你設定的是oracle_datapump請修改為loader
default directory alert
access parameters (
records delimited by newline 每條記錄用換行區分
nobadfile 沒有壞檔案,丟棄檔案,日誌檔案
nodiscardfile
nologfile
)
location ('alert_LEO1.log') 載入告警日誌檔案內容
); 2 3 4 5 6 7 8 9 10 11 12 13
LEO1@LEO1>select count(*) fromleo_alert; 一共7198條
COUNT(*)
----------------
7198
我們抽取其中10條ORA-開頭的錯誤記錄顯示出來
LEO1@LEO1>select * from leo_alert wherecontent like '%ORA-%' and rownum<=10;
CONTENT
------------------------------------------------------------------------------------------------------------------------------------------------------------------
ORA-210 signalled during: create tablespacetest datafile '/u02/app/oracle/oradata/LEO1/test01.dbf' size 10m autoextendoff...
ORA-00210: cannot open the specifiedcontrol file
ORA-00202: control file:'/u02/app/oracle/oradata/LEO1/control01.ctl'
ORA-27041: unable to open file
ORA-00210: cannot open the specifiedcontrol file
ORA-00202: control file:'/u02/app/oracle/oradata/LEO1/control01.ctl'
ORA-27041: unable to open file
ORA-00210: cannot open the specifiedcontrol file
ORA-00202: control file:'/u02/app/oracle/oradata/LEO1/control01.ctl'
ORA-27037: unable to obtain file status
10 rows selected.
小結:這裡需要注意幾個問題,我們在建立外部表的時候需要設定沒有壞檔案,丟棄檔案,日誌檔案引數否則會報錯ORA-29913: error in executing ODCIEXTTABLEOPEN callout。
sql*loader exp/imp expdp/impdp organization_external direct
2013.6.22
北京&summer
分享技術~成就夢想
Blog:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26686207/viewspace-764596/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用外部表的方式查詢alert日誌檔案中ora-錯誤資訊
- MySQL資料庫中的日誌檔案---(1)錯誤日誌MySql資料庫
- 查詢外部表出現無法開啟日誌檔案的錯誤
- 使用Oracle的外部表查詢警告日誌檔案Oracle
- MySQL資料庫中的日誌檔案---(3)慢查詢日誌MySql資料庫
- MySQL資料庫中的日誌檔案---(2)普通查詢日誌MySql資料庫
- 查詢一天前的日誌檔案刪除
- 用外部表實現Alert日誌的檢視
- oracle外部表記錄alert日誌&&資料庫執行報告Oracle資料庫
- 歸檔日誌滿造成資料庫當機資料庫
- 日誌查詢錯誤
- mysql 查當天、本週,本月、上月資料MySql
- 使用Oracle的外部表查詢警告日誌Oracle
- 用shell怎麼實現檢視alert 日誌的時候取得ORA-錯誤在哪行?
- 查詢當天的系統訂單記錄
- alert日誌中的兩種ORA錯誤分析
- 丟失當前current重做日誌檔案下恢復資料庫資料庫
- 使用外部表讀日誌檔案
- 增加日誌檔案,修改當前日誌檔案大小
- 根據Alert日誌查詢資料庫啟動、關閉時間資料庫
- MySQL資料庫中的日誌檔案---(5)系統日誌表的特點MySql資料庫
- 當丟失控制檔案但重做日誌檔案還在時如何恢復資料庫資料庫
- 查詢SQL Server 2005資料庫重做日誌的資訊SQLServer資料庫
- 查詢a表中b表沒有的資料,使用not exists
- MySQL資料庫中的日誌檔案---(4)配置日誌檔案輸出路徑MySql資料庫
- Oracle ORA-錯誤表Oracle
- 查詢時間從前7天到當前時間
- 使用外部表訪問警告日誌檔案
- 利用外部表讀取告警日誌檔案
- 資料庫MySQL一般查詢日誌或者慢查詢日誌歷史資料的清理資料庫MySql
- 當前聯機日誌檔案損壞
- mysql慢查詢和錯誤日誌分析MySql
- 建立資料庫檔案-日誌檔案-次要資料庫檔案資料庫
- MySQL查詢當前資料庫中所有記錄不為空的表MySql資料庫
- 在Linux中,有一堆日誌檔案,如何刪除7天前的日誌檔案?Linux
- GP查詢外部表報錯
- Logtail:像查詢資料庫一樣查詢日誌AI資料庫
- Find命令查詢最近幾天修改的檔案