凌峰创科服务平台

Oracle 11g服务器安装步骤详解?

重要提示:Oracle 11g 的支持状态

在开始之前,请务必了解:

Oracle 11g服务器安装步骤详解?-图1
(图片来源网络,侵删)
  • 官方支持终止:Oracle Database 11g 已于 2025 年 7 月 31 日结束扩展支持,这意味着 Oracle 不再为其提供任何新的安全补丁、错误修复或技术支持。
  • 安全风险:在不受支持的环境中运行数据库会带来严重的安全风险。
  • 适用场景:本指南仅适用于学习、测试或开发环境,绝对不建议在生产环境中使用。

第一部分:安装前准备

这是安装过程中最关键的一步,准备不充分是导致安装失败的主要原因。

硬件要求

  • 物理内存
    • 最小:1 GB RAM
    • 推荐:2 GB 或更多
  • 交换空间
    • RAM 在 1GB 到 2GB 之间,交换空间应为 RAM 的 1.5 倍。
    • RAM 大于 2GB,交换空间应为 RAM 的大小。
    • 4GB RAM 配置 4GB 交换空间。
  • 硬盘空间
    • 软件安装:约 3.5 GB 到 5 GB 的可用空间。
    • 数据文件:至少 1 GB 的可用空间用于存放数据库文件。

操作系统要求

  • 推荐操作系统:Oracle Linux 6 / 7, CentOS 6 / 7, RHEL 6 / 7,本指南以 Oracle Linux 7 为例。
  • 内核版本:确保内核版本与 Oracle 11g 兼容,对于 EL7,推荐使用 8.13-xx.el7.x86_64 或更高版本。

软件包依赖

在安装 Oracle 软件之前,必须安装所有必需的操作系统软件包,使用具有 root 权限的用户登录终端,执行以下命令。

对于 Oracle Linux / CentOS / RHEL 7:

# 更新系统软件包
sudo yum update -y
# 安装必需的软件包组
sudo yum groupinstall "Development Tools" -y
sudo yum groupinstall "Server with GUI" -y # 如果需要图形界面
# 安装必需的单独软件包
sudo yum install -y \
    binutils \
    compat-libcap1 \
    compat-libstdc++-33 \
    compat-libstdc++-33.i686 \
    elfutils-libelf \
    elfutils-libelf-devel \
    gcc \
    gcc-c++ \
    glibc \
    glibc.i686 \
    glibc-devel \
    glibc-devel.i686 \
    ksh \
    libaio \
    libaio.i686 \
    libaio-devel \
    libaio-devel.i686 \
    libgcc \
    libgcc.i686 \
    libstdc++ \
    libstdc++.i686 \
    libstdc++-devel \
    libstdc++-devel.i686 \
    libXi \
    libXi.i686 \
    libXtst \
    libXtst.i686 \
    make \
    sysstat \
    unixODBC \
    unixODBC-devel

创建 Oracle 用户和组

为了安全和管理的目的,建议为 Oracle 创建专用的用户和组。

Oracle 11g服务器安装步骤详解?-图2
(图片来源网络,侵删)
# 创建 oinstall 组(用于操作系统级别的权限管理)
sudo groupadd oinstall
# 创建 dba 组(用于数据库管理员权限)
sudo groupadd dba
# 创建 oracle 用户,并将其加入 oinstall 和 dba 组
sudo useradd -g oinstall -G dba oracle
# 为 oracle 用户设置密码
sudo passwd oracle

配置内核参数

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

sudo vi /etc/sysctl.conf

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

# Oracle 11g R2 Kernel Parameters for EL7
fs.file-max = 6815744
kernel.shmall = 4194304
kernel.shmmax = 68719476736  # 物理内存的 75% 或更大,单位为字节
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576

保存文件后,使配置立即生效:

sudo sysctl -p

配置用户限制

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

Oracle 11g服务器安装步骤详解?-图3
(图片来源网络,侵删)
sudo vi /etc/security/limits.conf

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

# Oracle 11g R2 User Limits for EL7
oracle              soft    nproc   16384
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536
oracle              soft    stack   10240

创建 Oracle 软件目录

创建用于安装 Oracle 软件和数据库文件的目录,并设置正确的所有权和权限。

# 创建主目录
sudo mkdir -p /u01/app/oracle
# 设置目录所有者为 oracle:oinstall
sudo chown -R oracle:oinstall /u01
# 设置目录权限
sudo chmod -R 775 /u01

配置环境变量

