在 Ubuntu 上配置 Oracle 数据库(通常指 Oracle Database,如 19c / 21c),整体流程比 RHEL/CentOS 复杂一些,因为 Oracle 官方更推荐 RHEL 系。下面给你一个可操作的完整配置思路,以 Oracle 19c 在 Ubuntu 20.04/22.04 为例。
✅ 推荐方案
✅ 常见选择
sudo apt update
sudo apt install -y alien libaio1 unixodbc
从 Oracle 官网下载:
oracle-database-xe-21c_1.0-1.ol7.x86_64.rpm
sudo alien -i oracle-database-xe-21c_1.0-1.ol7.x86_64.rpm
sudo /etc/init.d/oracle-xe-21c configure
设置:
✅ 安装完成
sudo groupadd oinstall
sudo groupadd dba
sudo useradd -m -g oinstall -G dba oracle
sudo passwd oracle
编辑:
sudo vim /etc/sysctl.conf
添加:
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
应用:
sudo sysctl -p
sudo vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
sudo apt install -y \
build-essential \
libaio1 libaio-dev \
unixodbc \
libelf-dev \
libstdc++6 \
g++ \
unzip
⚠️ Ubuntu 缺少部分 Oracle 所需库,需要手动补(常见坑)
从 Oracle 官网下载:
LINUX.X64_193000_db_home.zip
su - oracle
mkdir -p /u01/app/oracle
unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1
vim ~/.bashrc
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
source ~/.bashrc
cd $ORACLE_HOME
./runInstaller
⚠️ Ubuntu 下 经常报错,可能需要:
cvu_prereq.xmldbca
或使用静默方式:
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname orcl \
-sid orcl \
-responseFile NO_VALUE \
-characterSet AL32UTF8
netca
或手动:
lsnrctl start
✅ 解决方法:
docker run -d \
--name oracle19c \
-p 1521:1521 \
-e ORACLE_PASSWORD=oracle \
container-registry.oracle.com/database/enterprise:19.3.0.0
| 场景 | 建议 |
|---|---|
| 学习 | ✅ Oracle XE / Docker |
| 开发 | ✅ Docker |
| 生产 | ❌ 不建议 Ubuntu |
| 想深入 | ✅ Oracle Linux |
如果你愿意,我可以:
你现在用的是 Ubuntu 几版本?想装 XE 还是 19c?