在腾讯云服务器(CVM)上安装 Oracle 数据库,通常推荐采用Linux 系统(如 CentOS 7/8、Ubuntu 20.04+)配合官方 RPM/DEB 包或Docker 容器的方式。以下是基于 CentOS 7/8 使用官方安装包安装的详细步骤(适用于生产环境),同时提供 Docker 快速部署方案供参考。
✅ 方法一:通过官方安装包安装(推荐用于生产环境)
前提条件
- 已购买腾讯云 CVM,操作系统为 CentOS 7.x / 8.x 或 RedHat Enterprise Linux。
- 服务器配置建议:至少 4 vCPU + 8GB RAM(Oracle 对内存要求较高)。
- 开放必要端口(默认监听
1521)。 - 已创建普通用户(非 root)并配置 sudo 权限。
步骤 1:准备系统环境
# 更新系统
sudo yum update -y
# 安装依赖包
sudo yum install -y binutils gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel
make sysstat unixODBC unixODBC-devel compat-libstdc++-33 elfutils-libelf-devel
libgcc libstdc++ libstdc++-devel numactl-devel pcre-devel python36 python36-pip
wget unzip
# 关闭防火墙(临时测试可跳过,生产建议配置规则)
sudo systemctl stop firewalld
sudo systemctl disable firewalld
# 关闭 SELinux
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
💡 注意:若使用 Ubuntu,需改用
apt安装对应依赖(见文末附录)。
步骤 2:下载 Oracle Database
访问 Oracle 官网
→ 选择 Linux x64 → 下载 Database Software Release 19c(推荐长期支持版)
文件示例:linuxx64_193000_db_home.zip
上传至服务器(如 /tmp 目录):
cd /tmp
wget https://download.oracle.com/otn_software/linux/instantclient/... # 替换为实际链接
# 或使用 scp 从本地上传
scp linuxx64_193000_db_home.zip user@your-cvm:/tmp/
解压并移动:
unzip linuxx64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mv /tmp/db/* /u01/app/oracle/product/19.0.0/dbhome_1/
chown -R oracle:oinstall /u01
chmod -R 775 /u01
⚠️ 建议创建专用用户
oracle和组oinstall,dba:groupadd oinstall groupadd dba useradd -g oinstall -G dba -m -d /home/oracle -s /bin/bash oracle passwd oracle
步骤 3:配置环境变量
编辑 /home/oracle/.bash_profile:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
生效:
source /home/oracle/.bash_profile
步骤 4:运行 Oracle 安装程序
切换到 oracle 用户:
su - oracle
启动图形界面安装(需 X11 转发)或无头模式(推荐):
方式 A:无头静默安装(适合远程 SSH)
-
生成响应文件模板:
$ORACLE_HOME/install/response/db_install.rsp.template cp db_install.rsp.template db_install.rsp -
编辑
db_install.rsp,修改关键项:oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19_0_0 oracle.install.option=INSTALL_DB_AND_CONFIG UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oracle/oraInventory SELECTED_LANGUAGES=en,zh_CN oracle.install.db.InstallEdition=EE oracle.install.db.EEOptions=FALSE oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oper oracle.install.db.config.starterdb.type=GENERAL_PURPOSE oracle.install.db.config.starterdb.globalDBName=ORCL oracle.install.db.config.starterdb.SID=ORCL oracle.install.db.config.starterdb.characterSet=AL32UTF8 oracle.install.db.config.starterdb.memoryLimit=4096 oracle.install.db.config.starterdb.passwordType=PROFICIENTLY oracle.install.db.config.starterdb.password.ALL=YourStrongPassword123! -
执行安装:
$ORACLE_HOME/runInstaller -silent -responseFile /path/to/db_install.rsp -
安装完成后,按提示以 root 身份执行脚本:
sudo /u01/app/oracle/oraInventory/orainstRoot.sh sudo /u01/app/oracle/product/19.0.0/dbhome_1/root.sh
步骤 5:验证安装
su - oracle
sqlplus / as sysdba
SQL> SELECT name, open_mode FROM v$database;
若显示 OPEN,则成功!
步骤 6:配置网络与防火墙
在腾讯云控制台:
- 进入 安全组 → 添加入方向规则:
- 协议:TCP
- 端口范围:
1521 - 来源:
0.0.0.0/0(或限定 IP)
🔐 生产环境建议限制来源 IP,避免暴露公网。
🐳 方法二:使用 Docker 快速部署(适合测试/开发)
# 安装 Docker(腾讯云镜像源提速)
curl -fsSL https://get.docker.com | sh -
systemctl enable --now docker
# 拉取 Oracle 官方镜像(需 Oracle 账号登录)
docker login container-registry.cn-shenzhen.tencentcloudcr.com # 或 hub.oracle.com
docker pull container-registry.cn-shenzhen.tencentcloudcr.com/oracle/oracle-database-enterprise-edition:21.3.0
# 运行容器
docker run -d --name oracle-db
-e ORACLE_PWD=YourStrongPassword123!
-e ORACLE_CHARACTERSET=AL32UTF8
-p 1521:1521
container-registry.cn-shenzhen.tencentcloudcr.com/oracle/oracle-database-enterprise-edition:21.3.0
⚠️ 注意:Oracle 官方 Docker 镜像需注册 Oracle Account 才能下载完整版;社区版可用
ghcr.io/gvenzl/oracle-free(免费但功能受限)。
📌 常见问题排查
| 问题 | 解决方案 |
|---|---|
安装时 insufficent memory |
确保 Swap ≥ 8GB,物理内存 ≥ 8GB |
ORA-01034: ORACLE not available |
检查监听器:lsnrctl status,启动:lsnrctl start |
| 无法连接 1521 端口 | 检查安全组 + netstat -tlnp | grep 1521 |
| 中文乱码 | 设置 NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK |
🔒 安全建议
- 禁用 root 远程登录,仅用普通用户 + sudo。
- 启用 Oracle Audit Vault 或统一日志审计。
- 定期备份:使用 RMAN 或
expdp/impdp。 - 开启 TDE(透明数据加密)保护敏感数据。
- 限制
SYS/SYSTEM密码强度,启用账户锁定策略。
需要我为你生成:
- 自动化 Ansible Playbook?
- 针对 Ubuntu 的完整安装脚本?
- 高可用(RAC)部署指南?
欢迎告诉我你的具体需求 😊
轻量云Cloud