Linux Oracle故障诊断可按以下步骤进行:
-
查看错误日志
- 定位到
ORACLE_BASE/diag/rdbms/dbname/instance_name/trace目录,检查alert.log和trace文件,使用grep "ORA-"搜索错误代码。 - 使用
oerr工具分析错误代码,如oerr ora 12345获取错误详情。
- 定位到
-
检查系统资源
- 用
top、htop、df -h、free -m等命令监控CPU、内存、磁盘空间使用情况。 - 检查文件系统类型及挂载参数,确保适合Oracle运行。
- 用
-
验证数据库状态
- 通过
sqlplus连接数据库,执行SELECT status FROM v$instance;确认实例状态是否为OPEN。 - 检查监听器状态:
lsnrctl status,未启动则用lsnrctl start。
- 通过
-
分析SQL与配置
- 用
AWR报告或SQL Trace工具分析慢SQL,优化执行计划。 - 检查
init.ora/spfile.ora等配置文件参数是否合理,如SGA、PGA大小。
- 用
-
使用诊断工具
- 启用ADR(Automatic Diagnostic Repository)收集诊断数据:
ADMINISTER DIAGNOSTIC SETTINGS。 - 通过
LogMiner分析重做日志,定位事务异常。
- 启用ADR(Automatic Diagnostic Repository)收集诊断数据:
-
检查权限与环境
- 确保Oracle用户对数据文件、日志目录有读写权限,用
chown/chmod调整。 - 验证内核参数(如
kernel.shmmax、fs.file-max)是否符合Oracle要求。
- 确保Oracle用户对数据文件、日志目录有读写权限,用
-
其他高级操作
- 若为RAC环境,检查集群状态:
crsctl check crs。 - 复杂问题可联系Oracle支持,提供日志和错误信息。
- 若为RAC环境,检查集群状态:
注意:操作前备份重要数据,重大变更需在测试环境验证。