在 Ubuntu 上安装 Oracle 数据库(通常指 Oracle Database,如 11g/12c/19c)有不少“坑”,因为 Oracle 官方主要支持 RHEL / CentOS / OL(Oracle Linux),对 Ubuntu 不是一等公民。下面按「重点注意事项 + 实操建议」给你梳理。
This OS is not supported
cvu_prereq.xml./runInstaller -ignorePrereq
Ubuntu 默认缺很多 Oracle 依赖:
sudo apt update
sudo apt install -y \
bc binutils build-essential \
libaio1 libaio-dev \
libelf-dev libsdl1.2debian \
libstdc++5 libstdc++6 \
unixodbc unixodbc-dev \
sysstat rpm ksh \
libxrender1 libxp6
⚠️ 某些包名在 22.04 变了(如 libaio1 → libaio1t64)
sudo groupadd oinstall
sudo groupadd dba
sudo useradd -m -g oinstall -G dba oracle
sudo passwd oracle
编辑 /etc/sysctl.conf:
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmax = 4294967295
kernel.shmall = 2097152
net.ipv4.ip_local_port_range = 9000 65500
然后:
sudo sysctl -p
编辑 /etc/security/limits.conf:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
推荐:
/u01/app/oracle
/u01/app/oraInventory
并赋权:
sudo mkdir -p /u01/app/oracle
sudo chown -R oracle:oinstall /u01
su - oracle
./runInstaller
如果你只是“用 Oracle”,不是“学安装”:
docker run -d \
-p 1521:1521 \
-e ORACLE_PASSWORD=123456 \
container-registry.oracle.com/database/enterprise:19.3.0
✅ 避免 90% 的坑
| 问题 | 原因 |
|---|---|
| 安装界面乱码 | 缺中文字体 / 环境变量 |
| 启动报错 ORA-00845 | shm 太小 |
| listener 起不来 | 主机名未解析 |
| sqlplus 找不到 | 环境变量没配 |
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
Ubuntu 上装 Oracle:能 Docker 就 Docker,不能就 19c + 严格按官方参数来。
如果你愿意,我可以:
你现在是「学习安装」还是「业务要用」?