本文介绍在Linux上安装Oracle数据库。安装前准备:

  • CentOS-7-x86_64-DVD-1908.iso
  • p13390677_112040_Linux-x86-64_1of7.zip
  • p13390677_112040_Linux-x86-64_2of7.zip

本文同时适用于Oracle12c的安装。

第 1 部分:安装 CentOS-7

注:Linux 和 Oracle 必须安装在同一体系结构上。32 位 Oracle 只能运行于 32 位 Linux 之上,64 位 Oracle 只能运行于 64 位 Linux 之上。

现在,我们将逐步演示在服务器上安装 Linux 操作系统的过程。

。。。。略。。。。。

第 2 部分:安装必须的软件包

根据要安装的产品,验证以下内容软件已安装在您的系统上:

  • 操作系统版本要求(Operating System Requirements)
  • 内核版本要求(Kernel Requirements)
  • 依赖程序包要求(Package Requirements)
  • 本指南包含安装 Oracle 数据库 11g 版本 2 (11.2)所需的信息。
  • Oracle 通用安装程序会对系统执行检查,以验证它是否符合列出的要求。安装前请确保这些检查通过。

2.1 操作系统版本要求(Operating System Requirements)

Oracle 数据库 11g 第2版(11.2)需要以下操作系统版本(或更高版本):

  • 从 Oracle Database 11g Release 2 (11.2.0.4)开始,支持64位 Oracle Linux 7 和 Red Hat Enterprise Linux 7
  • 从 Oracle Database 11g Release 2 (11.2.0.3)开始,支持64位 Oracle Linux 6 和 Red Hat Enterprise Linux 6

要确定已安装的Linux的发行版版本,请输入以下命令:

  1. # cat /proc/version

您还可以在某些Linux发行版上输入以下命令:

  1. # lsb_release -id

2.2 内核版本要求(Kernel Requirements)

以下是Oracle 数据库 11g 第2版(11.2)的内核要求:

For Linux x86

  • On Oracle Linux 4 and Red Hat Enterprise Linux 4 2.6.9 (或更高)

For Linux x86-64

  • On Oracle Linux 4 and Red Hat Enterprise Linux 4 2.6.9 (或更高)

通过运行以下命令检查内核版本:

  1. # uname -r

以下是通过在Red Hat Enterprise Linux 7上运行此命令显示的示例输出:

  1. 3.10.0-957.el7.x86_64

在此示例中,输出显示该系统内核版本为(3.10.0)和勘误级别(-957.el7)。

2.3 依赖程序包要求(Package Requirements)

Oracle Database Package Requirements for Linux 32 位 (x86) 安装

Operating System Requirement
Oracle Linux 4 and Red Hat Enterprise Linux 4 The following packages (or later versions) must be installed:
binutils-2.15.92.0.2
compat-libstdc++-33-3.2.3
elfutils-libelf-0.97
elfutils-libelf-devel-0.97
gcc-3.4.6
gcc-c++-3.4.6
glibc-2.3.4-2.41
glibc-common-2.3.4
glibc-devel-2.3.4
glibc-headers-2.3.4
libaio-devel-0.3.105
libaio-0.3.105
libgcc-3.4.6
libstdc++-3.4.6
libstdc++-devel-3.4.6
make-3.80
numactl-0.6.4.i386
pdksh-5.2.14
sysstat-5.0.5
Oracle Linux 6, Red Hat Enterprise Linux 6 and Asianux Server 4 The following packages (or later versions) must be installed:
binutils-2.20.51.0.2-5.11.el6.i686
compat-libcap1-1.10-1.i686
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6.i686
gcc-c++-4.4.4-13.el6.i686
glibc-2.12-1.7.el6.i686
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6.i686
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6.i686
sysstat-9.0.4-11.el6.i686

注意:The kernel-headers-2.6.18 package is not mandatory for database installations on Linux x86. You can ignore the OUI or CVU warning to install this package.

Oracle Database Package Requirements for Linux 64 位 (x86_64) 安装

注意:

  • 从Oracle Database 11g第2版(11.2.0.2)开始,下表中列出的所有32位软件包(gcc-32bit-4.3除外)在Linux x86-64上安装数据库时不再需要,仅需要64位软件包。
  • 但是,对于任何Oracle 11.2.0.2之前的11g版本数据库,下表中列出的所有32位和64位软件包都是必须安装的。
Operating System Requirement
Oracle Linux 4 and Red Hat Enterprise Linux 4 The following packages (or later versions) must be installed:
binutils-2.15.92.0.2
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.97
elfutils-libelf-devel-0.97
expat-1.95.7
gcc-3.4.6
gcc-c++-3.4.6
glibc-2.3.4-2.41
glibc-2.3.4-2.41 (32 bit)
glibc-common-2.3.4
glibc-devel-2.3.4
glibc-headers-2.3.4
libaio-0.3.105
libaio-0.3.105 (32 bit)
libaio-devel-0.3.105
libaio-devel-0.3.105 (32 bit)
libgcc-3.4.6
libgcc-3.4.6 (32-bit)
libstdc++-3.4.6
libstdc++-3.4.6 (32 bit)
libstdc++-devel 3.4.6
make-3.80
numactl-0.6.4.x86_64
pdksh-5.2.14
sysstat-5.0.5
Oracle Linux 5, Red Hat Enterprise Linux 5, and Asianux Server 3 The following packages (or later versions) must be installed:
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
coreutils-5.97-23.el5_4.1
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2 gcc-c++-4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel-4.1.2
make-3.81 sysstat-7.0.2
Oracle Linux 6, Red Hat Enterprise Linux 6, and Asianux Server 4 The following packages (or later versions) must be installed:
binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)
Oracle Linux 7 and Red Hat Enterprise Linux 7 The following packages (or later versions) must be installed:
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64

