在腾讯云服务器(CVM)上安装 Oracle Database,核心难点不在于“怎么装”,而在于环境准备、参数调优和权限管理。Oracle 对 Linux 内核参数、内存管理和文件系统有严格要求,直接裸机安装极易报错。
以下以 CentOS 7 / RedHat 7 为例(这是企业级服务器最常用的环境),提供一套经过验证的实操流程。如果你用的是 Ubuntu 或 Windows Server,逻辑类似,但命令不同。
第一步:硬件与系统前置检查(关键!)
Oracle 是“资源大户”,尤其是内存和 Swap。
-
配置建议:
- CPU:至少 2 核(推荐 4 核+)。
- 内存:最低 4GB(官方推荐 8GB+)。如果内存小于 2GB,后续创建实例会直接失败。
- 磁盘:至少 50GB 可用空间(SSD 更佳)。
-
关闭防火墙和 SELinux(生产环境请谨慎操作,需配置白名单):
# 停止并禁用 firewalld systemctl stop firewalld systemctl disable firewalld # 临时关闭 SELinux setenforce 0 # 永久修改需编辑 /etc/selinux/config,将 SELINUX=enforcing 改为 disabled -
检查 Swap 分区:
Oracle 要求 Swap 大小与物理内存有关。例如 4GB 内存,Swap 至少需要 4GB。如果没有 Swap,请用dd创建一个 swapfile:dd if=/dev/zero of=/swapfile bs=1G count=4 chmod 600 /swapfile mkswap /swapfile swapon /swapfile # 写入 fstab 开机自动挂载 echo '/swapfile none swap defaults 0 0' >> /etc/fstab
第二步:安装依赖包
Oracle 安装程序依赖大量 RPM 包。使用 yum 一键安装:
yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
注意:如果是 CentOS 8 或 Stream 版本,部分包名可能变化(如
compat-libstdc++-33可能需要从 EPEL 源获取或手动下载 rpm)。
第三步:创建 Oracle 用户和组
不要直接用 root 运行 Oracle 进程,这是大忌。
# 创建用户组
groupadd oinstall
groupadd dba
# 创建 oracle 用户,并加入组
useradd -g oinstall -G dba -m oracle
# 设置密码(请设置为强密码)
passwd oracle
第四步:修改内核参数和资源限制
这是最容易踩坑的地方。
-
编辑
/etc/sysctl.conf,追加以下内容:fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 # 注意:这里设为物理内存字节数的一半左右,4GB内存约4GB*1024*1024*1024/2 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 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执行
sysctl -p使配置生效。 -
编辑
/etc/security/limits.conf,追加:oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 -
编辑
/etc/pam.d/login,确保包含:session required pam_limits.so
第五步:下载 Oracle 软件并解压
- 登录 Oracle 官网,下载对应版本的 Linux x86-64 安装包(通常是两个 zip 文件:
linuxx64_12201_database.zip和另一个补丁包,或者完整版)。 - 上传到服务器,建议使用
scp或腾讯云 COS 工具。 - 切换到 oracle 用户并解压:
su - oracle cd ~ unzip linuxx64_12201_database.zip这会生成一个
database目录。
第六步:静默安装(推荐方式)
图形化界面(VNC/X11 Forwarding)在云服务器上配置极其麻烦且不稳定。强烈建议使用静默安装(Silent Install)。
-
生成响应文件:
进入database/response目录,复制模板:cp db_install.rsp db_install.rsp.bak vim db_install.rsp修改关键字段:
oracle.install.option=INSTALL_DB_SWONLY # 只装软件,不建库 ORACLE_HOSTNAME=your-server-ip # 你的服务器公网IP或内网IP UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory SELECTED_LANGUAGES=en,zh_CN # 可选中文支持 ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE # 企业版 oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper oracle.install.db.OSBACKUPDBA_GROUP=dba oracle.install.db.OSDGDBA_GROUP=dba oracle.install.db.OSKMDBA_GROUP=dba oracle.install.db.OSRACDBA_GROUP=dba SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=true # 同意安全更新条款 -
执行安装:
cd ~/database ./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp -ignorePrereqFailure-ignorePrereqFailure用于跳过一些非致命的预检错误(云服务器环境常触发)。 -
等待完成:
安装过程较长,终端会输出日志路径。最后会提示你以 root 身份执行两个脚本:/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/12.2.0/dbhome_1/root.sh切换到 root 执行即可。
第七步:创建数据库实例
软件装好后,还需要创建具体的数据库(SID)。同样使用静默方式。
-
编辑响应文件:
cp dbca.rsp dbca.rsp.bak vim dbca.rsp修改关键字段:
responseFileVersion=/oracle/assistants/rsrcmgr/lib/j2ee/ConfigTemplate gdbName=orcl # 全局数据库名 sid=orcl # 实例名 databaseConfigType=SI # 单机实例 createAsContainerDatabase=false templateName=General_Purpose.dbc sysPassword=YourStrongPassword123! # SYS用户密码 systemPassword=YourStrongPassword123! # SYSTEM用户密码 datafileDestination=/u01/app/oracle/oradata # 数据文件路径 storageType=FS # 文件系统 characterSet=AL32UTF8 # 字符集,选这个最稳妥 nationalCharacterSet=AL16UTF16 sampleSchema=true # 是否加载示例表 memoryPercentage=40 # 内存占用百分比 automaticMemoryManagement=true # 自动内存管理 totalMemory=2048 # 总内存MB,根据实际调整 -
执行建库:
cd ~/database ./dbca -silent -createDatabase -responseFile /home/oracle/database/response/dbca.rsp这个过程比安装软件更久,进度条不会显示,请耐心等待。完成后会在日志中提示成功。
第八步:配置网络监听与远程连接
-
启动监听器:
lsnrctl start -
配置 tnsnames.ora(位于
$ORACLE_HOME/network/admin/):
确保包含以下内容,方便本地测试:ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) -
腾讯云安全组放行:
登录腾讯云控制台 -> 云服务器 -> 找到实例 -> 安全组 -> 添加入方向规则:- 协议:TCP
- 端口:1521
- 来源:0.0.0.0/0(或指定你的 IP)
-
测试连接:
使用 PL/SQL Developer、Navicat 或 SQLPlus 连接:- Host: 你的腾讯云公网 IP
- Port: 1521
- Service Name: orcl
- User: system
- Password: 你设置的密码
避坑指南(血泪经验)
- 时区问题:确保服务器时区与业务需求一致,否则日志时间会乱。
- 字符集:务必选择
AL32UTF8,避免后期中文乱码。 - 内存溢出:如果 OOM Killer 杀掉了 oracle 进程,检查
kernel.shmmax和 Swap 设置。 - 备份:安装成功后,立即对云盘做快照。Oracle 配置复杂,重装成本极高。
- 替代方案:如果只是为了开发测试,考虑使用 Docker 部署 Oracle,或者直接使用腾讯云提供的 Oracle 镜像市场镜像,能省去 80% 的折腾时间。
按照以上步骤,你可以在一台标准的腾讯云 CVM 上成功搭建 Oracle 环境。如有具体报错,请提供日志片段,再针对性排查。
云知道CLOUD