腾讯云服务器如何安装oracle数据库?

在腾讯云服务器(CVM)上安装 Oracle Database,核心难点不在于“怎么装”,而在于环境准备、参数调优和权限管理。Oracle 对 Linux 内核参数、内存管理和文件系统有严格要求,直接裸机安装极易报错。

以下以 CentOS 7 / RedHat 7 为例(这是企业级服务器最常用的环境),提供一套经过验证的实操流程。如果你用的是 Ubuntu 或 Windows Server,逻辑类似,但命令不同。


第一步:硬件与系统前置检查(关键!)

Oracle 是“资源大户”,尤其是内存和 Swap。

  1. 配置建议

    • CPU:至少 2 核(推荐 4 核+)。
    • 内存:最低 4GB(官方推荐 8GB+)。如果内存小于 2GB,后续创建实例会直接失败。
    • 磁盘:至少 50GB 可用空间(SSD 更佳)。
  2. 关闭防火墙和 SELinux(生产环境请谨慎操作,需配置白名单):

    # 停止并禁用 firewalld
    systemctl stop firewalld
    systemctl disable firewalld
    
    # 临时关闭 SELinux
    setenforce 0
    # 永久修改需编辑 /etc/selinux/config,将 SELINUX=enforcing 改为 disabled
  3. 检查 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

第四步:修改内核参数和资源限制

这是最容易踩坑的地方。

  1. 编辑 /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 使配置生效。

  2. 编辑 /etc/security/limits.conf,追加:

    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536
    oracle soft stack 10240
  3. 编辑 /etc/pam.d/login,确保包含:

    session required pam_limits.so

第五步:下载 Oracle 软件并解压

  1. 登录 Oracle 官网,下载对应版本的 Linux x86-64 安装包(通常是两个 zip 文件:linuxx64_12201_database.zip 和另一个补丁包,或者完整版)。
  2. 上传到服务器,建议使用 scp 或腾讯云 COS 工具。
  3. 切换到 oracle 用户并解压:
    su - oracle
    cd ~
    unzip linuxx64_12201_database.zip

    这会生成一个 database 目录。


第六步:静默安装(推荐方式)

图形化界面(VNC/X11 Forwarding)在云服务器上配置极其麻烦且不稳定。强烈建议使用静默安装(Silent Install)

  1. 生成响应文件
    进入 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            # 同意安全更新条款
  2. 执行安装

    cd ~/database
    ./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp -ignorePrereqFailure

    -ignorePrereqFailure 用于跳过一些非致命的预检错误(云服务器环境常触发)。

  3. 等待完成
    安装过程较长,终端会输出日志路径。最后会提示你以 root 身份执行两个脚本:

    /u01/app/oraInventory/orainstRoot.sh
    /u01/app/oracle/product/12.2.0/dbhome_1/root.sh

    切换到 root 执行即可。


第七步:创建数据库实例

软件装好后,还需要创建具体的数据库(SID)。同样使用静默方式。

  1. 编辑响应文件

    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,根据实际调整
  2. 执行建库

    cd ~/database
    ./dbca -silent -createDatabase -responseFile /home/oracle/database/response/dbca.rsp

    这个过程比安装软件更久,进度条不会显示,请耐心等待。完成后会在日志中提示成功。


第八步:配置网络监听与远程连接

  1. 启动监听器

    lsnrctl start
  2. 配置 tnsnames.ora(位于 $ORACLE_HOME/network/admin/):
    确保包含以下内容,方便本地测试:

    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )
  3. 腾讯云安全组放行
    登录腾讯云控制台 -> 云服务器 -> 找到实例 -> 安全组 -> 添加入方向规则:

    • 协议:TCP
    • 端口:1521
    • 来源:0.0.0.0/0(或指定你的 IP)
  4. 测试连接
    使用 PL/SQL Developer、Navicat 或 SQLPlus 连接:

    • Host: 你的腾讯云公网 IP
    • Port: 1521
    • Service Name: orcl
    • User: system
    • Password: 你设置的密码

避坑指南(血泪经验)

  1. 时区问题:确保服务器时区与业务需求一致,否则日志时间会乱。
  2. 字符集:务必选择 AL32UTF8,避免后期中文乱码。
  3. 内存溢出:如果 OOM Killer 杀掉了 oracle 进程,检查 kernel.shmmax 和 Swap 设置。
  4. 备份:安装成功后,立即对云盘做快照。Oracle 配置复杂,重装成本极高。
  5. 替代方案:如果只是为了开发测试,考虑使用 Docker 部署 Oracle,或者直接使用腾讯云提供的 Oracle 镜像市场镜像,能省去 80% 的折腾时间。

按照以上步骤,你可以在一台标准的腾讯云 CVM 上成功搭建 Oracle 环境。如有具体报错,请提供日志片段,再针对性排查。

未经允许不得转载:云知道CLOUD » 腾讯云服务器如何安装oracle数据库?