作业帮 > Oracle > 教育资讯

如何利用oracle外部表查看报警信息[1]

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/12 09:24:05 Oracle
如何利用oracle外部表查看报警信息[1]
如何利用oracle外部表查看报警信息[1]Oracle
【51Test.NET - Oracle】
如何利用oracle外部表查看报警信息

  首先了解什么是外部表,与其它表的区别,建立一个简单的外部表(主要看操作过程),最后我们用外部表查看Oracle报警日志

  一.了解oracle外部表

  外部表定义:结构被存放在数据字典,而表数据被放在OS文件中的表

  作用:在数据库中查询OS文件的数据,还可以将OS文件数据装载到数据库中

  与其它表的区别:在外部表上不能执行DML操作,也不能在外部表上建索引,只能执行select操用

  二.建一个简单的外部表

  1.建一个OS上的文件

  因为外部表主要是查看OS上的文件,首先在OS上建一个文件


  mkdir -p /oracle/ext
  vi /oracle/ext/ext.dat
  10,20,30
  40,50,60
  70,80,90


  2.授予用户权限,并建立目录对象

  在此我们先建一个新用户


  create user test identified by “123” default tablespace test quota unlimited on test;


  用户授权


  SQL> grant create any directory to test;


  建立目录对象


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


  3.建立外部表


  SQL> create table exttable(
  id number,name varchar2(10),i number
  )organization external
  (type oracle_loader
  default directory ext
  Access parameters
  (records delimited by newline
  fields terminated by ','
  )location('ext.dat')
  );


  4.测试


  SQL> select * from exttable;
  ID NAME I
  ---------- ---------- ----------
  10 20 30
  40 50 60
  70 80 90


  测试成功,可见在数据库中可以查询OS文件的数据

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

  由于在上面实验中已建立了一个用户,并赋相应的权限,而且也有了OS文件(即报警文件alert_SID.log),所以在此直接建立目录对象并建立外部表就可以了。

  1.建立目录对象


  SQL> conn test / 123
  Connected.
  SQL> create directory bdump as '/oracle/u01/app/oracle/admin/DB2/bdump';
  Directory created.


  2.建立外部表


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


  3.测试

  首先查看能否查到alert_db2.log的内容


  SQL> select * fromOracle