Oracle 19c 可在 Proxmox VE 虚拟机中安装,但须严格满足硬件(≥16GB内存、≥4vCPU、virtio-scsi磁盘、≥16GB swap)、内核参数、系统库及权限等官方要求,并推荐使用响应文件静默安装。

Oracle 19c 在 Proxmox VE 虚拟机中能装,但必须绕过几个硬性限制:不是所有虚拟机配置都适合跑 Oracle;直接照搬物理机部署脚本大概率失败。
虚拟机硬件配置必须满足 Oracle 官方最低要求
Oracle 19c 对 Linux 虚拟机有明确的资源底线,Proxmox 中新建虚拟机时不能只看“够用”,得按 Oracle 文档卡死:
-
内存:至少 16GB(sga_target和pga_aggregate_target合计需 ≥ 4GB,系统+Oracle 进程本身吃掉不少) -
vCPU:≥ 4 核(单实例不建议超线程混用,Proxmox 中勾选cpu type: host并关闭NUMA模拟) -
磁盘:必须为virtio-scsi或qemu驱动(IDE或virtio-blk在高 I/O 下会触发ORA-01115类错误) -
swap分区:必须存在且 ≥ 16GB(Oracle 安装器会检查/proc/swaps,缺失直接报错PRVF-0401)
注意:
tmpfs挂载的/tmp不被认可——Oracle 安装过程写大量临时文件,必须是真实磁盘分区。
操作系统层必须打补丁,否则安装器直接退出
CentOS/RHEL 7/8 或 Debian 11/12 装完不能直接上 Oracle。常见挂点:
-
kernel.sem值不对 → 报错PRVF-0120 -
fs.aio-max-nr未调高 → 安装中途卡在Running prerequisite checks - 缺少
libnsl.so.1(RHEL 8+/Debian 12 默认不带)→./runInstaller启动失败,提示error while loading shared libraries
用以下命令一次性修正(以 root 执行):
cat /etc/sysctl.d/99-oracle.conf kernel.sem = 250 32000 100 128 fs.aio-max-nr = 1048576 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.wmem_default = 262144 EOF sysctl --system <p>echo '/lib64/libnsl.so.1' > /etc/ld.so.conf.d/oracle.conf && ldconfig</p>
别漏掉
ldconfig,否则runInstaller仍找不到库。
Oracle 安装包解压路径和权限不能出错
Proxmox 虚拟机里解压 LINUX.X64_193000_db_home.zip 时,容易踩两个坑:
- 解压到
/home/oracle下但没改属主 →oracle:oinstall权限缺失,图形界面安装器启动白屏 - 使用
root解压后切换用户执行runInstaller→ 环境变量(如ORACLE_HOME)未加载,报ORA-12547: TNS:lost contact
正确做法:
- 用
oracle用户登录(非sudo -u oracle bash伪装) - 解压到空目录:
unzip LINUX.X64_193000_db_home.zip -d /opt/oracle/product/19c/dbhome_1 - 确保整个目录属主为
oracle:oinstall:chown -R oracle:oinstall /opt/oracle - 运行前 source 环境:
su - oracle -c ". /opt/oracle/product/19c/dbhome_1/oracle_env.sh && /opt/oracle/product/19c/dbhome_1/runInstaller"
特别注意:
oracle_env.sh是安装后自动生成的,首次运行runInstaller时它还不存在——所以第一次必须手动 export 变量,或改用静默安装跳过 GUI。
静默安装比图形界面更可靠
Proxmox 虚拟机默认无桌面环境,强行起 runInstaller 图形界面常因 X11 转发失败中断。推荐用响应文件静默安装:
cd /opt/oracle/product/19c/dbhome_1 ./runInstaller -ignorePrereq -waitforcompletion -silent \ -responseFile /path/to/db_install.rsp \ oracle.install.option=INSTALL_DB_SWONLY \ ORACLE_HOSTNAME=localhost \ UNIX_GROUP_NAME=oinstall \ INVENTORY_LOCATION=/opt/oraInventory \ SELECTED_LANGUAGES=en,zh_CN \ ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 \ ORACLE_BASE=/opt/oracle \ oracle.install.db.InstallEdition=EE \ oracle.install.db.OSDBA_GROUP=dba \ oracle.install.db.OSBACKUPDBA_GROUP=backupdba \ oracle.install.db.OSDGDBA_GROUP=dgdba \ oracle.install.db.OSKMDBA_GROUP=kmdba \ oracle.install.db.OSRACDBA_GROUP=racdba
关键点:
-ignorePrereq仅用于跳过部分可人工确认的检查(如 DNS 反向解析),不能跳过 swap、内核参数等硬依赖;响应文件必须提前用图形模式生成一次再修改,否则路径或组名易错。
最易被忽略的是:静默安装完成后,root.sh 必须在虚拟机内部以 root 手动执行,Proxmox 宿主机上执行无效。











