以下是CentOS上Oracle故障排查的核心技巧,涵蓋日志分析、狀態檢查、工具使用等關鍵環節:
服務與監聽器狀態
systemctl status oracle
,未運行則啟動:systemctl start oracle
。lsnrctl status
,未啟動則執行lsnrctl start
。日志文件分析
$ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace/alert_<instance_name>.log
,使用tail -f
實時查看或grep "ORA-"
過濾錯誤。$ORACLE_HOME/listener/log/listener.log
,排查網絡連接問題。adrci
工具查看:adrci show alert
。資源使用情況
top
、free -h
、df -h
、iostat
,確保無資源耗盡。網絡連通性
ping
測試客戶端到服務器的網絡延遲,traceroute
定位網絡跳數和丟包點。systemctl stop firewalld
,或放行Oracle端口(默認1521)。參數配置驗證
SHOW PARAMETERS
,重點關注SGA_TARGET
、PGA_AGGREGATE_TARGET
等內存參數。SELECT * FROM v$parameter WHERE isdefault = 'FALSE'
識別修改過的參數。表空間與數據文件
SELECT tablespace_name, used_space, free_space FROM dba_tablespace_usage_metrics
,確保無空間不足。SELECT file_name, status FROM dba_data_files
,確認文件存在且為AVAILABLE
。AWR與ASH報告
@ORACLE_HOME/rdbms/admin/awrreport.sql
,分析性能瓶頸(如SQL執行慢、等待事件)。SELECT * FROM v$active_session_history
,定位活躍會話和資源占用。SQL*Plus與RMAN
SELECT * FROM v$session_event
查看會話等待事件,SELECT * FROM v$sql
分析慢SQL。RMAN> DELETE EXPIRED ARCHIVELOG ALL
。用戶權限驗證
chown -R oracle:oinstall $ORACLE_HOME
。echo $ORACLE_HOME
、echo $PATH
,確認指向正確路徑。依賴包檢查
rpm -qa | grep oracle
確認安裝包完整,缺失時通過yum install
補充(如oracle-database-preinstall
)。操作建議:優先通過日志定位錯誤代碼(如ORA-),再結合工具逐步排查資源、配置或軟件問題。復雜故障可聯系Oracle技術支持獲取針對性解決方案。