数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

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


发布日期:2021年05月20日
 
如何利用oracle外部表查看报警信息

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

了解oracle外部表

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

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

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

建一个简单的外部表

建一个OS上的文件

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

mkdirp/oracle/ext

vi/oracle/ext/extdat

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

在此我们先建一个新用户

createusertestidentifiedbydefaulttablespacetestquotaunlimitedontest;

用户授权

SQL>grantcreateanydirectorytotest;

建立目录对象

SQL>conntest/

Connected

SQL>createdirectoryextas/oracle/ext;

Directorycreated

建立外部表

SQL>createtableexttable(

idnumbernamevarchar()inumber

)organizationexternal

(typeoracle_loader

defaultdirectoryext

Accessparameters

(recordsdelimitedbynewline

fieldsterminatedby

)location(extdat)

);

测试

SQL>select*fromexttable;

IDNAMEI

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

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

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

建立目录对象

SQL>conntest/

Connected

SQL>createdirectorybdumpas/oracle/u/app/oracle/admin/DB/bdump;

Directorycreated

建立外部表

SQL>createtablealert_log(

textvarchar()

)organizationexternal

(typeoracle_loader

defaultdirectorybdump

accessparameters

(recordsdelimitedbynewline

)location(alert_dblog)

);

测试

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

SQL>select*fromalert_logwhererownum<;

TEXT

ThuJun::

StartingORACLEinstance(normal)

Cannotdeterminealldependentdynamiclibrariesfor/proc/self/exe

Unabletofinddynamiclibrarylibocrsoinsearchpaths

RPATH=/ade/aime_build/oracle/has/lib/:/ade/aime_build/oracle/lib/:/a

de/aime_build/oracle/has/lib/:

LD_LIBRARY_PATHisnotset!

Thedefaultlibrarydirectoriesare/liband/usr/lib

Unabletofinddynamiclibrarylibocrbsoinsearchpaths

Unabletofinddynamiclibrarylibocrutlsoinsearchpaths

rowsselected

测试成功

然后我们测试查报警信息ORA%

SQL>select*fromalert_logwheretextlikeORA%;

TEXT

ORA:controlfile:/oracle/u/app/oracle/product//db/dbs/cntrldb

dbf

ORA:unabletoobtainfilestatus

ORAsignalledduring:ALTERDATABASEMOUNT

ORA:errorinaddinglogfile/home/oracle/oracle/oradata/testdb/redol

ogfilecannotbecreated

ORA:filecreateerror

ORAsignalledduring:CREATEDATABASEdb

ORA:controlfilecouldnotbecreated

TEXT

ORA:controlfile:/oracle/u/app/oracle/product//db/dbs/cntrldb

dbf

ORA:createdfilealreadyexists

ORAsignalledduring:CREATEDATABASEdb

ORA:controlfilecouldnotbecreated

ORA:controlfile:/oracle/u/app/oracle/product//db/dbs/cntrldb

dbf

ORA:createdfilealreadyexists

ORAsignalledduring:CREATEDATABASEdb

测试成功

可见我们可以使用外部表来方便的查看ORACLE的报警信息

上一篇:ASP 中通过OLEDB访问 Oracle 的代码

下一篇:linux下oracle数据库的启动和关闭