贝博恩创新科技网

Linux安装Oracle11g教程,常见问题有哪些?

⚠️ 重要提示:请在开始前阅读

  1. Oracle 11g 已过时:Oracle 11g 已经在 2025 年 1 月停止扩展支持,它不再接收安全更新和性能修复,在生产环境中使用存在巨大安全风险。强烈建议您考虑使用更新的版本,如 Oracle 19c 或 21c
  2. 兼容性问题:本教程主要针对 CentOS 7 / RHEL 7,如果您使用更新的系统(如 CentOS 8/9, Ubuntu 20.04/22.04),可能会遇到内核版本不兼容、依赖库缺失等问题,需要大量额外调整。
  3. 资源消耗大:Oracle 11g 对硬件资源(内存、CPU、交换空间)要求较高,请确保您的虚拟机或物理机配置充足。
  4. 耐心与细心:整个过程步骤繁多,耗时较长(1-2 小时以上),请严格按照步骤操作,尤其是在环境配置阶段,任何一个小的疏都都可能导致安装失败。

第一部分:环境准备

系统要求

组件 最低要求 推荐配置
操作系统 CentOS 7.6 / RHEL 7.6 CentOS 7.9
CPU 2 核心 4 核心或更多
内存 1 GB 4 GB 或更多
交换空间 物理内存的 1-2 倍 至少 4 GB
硬盘空间 /tmp: 1GB, /oracle: 5GB+ /oracle: 20GB+
Glibc 5 或更高 17 (CentOS 7 默认)

硬盘分区与挂载

我们建议创建一个独立的分区用于安装 Oracle。

Linux安装Oracle11g教程,常见问题有哪些?-图1
(图片来源网络,侵删)
  1. 查看现有磁盘:
    fdisk -l
  2. 创建新分区 (假设使用 /dev/sdb 新硬盘):
    fdisk /dev/sdb
    • 输入 n 创建新分区。
    • 输入 p 选择主分区。
    • 输入 1 分区号。
    • 回车使用默认的起始和结束扇区。
    • 输入 w 保存并退出。
  3. 格式化分区:
    mkfs.xfs /dev/sdb1  # 或 ext4
  4. 创建挂载点并挂载:
    mkdir -p /oracle
    mount /dev/sdb1 /oracle
  5. 设置开机自动挂载:
    echo "/dev/sdb1 /oracle xfs defaults 0 0" >> /etc/fstab
    df -hT  # 查看挂载是否成功

安装必要的依赖包

# 更新系统
sudo yum update -y
# 安装必要的软件包
sudo 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

关闭防火墙和 SELinux

⚠️ 这一步是为了简化安装,在生产环境中请务必配置正确的防火墙规则和 SELinux 策略。

  1. 关闭防火墙:

    systemctl stop firewalld
    systemctl disable firewalld
  2. 关闭 SELinux:

    • 临时关闭(重启后失效):
      setenforce 0
    • 永久关闭(需要重启):
      vi /etc/selinux/config
      # 将 SELINUX=enforcing 改为 SELINUX=disabled
      # 保存退出 :wq

创建 Oracle 用户和组

# 创建 oinstall 和 dba 组
groupadd oinstall
groupadd dba
# 创建 oracle 用户,并将其加入 oinstall 和 dba 组
useradd -g oinstall -G dba oracle
# 设置 oracle 用户的密码
passwd oracle
# 创建安装目录并设置权限
mkdir -p /oracle/app/oracle/product/11.2.0/dbhome_1
chown -R oracle:oinstall /oracle
chmod -R 775 /oracle

配置内核参数

编辑 /etc/sysctl.conf 文件:

Linux安装Oracle11g教程,常见问题有哪些?-图2
(图片来源网络,侵删)
vi /etc/sysctl.conf

在文件末尾添加或修改以下内容:

# Oracle 11g R2 Settings
fs.file-max = 6815744
kernel.shmall = 4194304
kernel.shmmax = 1073741824  # 通常设置为物理内存的一半,单位为字节
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
fs.aio-max-nr = 1048576

使配置生效:

sysctl -p

配置用户限制

编辑 /etc/security/limits.conf 文件:

vi /etc/security/limits.conf

在文件末尾添加以下内容:

Linux安装Oracle11g教程,常见问题有哪些?-图3
(图片来源网络,侵删)
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768

编辑 /etc/pam.d/login 文件:

vi /etc/pam.d/login

添加或修改以下行:

session required pam_limits.so

编辑 /etc/profile 文件:

vi /etc/profile

在文件末尾添加:

if [ $USER = "oracle" ]; then
   if [ $SHELL = "/bin/ksh" ]; then
      ulimit -p 16384
      ulimit -n 65536
   else
      ulimit -u 16384 -n 65536
   fi
fi

第二部分:安装 Oracle 软件

下载 Oracle 安装包

从 Oracle 官网下载适用于 Linux x86_64 的安装包:

  • linux.x64_11gR2_database_1of2.zip
  • linux.x64_11gR2_database_2of2.zip

将这两个文件上传到 Linux 服务器的 /tmp 目录下。

解压安装包

切换到 oracle 用户:

su - oracle

解压文件:

cd /tmp
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

解压后,会在 /tmp 目录下生成一个 database 文件夹。

