Ubuntu Oracle安装失败原因及解决方法
导读:Ubuntu 上安装 Oracle 常见失败原因与解决思路 一 前置条件与系统支持 Oracle 官方主要支持 Oracle Linux、RHEL、SUSE,在 Ubuntu 上属于“非官方平台”,需要手动补齐依赖、内核参数与兼容设置,否...
Ubuntu 上安装 Oracle 常见失败原因与解决思路
一 前置条件与系统支持
- Oracle 官方主要支持 Oracle Linux、RHEL、SUSE,在 Ubuntu 上属于“非官方平台”,需要手动补齐依赖、内核参数与兼容设置,否则极易在检查阶段或链接阶段失败。务必先完成:创建 oracle/oinstall/dba 用户与组、准备安装目录并赋权、配置内核参数与资源限制、准备图形环境(如使用 X11 转发或安装桌面)。若使用 Oracle 11g XE,可直接用 deb 包安装,但仍需满足依赖与 swap 等条件。
二 高频失败场景与对应修复
| 症状或报错 | 常见原因 | 快速修复 |
|---|---|---|
| 依赖检查大量失败(如 libaio、gcc、ksh、unixODBC 等) | Ubuntu 仓库包名/版本与 Oracle 预期不一致 | 安装常用依赖:sudo apt-get install libaio1 libaio-dev build-essential gcc g++ ksh unixodbc unixodbc-dev rpm;若 64 位系统需 32 位库,启用多架构:sudo dpkg --add-architecture i386 & & sudo apt-get update |
| 图形界面无法启动或提示缺少 X11 | 服务器版未装桌面/X11 | 安装基础图形:sudo apt-get install x-window-system-core gnome-core;或使用 ssh -X 转发图形 |
| 安装进度约 80% 出现链接错误(如 ins_rdbms.mk: client_sharedlib、ins_ctx.mk、ins_net_client.mk) | Ubuntu 与 RHEL 的库路径不同,链接器找不到 /lib64/ 或 /usr/lib64/ 下的库 | 建立兼容软链(示例):sudo ln -s /usr/bin/awk /bin/awk;sudo ln -s /usr/bin/rpm /bin/rpm;sudo ln -s /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/;sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/;必要时创建 /usr/lib64 目录 |
| 报错找不到 /usr/lib64/libpthread_nonshared.a 或 libc_nonshared.a | 64 位系统库位于 /usr/lib/x86_64-linux-gnu/,Oracle 11g 构建脚本仍去 /usr/lib64 找 | 创建目录并软链:sudo mkdir -p /usr/lib64;sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/;sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/ |
| 安装器报 “oui not found” 或启动脚本缺失 | 32/64 位不匹配或安装介质损坏 | 确认安装包与系统架构一致(均为 x86_64 或均为 i386),重新下载校验;必要时安装 32 位兼容库 |
| 提示 “Unexpected error … getOCMDetails” | 缺少 pdksh 或邮件/OCM 配置导致 JS 校验异常 | 安装 pdksh(或临时用 ksh 替代),并在安装界面不填邮箱/不勾选 OCM 复选框以跳过 |
| 检查阶段报 Swap 空间不足 | 物理内存小或未配置 swap | 临时增加 swap 文件(示例):dd if=/dev/zero of=/swapfile bs=1M count=2048;mkswap /swapfile;swapon /swapfile,并在 /etc/fstab 加入条目以持久化 |
| 安装后监听/EM 启动失败(如 ins_emagent.mk: agent nmhs) | 目标链接脚本与系统环境不兼容 | 常见做法是编辑 $ORACLE_HOME/sysman/lib/ins_emagent.mk,将 $(MK_EMAGENT_NMECTL) 从链接命令中移除后重试(仅建议用于 11g 的已知兼容性问题) |
| 运行 sqlplus 报 “SP2-0750: You may need to set ORACLE_HOME” | 环境变量未正确设置 | 在 ~/.bashrc 或 /etc/profile.d/oracle.sh 中设置:export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1;export PATH=$ORACLE_HOME/bin:$PATH;export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH,执行 source 使其生效 |
| 以上条目覆盖了 Ubuntu 上安装 Oracle 的高频报错与可复用的修复路径,涉及依赖补齐、路径兼容软链、swap 扩容与常见 make 目标失败的处理。 |
三 标准化安装与排错流程
- 准备环境
- 创建用户与目录:groupadd oinstall;groupadd dba;useradd -g oinstall -G dba -d /opt/oracle -s /bin/bash oracle;chown -R oracle:oinstall /opt/oracle;准备 /u01/app/oracle(或你规划的 ORACLE_BASE)。
- 配置内核参数与资源限制(/etc/sysctl.conf、/etc/security/limits.conf、/etc/pam.d/common-session),执行 sysctl -p 生效。
- 安装依赖与图形环境(见上表),确保 gcc、g++、make、libaio1、ksh、unixODBC 等到位。
- 安装执行
- 以 oracle 用户解压安装介质,进入 database 目录执行:./runInstaller(若需图形,使用 ssh -X 或本地桌面)。
- 依赖检查阶段若大量失败,可先“忽略全部”进入安装,再依据日志修复缺失项(多数与路径/库版本相关)。
- 安装后配置
- 以 root 执行 $ORACLE_HOME/root.sh;使用 netca 配置监听,dbca 建库;按需配置 emca(若使用 EM)。
- 日志定位
- 安装期关键日志:$ORACLE_BASE/oraInventory/logs/installActions*.log、$ORACLE_HOME/install/make.log;运行期:$ORACLE_HOME/cfgtoollogs/。优先从日志尾部向上查看首个报错点与命令上下文,再决定是补依赖、改链接还是调参数。
四 版本选择与更省心的替代
- 若仅为学习/开发,优先选择 Oracle Database 11g XE(提供 deb 包,依赖少、部署快);安装前确保 libaio1 已装、swap 充足,安装后用 /etc/init.d/oracle-xe configure 完成初始化,访问 http://127.0.0.1:8080/apex 验证。
- 若需生产级稳定与官方支持,建议在 Oracle Linux/RHEL/SLES 上部署;在 Ubuntu 上部署属于社区实践,需投入额外兼容与维护成本。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Oracle安装失败原因及解决方法
本文地址: https://pptw.com/jishu/762412.html
