温馨提示×

Ubuntu Oracle常见问题有哪些

小樊
45
2025-12-06 21:02:55
栏目: 云计算

Ubuntu 上部署与运行 Oracle 的常见问题清单

一 安装与依赖问题

  • 依赖包缺失导致编译或安装失败:常见如 libaio1、libaio-dev、build-essential、unzip、wget、ksh、rpm、x11-utils 等未安装;建议先执行 sudo apt-get update 再按需安装,网络不稳时使用镜像源或 --fix-missing 重试。部分旧版本还需要 32 位兼容库(如 lib32z1、libc6-i386)。
  • 链接阶段报错(如 “Error in invoking target ‘agent nmhs’ of makefile”):编辑 $ORACLE_HOME/sysman/lib/ins_emagent.mk,将 $(MK_EMAGENT_NMECTL) 改为 $(MK_EMAGENT_NMECTL) -lnnz11 后点 Retry 继续。
  • 链接器参数导致构建失败:在 $ORACLE_HOME/network/lib/env_network.mk$ORACLE_HOME/rdbms/lib/env_rdbms.mk$ORACLE_HOME/bin/genorasdksh$ORACLE_HOME/srvm/lib/ins_srvm.mk 中,为链接行追加 -Wl,–no-as-needed 以适配新版本 ld
  • 旧系统/旧版本 Oracle 的兼容性处理:个别教程会创建 /etc/redhat-release 以通过版本检测,但这属于变通方案,优先建议使用受支持的发行版与版本组合。

二 环境变量与命令找不到

  • 执行 sqlplus/lsnrctl/emctl 报 “command not found”:未将 $ORACLE_HOME/bin 加入 PATH,或未设置 ORACLE_HOME/ORACLE_SID。推荐在 ~/.bashrc/etc/profile 中统一配置:
    • export ORACLE_HOME=/opt/oracle/app/oracle/product/11.2.0/dbhome_1
    • export ORACLE_SID=orcl
    • export PATH=$ORACLE_HOME/bin:$PATH
    • export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
      修改后执行 source 使其生效。
  • 登录报错 ORA-12162: TNS:net service name is incorrectly specified:未设置 ORACLE_SID,执行 export ORACLE_SID=orcl 后再登录。
  • 不建议将可执行文件硬拷贝到 /bin 来解决“找不到命令”,应通过环境变量与 PATH 正确暴露 $ORACLE_HOME/bin

三 监听与网络连接问题

  • 监听未运行或数据库未注册到监听:先启动监听 lsnrctl start,若仍无法连接,检查 $ORACLE_HOME/network/admin/listener.ora 是否包含数据库 SID 描述:
    • SID_LIST_LISTENER =
      (SID_LIST =
      (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME = /opt/oracle/app/oracle/product/11.2.0/dbhome_1)
      )
      )
      修改后重启监听。
  • 客户端报 ORA-12514: TNS:listener does not currently know of service requested in connect descriptor:通常是监听未识别服务名,确保数据库已注册(静态注册如上,或动态注册生效),并使用正确的服务名连接。
  • 访问 EM 控制台失败并提示监听未启动或数据库未注册:先确保监听已起,再启动 emctl start dbconsole;必要时执行 emca -config dbcontrol db -repos recreate 重建资料库。

四 首次启动与日常运维问题

  • 登录后提示数据库未打开:以 sqlplus / as sysdba 进入后执行 startup(或 startup mountalter database open)。
  • 多用户/切换用户后命令不可用:各用户需各自配置 ORACLE_HOME、ORACLE_SID、PATH、LD_LIBRARY_PATH 等环境变量,建议在 ~/.bashrc~/.profile 中设置并 source。
  • 图形化安装或 EM 界面问题:需正确设置 DISPLAY(如 export DISPLAY=:0.0)并确保 X11 转发可用;界面乱码可按需设置 LANG
  • 系统资源限制过低:需调整内核与网络参数,例如 kernel.shmall、kernel.shmmax、fs.file-max、fs.aio-max-nr、net.core.rmem_default/wmem_default、net.core.rmem_max/wmem_max、ip_local_port_range,以避免共享内存、文件句柄、异步 I/O 或端口范围不足。

五 快速排查清单

  • 核对环境变量:echo $ORACLE_HOME、$ORACLE_SID、$PATH、$LD_LIBRARY_PATH 是否指向正确安装与实例。
  • 检查监听:lsnrctl status;必要时查看 listener.oratnsnames.ora 一致性与语法。
  • 查看告警与安装日志:如 $ORACLE_HOME/cfgtoollogs/ 下的日志,定位安装/配置阶段的具体报错。
  • 以 sysdba 登录确认实例状态:sqlplus / as sysdba → select status from v$instance;
  • 若使用 EM:确认监听已起后再执行 emctl status dbconsole;异常时用 emca 重建资料库。

0