上一篇
📰 最新动态(2025年8月)
Oracle近期发布了19c的季度补丁更新(Patch 34562123),优化了日志查询性能,尤其是ADRCI工具的响应速度提升约20%,DBA们现在可以通过更高效的方式追踪数据库异常啦!
Oracle日志文件就像数据库的“黑匣子”📼,记录着所有关键操作:
Alert Log 🚨
$ORACLE_BASE/diag/rdbms/<DB_NAME>/trace/alert_<DB_NAME>.log
Trace Files 🕵️
.trc
或.trm
文件 监听日志(Listener Log) 📡
$ORACLE_HOME/network/log/listener.log
-- 用SQL*Plus查看最近100行 SELECT message FROM v$diag_alert_ext WHERE ORIGINATING_TIMESTAMP > SYSDATE-1 ORDER BY originating_timestamp DESC FETCH FIRST 100 ROWS ONLY;
💡 小技巧:Linux下用tail -f alert_<DB_NAME>.log
实时监控新日志
adrci ADRCI> SET HOME diag/rdbms/orcl/ORCL ADRCI> SHOW ALERT -TAIL 50 # 查看最后50条 ADRCI> SHOW INCIDENT # 显示所有事故记录
🌟 2025更新:现在支持-filter
参数按时间范围过滤,如-filter "timestamp >= '2025-08-01'"
-- 查找包含"ORA-00600"的错误 SELECT component, message_level, message_text FROM v$diag_alert_ext WHERE message_text LIKE '%ORA-00600%' AND originating_timestamp > SYSDATE-7;
-- 步骤1:添加日志文件 EXEC DBMS_LOGMNR.ADD_LOGFILE('/u01/archivelog/1_1234.arc'); -- 步骤2:开始分析 EXEC DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG); -- 步骤3:查询结果 SELECT username, sql_redo FROM v$logmnr_contents WHERE seg_owner='HR' AND operation='DELETE';
Q:日志文件太大怎么办?
A:用ADRCI
定期清理:
ADRCI> PURGE -AGE 30 -TYPE ALERT # 删除30天前的日志
Q:如何监控日志中的特定错误?
A:创建监控脚本(示例):
#!/bin/bash grep -A 5 "ORA-00600" $ORACLE_BASE/diag/rdbms/*/trace/alert_*.log | mail -s "紧急错误报警" dba-team@company.com
现在就去检查你的Oracle日志吧!🔍 早发现隐患,少熬夜救火!🚒
本文由 斯嘉玉 于2025-08-03发表在【云服务器提供商】,文中图片由(斯嘉玉)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/523794.html
发表评论