在 Ubuntu 上安装 Oracle 数据库(通常指 Oracle Database,如 11g/12c/19c)有一些容易踩坑的地方,和 RHEL/CentOS 差别比较大。下面按「注意事项 → 推荐做法」给你梳理。
✅ 建议:
| 场景 | 推荐 |
|---|---|
| 学习 | Oracle 19c (长期支持) |
| 老项目 | 11g / 12c |
| Ubuntu 版本 | 20.04 / 22.04 LTS |
⚠️ 注意:
sudo groupadd oinstall
sudo groupadd dba
sudo useradd -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
Oracle 是 rpm 包,Ubuntu 要用:
sudo apt install alien
常见依赖:
sudo apt install \
bc \
binutils \
libaio1 \
libelf-dev \
sysstat \
unixodbc
⚠️ Ubuntu 新版本可能:
libaio1glibc 版本过高导致报错LINUX.X64_193000_db_home.zip/u01/app/oracle/product/19.0.0/dbhome_1
oracle 用户运行:./runInstaller
解决方案:
sudo apt install xorg openbox
或用:
ssh -X oracle@localhost
或静默安装(进阶):
./runInstaller -silent -responseFile xxx.rsp
| 报错 | 原因 |
|---|---|
Cannot allocate memory |
shmmax 太小 |
libaio.so not found |
没装 libaio |
DISPLAY not set |
无图形 |
| 安装卡住 | swap 太小 |
建议:
swap ≥ 2G
# 环境变量
export ORACLE_HOME=...
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
启动:
sqlplus / as sysdba
startup
Ubuntu 能装 Oracle,但要做好“折腾”的心理准备;生产用 Oracle Linux,学习用 Ubuntu 19c 最稳。
如果你愿意,可以告诉我:
我可以直接给你一步步命令级安装方案。