oracle 用户登录,并配置其环境变量。

# 切换到 oracle 用户
su - oracle
# 编辑 .bash_profile 文件
vi ~/.bash_profile

在文件末尾添加以下内容(请根据您的实际安装路径和主机名进行修改):

# Oracle 11g R2 Environment Settings
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl  # 实例名,根据需要修改
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
# 使配置立即生效
source ~/.bash_profile

关闭防火墙和 SELinux

为了简化安装过程,建议在安装期间临时关闭防火墙和 SELinux。

关闭防火墙:

# 停止 firewalld
sudo systemctl stop firewalld
# 禁止 firewalld 开机自启
sudo systemctl disable firewalld

关闭 SELinux:

编辑 /etc/selinux/config 文件。

sudo vi /etc/selinux/config

SELINUX=enforcing 修改为 SELINUX=disabled

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

注意:修改 SELINUX=disabled 后需要重启服务器才能完全生效,如果不想立即重启,可以临时设置 enforcing 模式,但这可能会影响安装。


第二部分:安装 Oracle 11g 数据库

下载安装文件

从 Oracle 官方网站下载 Oracle Database 11g Release 2 安装包,你需要下载两个文件:

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

解压安装文件

将下载的 .zip 文件上传到服务器的 /home/oracle 目录下,然后解压。

# 确保在 oracle 用户下
su - oracle
# 进入用户主目录
cd ~
# 解压第一个文件
unzip linux.x64_11gR2_database_1of2.zip
# 解压第二个文件
unzip linux.x64_11gR2_database_2of2.zip

解压后,会生成一个名为 database 的目录。

运行安装程序

进入 database 目录,以图形化方式运行安装程序。

cd database/
# 运行图形化安装器
./runInstaller

如果服务器没有图形界面,或者无法连接到 X Server,可以使用 VNC 或其他方式,或者尝试静默安装(本指南不涉及静默安装)。

图形化安装界面步骤

安装程序启动后,会弹出图形化界面,按照以下步骤操作:

步骤 1: “Configuration Warnings”

  • 你可能会看到一些关于 Swap Space 或物理内存不足的警告。
  • 操作:点击 "Yes" 忽略这些警告(因为我们已经确认过系统要求)。

步骤 2: “Select Installation Method”

  • 选择 “Install database software only”,如果你只想安装数据库软件,稍后再手动创建数据库,请选择此项,如果选择 "Create and configure a database",安装程序会引导你创建一个数据库。
  • 操作:选择 "Install database software only",点击 "Next"。

步骤 3: “Select Installation Type”

  • "Typical":典型安装,会自动选择默认的安装路径和组。
  • "Custom":自定义安装,可以指定所有路径、组件和组。
  • 操作:对于初学者,推荐选择 "Custom",以便更好地了解安装过程,点击 "Next"。

步骤 4: “Select Product Languages”

  • 选择安装语言。
  • 操作:默认选择 "English" 即可,可以勾选 "Simplified Chinese" 以支持中文界面,点击 "Next"。

步骤 5: “Specify Installation Location”

  • "Oracle Base":与我们之前在 .bash_profile 中设置的 ORACLE_BASE 一致,即 /u01/app/oracle
  • "Software Location":与我们之前设置的 ORACLE_HOME 一致,即 /u01/app/oracle/product/11.2.0/dbhome_1
  • 操作:确认路径正确,点击 "Next"。

步骤 6: “Select Installation Type”

  • 这个界面会再次出现,确认选择 "Custom" 后,进入下一步。

步骤 7: “Select Database Products to Install”

  • 这里列出了可以安装的组件。
  • 操作:默认选择 "Oracle Database 11g Enterprise Edition 11.2.0.1.0" 即可,点击 "Next"。

步骤 8: “Specify Database Administrative Passwords”

  • 操作:由于我们选择的是 "Install database software only",这个界面可能不会出现或者不可编辑,如果出现,可以跳过。

步骤 9: “Create Inventory”

  • "Inventory Directory":指定 Oracle Central Inventory 的位置,通常使用默认值 /u01/app/oraInventory
  • "oraInventory Group Name":指定拥有该目录所有权的组,我们之前创建了 oinstall 组,所以选择它。
  • 操作:确认无误,点击 "Next"。

步骤 10: “Summary”

  • 这是一个摘要页面,列出了所有你之前的配置选择。
  • 操作:仔细检查所有信息,特别是路径和组,确认无误后,点击 "Install"。

