温馨提示×

ubuntu oracle为何启动不了

小樊
33
2026-09-10 18:54:33
栏目: 云计算

在 Ubuntu 上 Oracle 数据库启动不了 的原因很多,下面按最常见原因 → 排查方法 → 解决思路给你一个系统清单,你可以逐条对照。


一、先确认你用的是哪种 Oracle

  • Oracle 11g / 12c / 19c
  • 是否使用 listener + dbca 创建数据库
  • 是系统重启后起不来,还是手动启动失败

二、最常见启动失败原因(按概率)

1️⃣ ORACLE_HOME / ORACLE_SID 没设置

现象

sqlplus / as sysdba
ORA-12162: TNS:net service name is incorrectly specified

解决

export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH

2️⃣ 监听器没启动(Listener)

现象

ORA-12541: TNS:no listener

检查

lsnrctl status

启动

lsnrctl start

3️⃣ 数据库实例没启动

检查

sqlplus / as sysdba
SQL> select status from v$instance;

启动

startup;

4️⃣ 共享内存 / 内核参数问题(最常见于 19c)

报错示例

ORA-00845: MEMORY_TARGET not supported on this system

原因

  • /dev/shm 太小

解决

df -h /dev/shm

编辑 /etc/fstab

tmpfs /dev/shm tmpfs defaults,size=2G 0 0
mount -o remount /dev/shm

5️⃣ 数据文件 / 控制文件损坏

报错

ORA-01157 / ORA-01110

查看

select * from v$recover_file;

6️⃣ 权限问题(oracle 用户)

id oracle

确保:

  • ORACLE_HOME 属主是 oracle:oinstall
  • 使用 oracle 用户启动,不是 root

7️⃣ Ubuntu 特有坑(非常常见)

Ubuntu 不是 Oracle 官方支持系统

常见问题:

  • glibc 版本不兼容
  • 缺少 32 位库(11g)
  • systemd 不友好

建议

  • CentOS / RHEL / Oracle Linux
  • 或 Docker 跑 Oracle

三、快速自检清单(复制执行)

whoami
echo $ORACLE_HOME
echo $ORACLE_SID
lsnrctl status
sqlplus / as sysdba

四、你可以直接把错误发我

如果你愿意,把下面信息贴出来,我可以精准定位

  1. Oracle 版本
  2. Ubuntu 版本
  3. 完整报错(命令 + 输出)
  4. 是重启后起不来,还是刚装完

我可以一步一步带你修 ✅

0