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

在腾讯云服务器(CVM)上安装 Oracle 数据库是一个涉及操作系统配置、依赖环境检查和具体安装步骤的复杂过程。由于 Oracle 对 Linux 系统有严格的依赖要求,强烈建议先在本地或测试环境中验证流程,再在生产环境操作。

以下是基于 Linux (CentOS 7/8 或 Ubuntu 20.04) 系统的通用安装指南。

⚠️ 重要前置检查

  1. 操作系统版本:确认你的 CVM 操作系统是受支持的版本(如 CentOS 7, CentOS Stream 9, Ubuntu 20.04+)。Oracle 19c 是目前的长期支持版(LTS),推荐安装此版本。
  2. 内存与磁盘
    • 最低内存建议:4GB(生产环境建议 8GB+)。
    • 磁盘空间:至少预留 20GB 用于软件安装和数据文件。
  3. 网络与安全组:确保腾讯云控制台的安全组已放行 1521 端口(默认 Oracle 监听端口),以便远程连接。
  4. License 协议:你需要拥有合法的 Oracle 许可证。如果是学习用途,可以使用 Oracle 提供的免费试用版(需注册 Oracle 账号下载)。

第一步:创建专用用户与目录

为了安全起见,不建议使用 root 用户直接安装,通常创建一个 oracle 用户和 oinstall 组。

# 1. 创建安装目录
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01

# 2. 创建 oracle 用户 (如果尚未存在)
useradd -g oinstall -G dba,oper -m -d /home/oracle -s /bin/bash oracle
passwd oracle # 设置密码

# 3. 切换用户并配置环境变量
su - oracle
vi .bash_profile

.bash_profile 末尾添加以下内容(根据实际路径调整):

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

保存后执行 source .bash_profile 生效。


第二步:配置系统内核参数与限制

这是最容易出错的一步,必须修改 /etc/sysctl.conf/etc/security/limits.conf

1. 修改 sysctl.conf

编辑 /etc/sysctl.conf,添加或修改以下参数:

kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
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. 修改 limits.conf

编辑 /etc/security/limits.conf,在末尾添加:

oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768

3. 配置 PAM (针对某些发行版)

编辑 /etc/pam.d/login,确保包含以下行(防止无限制错误):

session required pam_limits.so

第三步:安装必要的依赖包

根据你的操作系统选择对应的命令。

CentOS 7/8:

sudo yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel elfutils-libelf-devel

Ubuntu 20.04+:

sudo apt update
sudo apt install -y build-essential libaio1 libc6-dev libncurses5 libnss3 libpam-runtime libreadline-dev libxi6 libxtst6 xorg-x11-utils

注意:Oracle 安装程序需要 X11 图形界面来运行 GUI 安装向导。如果你是通过 SSH 远程连接且没有开启 X11 转发,你可能需要:

  1. 使用 VNC/Xmanager 等工具进行图形化安装。
  2. 或者直接使用 Silent Mode(静默模式) 安装(推荐,适合自动化部署)。

第四步:解压安装包

将下载好的 Oracle 压缩包(如 linuxx64_190000_db_home.zip)上传到服务器(例如 /tmp 目录),切换到 oracle 用户进行解压:

cd /tmp
unzip linuxx64_190000_db_home.zip
# 假设解压后目录为 database
chown -R oracle:oinstall /tmp/database

第五步:执行安装 (两种方案)

方案 A:静默安装 (推荐,无需图形界面)

这是最稳定的方式,通过响应文件自动完成。

  1. 进入解压后的 database/response 目录。

  2. 复制 db_install.rsp 到当前目录并重命名:

    cp db_install.rsp ./my_install.rsp
  3. 编辑 my_install.rsp,修改关键参数:

    oracle.install.option=INSTALL_DB_SWONLY  # 仅安装软件,不建库 (也可选 INSTALL_DB_AND_CONFIG)
    UNIX_GROUP_NAME=oinstall
    INVENTORY_LOCATION=/u01/app/oraInventory
    SELECTED_LANGUAGES=en,zh_CN
    ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
    ORACLE_BASE=/u01/app/oracle
    oracle.install.db.InstallEdition=EE       # 企业版 (EE) 或 标准版 (SE2)
    oracle.install.db.OSDBA_GROUP=dba
    oracle.install.db.OSOPER_GROUP=oper

    (注:如果是首次安装,记得修改 rootScriptLocation/tmp/root.sh)

  4. 开始安装:

    cd /tmp/database
    ./runInstaller -silent -responseFile /tmp/database/response/my_install.rsp

    安装完成后,终端会提示你以 root 用户执行两个脚本。

  5. 以 root 用户执行脚本

    su - root
    /u01/app/oraInventory/orainstRoot.sh
    /u01/app/oracle/product/19.0.0/dbhome_1/root.sh
    exit

方案 B:图形化安装 (需配合 X11 转发)

如果你配置了 XManager 或开启了 SSH X11 Forwarding (ssh -X):

./runInstaller

按照屏幕向导点击 Next 即可,输入 oracle 用户的密码作为管理员凭据。


第六步:创建数据库实例 (DBCA)

如果之前只安装了软件(INSTALL_DB_SWONLY),现在需要创建数据库。

  1. 切换到 oracle 用户:su - oracle

  2. 启动 DBCA:

    dbca

    (如果是静默安装,则跳过此步,使用 dbca -silent)

  3. 在图形界面中选择:

    • Create a database
    • Advanced Configuration
    • Select "General Purpose" or "Transaction Processing"
    • 设置全局数据库名 (如 orcl) 和 SID
    • 设置密码 (统一密码策略)
    • 选择存储类型 (ASM 或文件系统,新手选文件系统)
    • 完成创建。

静默创建数据库示例

dbca -silent -createDatabase 
-templateName General_Purpose.dbc 
-gdbname orcl 
-sid orcl 
-responseFile NO_VALUE 
-characterSet ZHS16GBK 
-nodelist null 
-dbconfig false 
-emConfiguration none 
-dbmAdminPassword password123 
-dbStorageType FS 
-fileSystemLocations /u01/app/oracle/oradata

第七步:验证与防火墙配置

  1. 检查服务状态

    lsnrctl status
    sqlplus / as sysdba
    -- 输入 SQL> select name from v$database;
  2. 腾讯云安全组
    登录腾讯云控制台 -> 云主机 -> 安全组 -> 添加入站规则:

    • 协议:TCP
    • 端口:1521
    • 来源:0.0.0.0/0 (或仅允许特定 IP)
  3. 监听配置
    确保 listener.ora 文件中的 HOST 字段设置为服务器的内网 IP 或公网 IP(取决于访问需求)。

    vi $ORACLE_HOME/network/admin/listener.ora
    # 确保 HOST 不是 localhost,而是具体的 IP 地址

常见问题排查

  • ORA-12541: TNS:no listener:通常是 listener.ora 配置错误或防火墙拦截。
  • 权限拒绝 (Permission denied):检查 /u01 目录的所有权是否为 oracle:oinstall
  • 缺少依赖库:安装过程中报错 libaio.so.1 not found,请重新运行 yum install 命令。

通过以上步骤,你应该能在腾讯云服务器上成功部署 Oracle 数据库。如果是生产环境,请务必做好数据备份策略(如 RMAN 备份)并定期更新补丁。

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