步骤 11: “Install Products”

  • 安装程序现在会开始复制文件并配置软件,这个过程可能需要 20-40 分钟,请耐心等待。
  • 在安装过程中,终端会弹出并执行一些脚本,按照终端提示,以 root 用户身份执行这些脚本。
    • 它会提示你:"Execute the script '/u01/app/oraInventory/orainstRoot.sh' on the remote nodes as root."
    • 你需要打开一个新的终端,使用 root 用户登录并执行该脚本。
    • 执行完毕后,回到安装界面,点击 "OK"。

步骤 12: “Finish”

  • 安装完成后,会显示 "Installation Completed Successfully"。
  • 操作:点击 "Close" 关闭安装器。

第三部分:安装后验证

设置开机自启

默认情况下,Oracle 数据库不会在服务器重启后自动启动,你需要配置它。

root 用户身份执行以下命令:

# 编辑 /etc/oratab 文件
vi /etc/oratab

找到你的实例名那一行, orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N

将最后的 N 修改为 Y,表示该实例在开机时启动。 orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y

保存文件后,创建一个服务脚本。

# 创建服务脚本
vi /etc/init.d/oracle

粘贴到文件中(请根据您的 ORACLE_HOMEORACLE_SID 进行修改):

#!/bin/bash
# oracle: Start/Stop Oracle Database 11g R2
#
# chkconfig: 345 90 10
# description: Oracle Database 11g R2
# processname: oracle
. /etc/rc.d/init.d/functions
LOCK_FILE=/var/lock/subsys/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_OWNER=oracle
LOG=$ORACLE_HOME/startup.log
start() {
    if [ -f $LOCK_FILE ]; then
        echo "Oracle Database is already running."
        exit 1
    else
        echo -n "Starting Oracle Database: "
        su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" >> $LOG 2>&1
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then
            touch $LOCK_FILE
            echo "OK"
        else
            echo "Failed"
        fi
        return $RETVAL
    fi
}
stop() {
    if [ ! -f $LOCK_FILE ]; then
        echo "Oracle Database is not running."
        exit 1
    else
        echo -n "Shutting down Oracle Database: "
        su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" >> $LOG 2>&1
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then
            rm -f $LOCK_FILE
            echo "OK"
        else
            echo "Failed"
        fi
        return $RETVAL
    fi
}
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo "Usage: {start|stop|restart}"
        exit 1
        ;;
esac
exit $?

保存文件后,为脚本添加执行权限,并将其添加到系统服务中。

# 添加执行权限
chmod +x /etc/init.d/oracle
# 添加到 chkconfig
chkconfig --add oracle
chkconfig oracle on

现在你可以使用 service oracle startservice oracle stop 来管理数据库了。

连接到数据库进行验证

oracle 用户登录,使用 SQL*Plus 连接到数据库。

su - oracle
# 使用 SQL*Plus 连接到
sqlplus / as sysdba

连接成功后,执行以下命令来检查数据库状态和版本:

-- 查看数据库状态,应该是 OPEN
SQL> SELECT status FROM v$instance;
-- 查看数据库版本,确认是 11.2.0.1
SQL> SELECT version FROM v$instance;
-- 退出 SQL*Plus
SQL> EXIT;

常见问题与排错

  • 问题./runInstaller: command not found

    • 原因oracle 用户的 PATH 环境变量未正确设置。
    • 解决:检查并确保 ~/.bash_profile 文件中的 PATH 变量包含了 $ORACLE_HOME/bin,然后执行 source ~/.bash_profile
  • 问题:图形界面无法启动

    • 原因:X Server 未配置或权限问题。
    • 解决:确保你使用的是图形化桌面环境,oracle 用户有权限连接到 X Server,可以尝试使用 xhost + 命令(不安全,仅用于测试)或在服务器上配置 VNC。
  • 问题:安装过程中脚本执行失败

    • 原因:通常是因为脚本没有用 root 用户执行,或者路径、权限不正确。
    • 解决:仔细阅读终端的错误提示,确保以 root 身份执行 orainstRoot.shroot.sh 等脚本。
  • 问题dbstartdbshut 无法启动/停止数据库

    • 原因/etc/oratab 文件中的实例条目未正确设置(N 未改为 Y),或者 ORACLE_HOME 路径不匹配。
    • 解决:检查 /etc/oratab 文件,并确保服务脚本中的 ORACLE_HOME 变量值正确。

至此,你已经成功在服务器上安装了 Oracle Database 11g,这是一个不受支持的环境,请谨慎使用。

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