如何编辑,读取和查询Alert.Log(文档ID 1072547.1)

目的:
每个数据库都有一个alert.log。 数据库的警报日志是包含内部错误(ORA-600/7445),损坏错误和死锁错误(ORA-60),管理操作以及SQL * Plus语句STARTUP,SHUTDOWN, 存档日志和恢复。


每次发生这些事件时,Oracle都会向警报日志写入数据。


本笔记根据警报日志的常见问题提供有关阅读,编辑和查询警报日志的信息。


方案:


1.如果警报日志被删除会发生什么?


如果删除警报日志,则在下次发生警报日志中记录的事件时,Oracle会自动创建新日志。




2.如果警报日志被锁定,是否会更新?


如果警报日志在数据库启动或运行时由应用程序打开,则可能会遇到问题,即需要从磁盘重新加载警报日志,并且将丢失发布到应用程序的更改。如果您不从磁盘重新加载警报日志,则在保存警报日志时,启动/事件所做的更改将会丢失。


例如:


a.警报日志在文本编辑器中打开并进行更改。
b.更改系统切换日志文件;发布
c.日志文件切换记录将不会发布,直到编辑器释放锁定。如果保存编辑器中所做的更改,日志切换将不会发布到警报日志中。




3.如何将自己的消息写入警报日志。


如果要将消息写入警报日志,则可以使用未记录的KSDWRT过程(DBMS_SYSTEM的一部分)。


关于DBMS_SYSTEM的注意事项:
实际上,只有在Oracle支持人员要求时才能安装该软件包。
它没有记录在服务器文档中。
因此,软件包的功能可能会改变,恕不另行通知
它仅在Oracle支持人员的指导下使用,否则不受支持。


根据内部注释153324.1:
一般来说,如果一个软件包根本不在Oracle文档中,这是故意的,因为它不适合最终用户使用。 客户应避免使用未记录的软件包,除非有特别指示使用它们
Oracle支持或Oracle开发。


sys.dbms_system.ksdwrt的第一个参数表示目标:


*使用1写入跟踪文件。
*使用2写入“alert.log”。
*使用3写入两者。


第二个参数是消息。


例:


begin
sys.dbms_system.ksdwrt(2, 'My own message');
end;
/


4.如何使用SQL查询警报日志。


从9i开始,您可以将外部平面文件映射到Oracle表格。


在11g中,X $ DBGALERTEXT现在以表格形式存在。 您可以查询表格以获取所需的特定列。

猜你喜欢

转载自blog.csdn.net/qq_21127313/article/details/80496451