以下是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技术支持获取针对性解决方案。