在 Debian 上安装 Oracle 数据库(通常指 Oracle Database,如 11g/12c/19c)报错是非常常见的现象,根本原因是:Oracle 官方只支持特定的 Linux 发行版(主要是 RHEL / OEL / SLES),并不官方支持 Debian / Ubuntu。
下面按「常见原因 → 典型报错 → 解决办法」给你梳理一下。
runInstaller)会做操作系统版本检查,Debian 直接不通过典型报错:
Checking operating system version: must be redhat-7, oracle-7, ...
Expected "redhat-7" but found "debian-12"
✅ 解决:
/etc/os-release 伪装成 RHEL(临时)cvu / runInstaller 中加参数跳过检查(不推荐生产)Debian 的库名和 RHEL 不一样,比如:
| RHEL 包 | Debian 对应 |
|---|---|
| compat-libstdc++ | libstdc++5 |
| libaio | libaio1 |
| pdksh | ksh / mksh |
| gcc | gcc / g++ |
典型报错:
libaio.so.1: cannot open shared object file
Error in invoking target 'client_sharedlib'
✅ 解决:
apt install -y \
alien \
autoconf \
bc \
binutils \
gcc \
g++ \
libaio1 \
libstdc++5 \
ksh \
make \
sysstat
Oracle 需要修改:
kernel.semkernel.shmmaxfs.file-maxoracle 用户的 ulimit典型报错:
Prerequisite checks failed
Failed to verify kernel parameters
✅ 解决(/etc/sysctl.conf):
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmax = 4294967295
然后:
sysctl -p
Oracle 要求:
oracle 用户oinstall、dba 组典型报错:
Permission denied
INS-32011: Unable to create directory
✅ 解决:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
chown -R oracle:oinstall /u01
典型报错:
version `GLIBC_2.xx' not found
✅ 解决:
docker run -d \
-p 1521:1521 \
container-registry.oracle.com/database/enterprise:19.3.0
优点:
如果你必须“原生安装”:
你可以直接贴出:
cat /etc/os-release)我可以一步一步帮你定位 ✅