在腾讯云服务器(CVM)上安装 Oracle 数据库是一个涉及操作系统配置、依赖环境检查和具体安装步骤的复杂过程。由于 Oracle 对 Linux 系统有严格的依赖要求,强烈建议先在本地或测试环境中验证流程,再在生产环境操作。
以下是基于 Linux (CentOS 7/8 或 Ubuntu 20.04) 系统的通用安装指南。
⚠️ 重要前置检查
- 操作系统版本:确认你的 CVM 操作系统是受支持的版本(如 CentOS 7, CentOS Stream 9, Ubuntu 20.04+)。Oracle 19c 是目前的长期支持版(LTS),推荐安装此版本。
- 内存与磁盘:
- 最低内存建议:4GB(生产环境建议 8GB+)。
- 磁盘空间:至少预留 20GB 用于软件安装和数据文件。
- 网络与安全组:确保腾讯云控制台的安全组已放行 1521 端口(默认 Oracle 监听端口),以便远程连接。
- 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 转发,你可能需要:
- 使用 VNC/Xmanager 等工具进行图形化安装。
- 或者直接使用 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:静默安装 (推荐,无需图形界面)
这是最稳定的方式,通过响应文件自动完成。
-
进入解压后的
database/response目录。 -
复制
db_install.rsp到当前目录并重命名:cp db_install.rsp ./my_install.rsp -
编辑
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) -
开始安装:
cd /tmp/database ./runInstaller -silent -responseFile /tmp/database/response/my_install.rsp安装完成后,终端会提示你以 root 用户执行两个脚本。
-
以 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),现在需要创建数据库。
-
切换到 oracle 用户:
su - oracle -
启动 DBCA:
dbca(如果是静默安装,则跳过此步,使用
dbca -silent) -
在图形界面中选择:
- 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
第七步:验证与防火墙配置
-
检查服务状态:
lsnrctl status sqlplus / as sysdba -- 输入 SQL> select name from v$database; -
腾讯云安全组:
登录腾讯云控制台 -> 云主机 -> 安全组 -> 添加入站规则:- 协议:TCP
- 端口:1521
- 来源:0.0.0.0/0 (或仅允许特定 IP)
-
监听配置:
确保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技术博