温馨提示×

oracle在centos上的日志如何查看

小樊
47
2025-10-15 05:44:06
栏目: 云计算

Oracle在CentOS上的日志查看方法

1. Oracle错误日志(Alert Log)

作用:记录数据库实例的启动/关闭状态、关键错误(如ORA-)、警告及维护操作(如归档切换),是故障排查的核心日志。
默认路径$ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace/alert_<instance_name>.log(例如:/u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log)。
查看方法

  • 使用tail命令实时查看最新日志(推荐):
    tail -f $ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace/alert_<instance_name>.log 
  • 直接打开文件查看历史记录(需切换至Oracle用户或使用sudo):
    sudo vi $ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace/alert_<instance_name>.log 

说明$ORACLE_BASE通常为Oracle安装用户的家目录(如/u01/app/oracle),<db_name>为数据库名(如orcl),<instance_name>为实例名(通常与数据库名一致)。

2. 监听器日志(Listener Log)

作用:记录客户端连接请求、监听器状态变化及连接错误(如TNS-12541),用于排查网络或连接问题。
默认路径$ORACLE_HOME/network/log/listener.log(例如:/u01/app/oracle/product/19c/network/log/listener.log)。
查看方法

  • 实时查看最新连接记录:
    tail -f $ORACLE_HOME/network/log/listener.log 
  • 查看特定时间段日志(如最近100行):
    tail -n 100 $ORACLE_HOME/network/log/listener.log 

说明:可通过lsnrctl status命令验证监听器是否运行(需Oracle用户权限)。

3. 跟踪日志(Trace Logs)

作用:记录会话级详细操作(如SQL执行、锁等待、死锁),用于深度分析性能问题或异常行为。
路径获取方法

  • 登录SQL*Plus(以SYSDBA身份):
    sqlplus /nolog connect / as sysdba 
  • 执行SQL查询跟踪日志目录:
    SHOW PARAMETER USER_DUMP_DEST; 
    结果中的VALUE即为跟踪日志路径(例如:/u01/app/oracle/diag/rdbms/orcl/orcl/trace)。
    查看方法
  • 进入跟踪日志目录,查看最新会话跟踪文件(文件名包含ora_<pid>.trc):
    cd $ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace ls -lt | grep ora_*.trc # 按修改时间排序,查看最新文件 tail -f ora_<pid>.trc # 实时跟踪特定会话日志 

说明:跟踪日志文件较大,建议通过tkprof工具格式化分析(如tkprof ora_12345.trc output.txt)。

4. 审计日志(Audit Logs)

作用:记录数据库操作(如DDL、DML、登录/登出),用于安全审计和合规性检查。
路径获取方法

  • 登录SQL*Plus,执行SQL查询审计日志目录:
    SHOW PARAMETER AUDIT_FILE_DEST; 
    结果中的VALUE即为审计日志路径(例如:/u01/app/oracle/admin/orcl/adump)。
    查看方法
  • 直接查看审计日志文件(文件名包含audit_*.log):
    cd $AUDIT_FILE_DEST tail -f audit_*.log 

说明:需提前开启审计功能(如AUDIT SELECT TABLE BY scott BY ACCESS;)。

5. 归档日志(Archive Logs)

作用:记录重做日志(Redo Logs)的内容,用于数据库恢复(如介质恢复),是归档模式下的关键日志。
路径获取方法

  • 登录SQL*Plus,执行SQL查询归档日志路径:
    SHOW PARAMETER LOG_ARCHIVE_DEST; 
    结果中的VALUE即为归档日志路径(例如:/u01/app/oracle/archivelog)。
    查看方法
  • 进入归档日志目录,查看最新归档文件(文件名包含archivelog_*.arc):
    cd $LOG_ARCHIVE_DEST ls -lt | grep archivelog_*.arc # 按修改时间排序,查看最新文件 

说明:需确认数据库处于归档模式(执行ARCHIVE LOG LIST,若显示“Database log mode: Archive Mode”则为开启状态)。

6. 在线重做日志(Online Redo Logs)

作用:记录数据库的实时更改(如INSERT、UPDATE),用于实例恢复,是数据库运行的核心日志。
路径获取方法

  • 登录SQL*Plus,执行SQL查询在线重做日志路径:
    SELECT * FROM V$LOGFILE; 
    结果中的MEMBER列即为在线重做日志文件路径(例如:/u01/app/oracle/oradata/orcl/redo01.log)。
    查看方法
  • 在线重做日志文件为二进制格式,无法直接查看。需通过V$LOG视图查看日志状态(如当前日志组、是否归档):
    SELECT GROUP#, STATUS, SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$LOG; 

说明:在线重做日志文件由Oracle自动管理,无需手动修改。

注意事项

  • 权限问题:查看Oracle日志需具备Oracle用户权限(或使用sudo -u oracle切换至Oracle用户)。
  • 日志轮换:Oracle会自动轮换日志文件(如归档日志、跟踪日志),旧日志会被压缩或删除,需定期备份重要日志。
  • 工具辅助:对于大规模日志分析,可使用ELK Stack(Elasticsearch+Logstash+Kibana)或Splunk等工具实现集中管理和可视化。

0