配置安装环境变量

编辑 oracle 用户的 .bash_profile 文件:

vi ~/.bash_profile

在文件末尾添加以下内容(请根据你的实际安装路径调整):

# Oracle Settings
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl  # 全局数据库名,可以自定义
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

使配置生效:

source ~/.bash_profile

运行安装程序

进入 database 目录,运行 runInstaller

cd /tmp/database
./runInstaller

此时会弹出图形化安装界面,如果无法显示,请确保你是在 X Window 环境下(例如使用 Xshell 或 MobaXterm 等支持 X11 转发的工具连接)。


第三部分:图形化安装步骤

  1. 配置安全更新

    • 取消勾选 "I wish to receive security updates via My Oracle Support"。
    • 点击 "Next"。
  2. 选择安装选项

    • 选择 "Create and configure a database"。
    • 点击 "Next"。
  3. 选择系统类型

    • 选择 "Server Class"。
    • 点击 "Next"。
  4. 选择典型安装

    • 选择 "Single Instance Database installation"。
    • 点击 "Next"。
  5. 选择安装类型

    • 选择 "Typical Installation"。
    • Oracle Base:会自动填充 /oracle/app/oracle
    • Software Location:会自动填充 /oracle/app/oracle/product/11.2.0/dbhome_1
    • Global Database Name:输入你之前设置的 orcl
    • Database File Storage:选择 "File System",使用 "Use Common Location for All Database Files"。
    • Character Set:选择 "Use Unicode (AL32UTF8)"。
    • Administrative Password:为 SYS, SYSTEM, SYSMAN 等用户设置一个强密码。
    • 点击 "Next"。
  6. 先决条件检查

    • 安装程序会检查系统配置,如果出现红色叉号,通常是内核参数或限制设置问题,请返回第一部分检查。
    • 点击 "Fix and Check Again" 进行修复,直到所有项目都通过。
    • 点击 "Next"。
  7. 概要

    确认安装信息无误,点击 "Install"。

  8. 安装过程

    • 安装过程会持续较长时间,请耐心等待,终端会自动弹出,并以 oracle 用户身份执行一些脚本,不要关闭终端。

    • 当看到类似 Performing root operation... 的提示时,打开一个新的终端窗口,以 root 用户身份执行以下脚本:

      # 切换到 root 用户
      su -
      # 执行脚本(路径可能略有不同)
      /oracle/app/oraInventory/orainstRoot.sh
      /oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
      # 执行完毕后,退出 root 用户
      exit
    • 回到原来的安装窗口,点击 "OK"。

  9. 安装完成

    • 看到 "Installation Complete" 界面,点击 "Close"。
    • 安装程序可能会提示你运行 dbcanetca,你可以直接关闭它,我们手动运行。

第四部分:创建数据库实例

  1. 运行数据库配置助手 (DBCA):

    dbca
  2. 数据库操作

    • 选择 "Create a Database",点击 "Next"。
    • 数据库模板:选择 "General Purpose or Transaction Processing",点击 "Next"。
    • 数据库标识符
      • Global Database Nameorcl
      • SIDorcl
      • 点击 "Next"。
    • 管理选项:保持默认,点击 "Next"。
    • 数据库身份验证:选择 "Use the same administrative password for all accounts",输入密码,点击 "Next"。
    • 数据库文件所在位置:保持默认,点击 "Next"。
    • 恢复配置:保持默认,点击 "Next"。
    • :保持默认,点击 "Next"。
    • 初始化参数:保持默认,点击 "Next"。
    • 数据库存储:保持默认,点击 "Next"。
    • 创建选项:选择 "Create Database",点击 "Finish"。
    • 确认:点击 "OK" 开始创建。

    创建数据库也需要一些时间,请耐心等待,完成后,点击 "Exit" 退出 DBCA。


第五部分:验证安装

  1. 监听器状态:

    lsnrctl status

    应该能看到监听器正在运行,并监听了 1521 端口。

  2. 连接数据库:

    sqlplus / as sysdba

    进入 SQL*Plus 后,执行以下命令:

    SQL> SELECT status FROM v$instance;
    -- 应该返回 OPEN
    SQL> EXIT
  3. 测试远程连接 (可选): 如果需要远程连接,请确保防火墙是开启状态,并已正确配置了端口,你可以使用 SQL Developer 或其他数据库连接工具进行测试。


常见问题与排错

  • ./runInstaller: not found:检查 unzip 是否成功,database 目录下是否有 runInstaller 文件。
  • error while loading shared libraries: libXtst.so.6:缺少依赖库,运行 yum install libXtst
  • PRVF-4654:通常是内核参数 fs.aio-max-nr 设置不正确,检查 /etc/sysctl.conf 并确保 sysctl -p 生效。
  • ORA-27102: out of memory:通常是 shmmax 设置过小,或者物理内存不足,检查 /etc/sysctl.conf 中的 shmmax 值。
  • ORA-12514: TNS:listener does not currently know of service requested in connect descriptor:监听器未启动或数据库服务未注册,先启动监听器 lsnrctl start,然后启动数据库 sqlplus / as sysdba -> startup

至此,您已成功在 Linux 系统上安装并配置了 Oracle 11g 数据库。

分享:
扫描分享到社交APP
上一篇
下一篇