-
监听器无法启动或客户端连不上
- 检查环境变量:echo $ORACLE_HOME $TNS_ADMIN;确保 listener.ora 与 tnsnames.ora 在 $TNS_ADMIN 或 $ORACLE_HOME/network/admin。
- 查看监听日志 listener.log 的错误细节;必要时执行 lsnrctl stop/start。
- 网络连通性:ping、tnsping <服务名>;排查 iptables/firewalld 与端口占用(默认 1521)。
- 配置修正后重启监听与数据库再测。
-
实例起不来或启动缓慢
- 查告警日志与 v$diag_info 的 Default Trace File,优先定位首个报错点。
- 资源与空间:用 df -h 检查 /u01 等挂载点、free -m 看内存;空间不足先扩容或清理归档/跟踪。
- 关键参数:SHOW PARAMETERS sga_target pga_aggregate_target processes;内存不足时先调小再逐步放大。
- 表空间:SELECT * FROM dba_tablespaces; 与 dba_data_files; 检查是否 OFFLINE/NEED_RECOVERY 或数据文件缺失。
-
ORA-27154 / ORA-27300 等系统资源类错误
- 含义多与操作系统资源限制、内核参数或内存不足相关。
- 检查系统资源:top/free/df;确认 /dev/shm 大小(Oracle 强烈依赖);必要时增大并重启实例。
- 检查 /etc/security/limits.conf 中 oracle 用户的 nofile/nproc 等限制;检查 vm.nr_hugepages、kernel.shmmax/shmall 等内核参数是否匹配 SGA 规划。
-
仅客户端或工具连不通(Instant Client/SQL*Plus)
- 安装依赖:sudo apt-get install libaio1 libaio-dev。
- 设置环境变量:
- ORACLE_HOME=/usr/lib/oracle/<版本>/client64
- TNS_ADMIN=$ORACLE_HOME/network/admin
- PATH=$ORACLE_HOME/bin:$PATH
- LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
- 验证 sqlplus user/pass@//host:1521/service 与 tnsping。
- 注意:Instant Client 的 RPM→DEB 转换(如用 alien)并非官方支持路径,优先使用 Oracle 提供的 DEB 包/仓库。
-
安装或链接阶段报错(多见于 11gR2 在 Debian 上)
- 常见报错与修复示例:
- ins_emagent.mk:执行
sed -i ‘s/^(\s*$(MK_EMAGENT_NMECTL))\s*$/\1 -lnnz11/g’ $ORACLE_HOME/sysman/lib/ins_emagent.mk
- ins_rdbms.mk / env_rdbms.mk / genorasdksh / ins_srvm.mk:为链接器添加 -Wl,–no-as-needed(示例)
sed -i ‘s/^(TNSLSNR_LINKLINE.*$(TNSLSNR_OFILES)LINKTTLIBS))/\1 -Wl,–no-as-needed \2/g’ $ORACLE_HOME/network/lib/env_network.mk
- 说明:Debian/Ubuntu 并非官方受支持平台,遇到部分 prerequisite 告警可结合日志与社区经验处理,但需充分测试与回退预案。