安装依赖软件包,请执行以下命令:

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

要确定是否安装了必需的软件包,请输入以下命令:

# rpm -q package_name

2.4 安装修正脚本

在安装过程中,如果对于某些先决条件验证失败,请单击“修复并检查”。再次生成一个修正脚本(runfixup.sh)。 您可以以root用户身份运行此脚本完成所需的预安装步骤。

此修正脚本将会:

  • 检查内核参数并将其设置为成功安装所需的值,包括:
    • Shared memory parameters
    • Open file descriptor and UDP send/receive parameters

Oracle建议您不要修改生成的修订脚本的内容。

使用修正脚本不能确保所有先决条件满足安装Oracle数据库的要求。 您仍然必须验证所有满足预安装要求,以确保成功安装。

第 3 部分:针对Oracle配置Linux

Linux 软件现已安装完毕,您需要针对 Oracle 对其进行配置。本部分将逐步讲解针对 Oracle 数据库 11g 第 2 版配置 Linux 的过程。

3.1 创建 Oracle 组和用户帐户

您可能必须创建多个Linux组和用户,这取决于这是否是首次在该系统上安装Oracle软件产品。

首次在系统上安装Oracle软件时,Oracle Universal安装程序将创建oraInst.loc文件。 该文件标识Oracle Inventory组的名称(通常为oinstall)和Oracle Inventory 目录的路径。

root用户身份登录,并按照以下命令创建Oracle Inventory组和软件安装所有者:

# /usr/sbin/groupadd -g 501 oinstall
# /usr/sbin/groupadd -g 502 dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle

确定Oracle软件安装所有者 oracle 是否已创建,请输入以下命令:

# id oracle

如果 oracle 用户存在,则此命令显示的示例输出为:

uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)

设置 oracle 用户的口令:

# passwd oracle

3.2 为 oracle 用户设置资源限制

Oracle 建议对每个 Linux 帐户可以使用的进程数和打开的文件数设置限制。要进行这些更改,以 root 用户的身份执行下列命令:

cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047  
oracle hard nproc 16384  
oracle soft nofile 1024  
oracle hard nofile 65536  
oracle soft stack 10240
EOF

3.3 配置Linux内核参数

Oracle 数据库 11g 第 2 版需要以下所示的内核参数设置。给出的值都为最小值,因此如果您的系统使用一个更大的值,则不需要进行更改。Linux 允许在系统启动并运行时修改大多数内核参数,所以无需在修改内核参数后重启系统。

root 用户身份登录后执行下命令:

cat >> /etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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
EOF

激活系统的所有内核参数:

# /sbin/sysctl -p

3.4 创建目录

现在创建目录来存放 Oracle 数据库 11g 第 1 版软件及数据库文件。本指南在创建目录结构时所用的命名惯例符合最佳灵活结构 (OFA) 规范。

以下操作在根文件系统中创建目录。这样做是为了简便起见,不建议将其作为通用做法。这些目录通常被创建为单独的文件系统。

root用户身份登录,并按照以下命令创建目录并指定正确的所有者,组和权限:

# mkdir -p /u01/app/oracle
# mkdir -p /u01/app/oraInventory
# chown -R oracle:oinstall /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oraInventory
# chmod -R 775 /u01/app/oracle
# chmod -R 775 /u01/app/oraInventory

在本章后面配置oracle用户的环境时,请设置ORACLE_BASE环境变量,用于指定您要使用的Oracle基本目录。

3.5 配置oracle用户环境

您使用 oracle 帐户运行Oracle Universal Installer 。但是,在启动Oracle Universal Installer之前,必须配置 oracle 用户的环境。要配置环境,编辑/home/oracle/.bash_profile文件,并添加如下内容:

ORACLE_BASE=/u01/app/oracle
ORACLE_SID=orcl
export ORACLE_BASE ORACLE_SID

/u01/app/oracle 是之前创建的Oracle基目录,orcl是数据库名称(通常不超过5个字符)。

执行命令使上述配置立即生效:

source /home/oracle/.bash_profile

第 4 部分:安装Oracle

请根据安装向导一步步执行安装操作。

  • 安装时到70%左右会出现一个错误:
    Error in invoking target 'agent nmhs' of makefile '/u01/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'
    
    解决方案: 保留安装过程,另外开启一个终端窗口,根据提示找到ins_emagent.mk文件,将文件中的 $(MK_EMAGENT_NMECTL)更改为$(MK_EMAGENT_NMECTL) -lnnz11,然后在安装过程中点击Retry即可。

    第 5 部分:附属

    如果安装依赖程序包的时候无法联网,那么可将安装镜像CentOS-7-x86_64-DVD-1908.iso进行挂载,从镜像中进行安装依赖程序包:
    挂载镜像
    mkdir /mnt/sr0
    mount /dev/sr0 /mnt/sr0
    

卸载镜像

umount /dev/sr0