本文介绍在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的发行版版本,请输入以下命令:
# cat /proc/version
您还可以在某些Linux发行版上输入以下命令:
# 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 (或更高)
通过运行以下命令检查内核版本:
# uname -r
以下是通过在Red Hat Enterprise Linux 7上运行此命令显示的示例输出:
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%左右会出现一个错误:
解决方案: 保留安装过程,另外开启一个终端窗口,根据提示找到ins_emagent.mk文件,将文件中的Error in invoking target 'agent nmhs' of makefile '/u01/oracle/product/11.2.0/db_1/sysman/lib/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