Oracle 错误日志文件

Posted

技术标签:

【中文标题】Oracle 错误日志文件【英文标题】:Oracle error log file 【发布时间】:2011-07-07 23:00:52 【问题描述】:

我在 Oracle 中运行以下代码块(它的作用不是那么重要)

BEGIN
  SDO_RDF_INFERENCE.CREATE_RULES_INDEX(
    'my_index',
    SDO_RDF_Models('my_model'),
    SDO_RDF_Rulebases('RDFS'));
END;

并出现以下错误:

ORA-29532: Java call terminated by uncaught Java exception: java.lang.NullPointerException
ORA-06512: at "MDSYS.RDF_APIS_USER", line 7
ORA-06512: at "MDSYS.RDF_APIS_USER", line 9
ORA-06512: at "MDSYS.RDF_APIS", line 477
ORA-06512: at line 2
29532. 00000 -  "Java call terminated by uncaught Java exception: %s"
*Cause:    A Java exception or error was signaled and could not be
           resolved by the Java code.
*Action:   Modify Java code, if this behavior is not intended.

问题:如何访问 Oracle 错误日志或其他内容以获取完整的堆栈跟踪或任何其他有关异常的信息。

【问题讨论】:

【参考方案1】:

通常只有 DBA 拥有查看 Oracle 日志的基本权限。 但是,如果你有足够的权利:

select value from v$parameter t
where t.NAME='background_dump_dest'

此查询将返回 Oracle 服务器机器上的 Oracle 警报日志和 trace\dump 文件的文件路径。 警报日志 (Alert_"databasename".log) 按时间顺序记录消息和错误,并包含指向与其关联的 trace\dump 文件的指针。

您还可以使用 Oracle 企业管理控制台在目标数据库中的“警报日志内容”链接之后查看 alert_.log。

【讨论】:

【参考方案2】:

这没有回答有关如何在日志中查看更多信息的问题,但您可能需要查看this 以了解错误的一些可能原因。通常是因为您没有被授予对您尝试访问的 Oracle 对象的权限。

【讨论】:

【参考方案3】:

在调用失败的存储过程之前尝试在您的 Oracle SQL 会话中执行此语句:

dbms_java.set_output(32000);

这将导致 Oracle JVM 将 Java 堆栈跟踪附加到 DBMS 输出,然后您可以更详细地检查它。

【讨论】:

以上是关于Oracle 错误日志文件的主要内容,如果未能解决你的问题,请参考以下文章

归档—监控ORACLE数据库告警日志

有关oracle数据库中的错误日志,请指教,谢谢

oracle日志是明文查看还是密文

ORACLE的Job是不是有日志文件,如果有如何查看ORACLE 的Job的日志?

如何删除大量oracle中的小trace文件

oracle 如何查看日志?