重要提示:Oracle 11g 的支持状态
在开始之前,请务必了解:

- 官方支持终止: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 创建专用的用户和组。

# 创建 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 文件。

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.ziplinux.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_HOME 和 ORACLE_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 start 和 service 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.sh和root.sh等脚本。
- 原因:通常是因为脚本没有用
-
问题:
dbstart或dbshut无法启动/停止数据库- 原因:
/etc/oratab文件中的实例条目未正确设置(N未改为Y),或者ORACLE_HOME路径不匹配。 - 解决:检查
/etc/oratab文件,并确保服务脚本中的ORACLE_HOME变量值正确。
- 原因:
至此,你已经成功在服务器上安装了 Oracle Database 11g,这是一个不受支持的环境,请谨慎使用。
