熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

如何利用oracle外部表查看報警信息

2013-11-13 15:45:40  來源: Oracle 

  首先了解什麼是外部表與其它表的區別建立一個簡單的外部表(主要看操作過程)最後我們用外部表查看Oracle報警日志

  一了解oracle外部表

  外部表定義結構被存放在數據字典而表數據被放在OS文件中的表

  作用在數據庫中查詢OS文件的數據還可以將OS文件數據裝載到數據庫中

  與其它表的區別在外部表上不能執行DML操作也不能在外部表上建索引只能執行select操用

  二建一個簡單的外部表

  建一個OS上的文件

  因為外部表主要是查看OS上的文件首先在OS上建一個文件

  
  mkdir p /oracle/ext
  vi /oracle/ext/extdat
  
  
  

  授予用戶權限並建立目錄對象

  在此我們先建一個新用戶

  
  create user test identified by  default tablespace test quota unlimited on test;

  用戶授權

  
  SQL> grant create any directory to test;

  建立目錄對象

  
  SQL> conn test / 
  Connected
  SQL> create directory ext as /oracle/ext;
  Directory created

  建立外部表

  
  SQL> create table exttable(
  id numbername varchar()i number
  )organization external
  (type oracle_loader
  default directory ext
  Access parameters
  (records delimited by newline
  fields terminated by 
  )location(extdat)
  );

  測試

  
  SQL> select * from exttable;
  ID NAME I
    
    
    
    

  測試成功可見在數據庫中可以查詢OS文件的數據

  二 使用外部表查看oracle報警日志

  由於在上面實驗中已建立了一個用戶並賦相應的權限而且也有了OS文件(即報警文件alert_SIDlog)所以在此直接建立目錄對象並建立外部表就可以了

  建立目錄對象

  
  SQL> conn test / 
  Connected
  SQL> create directory bdump as /oracle/u/app/oracle/admin/DB/bdump;
  Directory created

  建立外部表

  
  SQL> create table alert_log(
  text varchar()
  )organization external
  (type oracle_loader
  default directory bdump
  access parameters
  (records delimited by newline
  )location(alert_dblog)
  );

  測試

  首先查看能否查到alert_dblog的內容

  
  SQL> select * from alert_log where rownum < ;
  TEXT
  Thu Jun  :: 
  Starting ORACLE instance (normal)
  Cannot determine all dependent dynamic libraries for /proc/self/exe
  Unable to find dynamic library libocrso in search paths
  RPATH = /ade/aime_build/oracle/has/lib/:/ade/aime_build/oracle/lib/:/a
  de/aime_build/oracle/has/lib/:
  LD_LIBRARY_PATH is not set!
  The default library directories are /lib and /usr/lib
  Unable to find dynamic library libocrbso in search paths
  Unable to find dynamic library libocrutlso in search paths
   rows selected

  測試成功

  然後我們測試查報警信息ORA%

  
  SQL> select * from alert_log where text like ORA%;
  TEXT
  ORA: control file: /oracle/u/app/oracle/product//db/dbs/cntrldb
  dbf
  ORA: unable to obtain file status
  ORA signalled during: ALTER DATABASE MOUNT
  ORA: error in adding log file /home/oracle/oracle/oradata/testdb/redol
  og  file cannot be created
  ORA: file create error
  ORA signalled during: CREATE DATABASE db
  ORA: control file could not be created
  TEXT
  ORA: control file: /oracle/u/app/oracle/product//db/dbs/cntrldb
  dbf
  ORA: created file already exists
  ORA signalled during: CREATE DATABASE db
  ORA: control file could not be created
  ORA: control file: /oracle/u/app/oracle/product//db/dbs/cntrldb
  dbf
  ORA: created file already exists
  ORA signalled during: CREATE DATABASE db

  測試成功

  可見我們可以使用外部表來方便的查看ORACLE的報警信息


From:http://tw.wingwit.com/Article/program/Oracle/201311/17260.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.