ORACLE 作为目前企业应用最为广泛的数据据管理系统,以其优异的性能和稳定性著称业界。本文将详细讲解 RHEL/CentOS 7 系统下安装和配置 Oracle 11g,并对一些需要注意的细节问题进行剖析,有助于避免实际使用时遇到的各种奇怪问题。

1] 实验环境说明

  • 主机配置:VMware 虚拟主机、4核处理器、4G内存、127G硬盘
  • 操作系统:RHEL 7.4  最小化安装
  • Oracle版本:Oracle 11g R2(11.2.0.4)
  • IP地址:172.16.200.1
  • Hostname:oradb

虚拟机操作系统为 RHEL 7.4,当然其它版本也可以。安装规格选择最小化安装,通过本地开启 Xsever 服务器以及 SSH 转发,同样以图形界面方式安装 Oracle,而不必配置响应文件静默安装。

磁盘划分也比较有讲究,使用自动划分的话,交换分区是按主机内存大小自动设置的。如果划分完成后,主机内存增大,再对应增加交换分区容量就相对麻烦,不如直接将交换分区设置为16GB,这样无论内存多大,交换分区都可以满足要求。

2] 安装依赖软件包

RHEL 操作系统虽然可以免费使用,但是其服务是收费的,服务当然包括软件包更新升级等,没有购买服务的 RHEL 系统是不能通过 yum 工具在线安装软件包。解决办法就是将 yum 源配置为本地,也就是 RHEL 的 DVD 盘。也有将 yum 源设置为 CentOS 软件库的方法,但是由于软件源有时候要核对发版的 key,造成安装时遇到各种问题,不如使用 DVD盘中的软件包来的稳定直接。

要配置本地 yum 源,首先将 DVD光盘镜像插入主机,然后使用如下命令将光盘挂载到文件系统目录:

# mount -t iso9660 -o,loop /dev/sr0 /mnt

现在,在”/etc/yum.repos.d”目录下新建一个”redhat_local.repo”文件,内容如下:

[rhel_local]
name=rhel_local         //软件库名称,可以自行设置
baseurl=file:///mnt     //软件库地址,此处设置为本地光盘
enabled=1               //是否启用本yum源,0为不启用,1为启用 
gpgcheck=0              //是否进行gpgkey检查,0为不检查,1为检查

现在,本地 yum 软件源就配置完成了。可以使用”yum list”命令检查一下,如果可以显示出软件包信息,则表示本地 yum 源配置成功。

如果使用 CentOS 7 系统,则可以直接使用 yum 工具安装 Oracle 依赖软件包。使用 yum 的好处是安装软件包时会自己安装相应的依赖包,省时省力。

使用如下命令安装 Oracle 的依赖包:

# yum install binutils compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel libXext libXtst libX11 libXau libxcb libXi make sysstat unixODBC unixODBC-devel zlib-devel elfutils-libelf-devel  compat-libstdc++

如果提示找不到软件包,则先不用管它,等安装 Oracle 数据库依赖性检查时一并处理。

3] 修改系统配置

Oracle 数据库对于 Linux 系统有一些特殊的参数配置,以充分发挥其性能。按如下步骤修改系统配置:

  1. 修改主机名及添加 hosts 文件对应
    # hostnamectl set-hostname oradb
    # cat << EOF >> /etc/hosts
    > 172.16.200.1 oradb
    > EOF
  1. 修改”/etc/sysctl.conf”文件,添加如下内容:
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    kernel.shmall = 2097152
    kernel.shmmax = 536870912
    kernel.shmmni = 4096
    # semaphores: semmsl, semmns, semopm, semmni
    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 = 1048586
  1. 修改”/etc/security/limits.conf”文件,添加如下内容:
    oracle      soft    nproc   2047
    oracle      hard    nproc   16384
    oracle      soft    nofile  4096
    oracle      hard    nofile  65536
    oracle      soft    stack   10240
  1. 修改”/etc/pam.d/login”文件,添加如下内容:
    session    required     pam_limits.so  //添加到对应的session字段即可

全部配置完成后,执行如下命令让修改生效:

#sysctl -p

4] 添加用户和属组

很多教程都会创建两个组 oinstall 和 dba,其实对于单实例单 Oracle 数据库软件来说,只需要一个dba组就足够了,oinstall 组一般用于安装多个 Oracle 软件。使用如下命令添加用户和属组:

# groupadd -g 54321 dba
# useradd -g dba -G 54321 oracle

之后创建 Oracle 软件的安装目录,也就是所谓的”ORACLE_BASE”和”ORACLE_HOME”,并对目录进行授权:

# mkdir -p /app/oracle
# chown -R oracle:dba /app

使用 CentOS 7 系统就相对方便很多,既可以在线安装软件包,也可以使用 Oracle 提供的预安装工具进行系统配置。

首先使用如下命令安装 Oracle 软件库:

# wget http://public-yum.oracle.com/public-yum-ol7.repo -O /etc/yum.repos.d/public-yum-ol7.repo
# wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

然后就可以使用 yum 命令安装预安装工具:

# yum install oracle-rdbms-server-11gR2-preinstall

这个软件包会自动完成以上所有工作,包括修改系统参数、安装依赖包以及创建用户和组等。

5] 修改 oracle 用户环境变量

切换到 oracle 用户,修改用户环境变量为如下内容:

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi
# User specific environment and startup programs
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1
export ORACLE_SID=oradb
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin
export PATH

根据以上环境变量设置信息,我们设置 ORACLE_HOME 为”/app/oracle/product/11.2.0.4/db_1″,SID为”oradb”,当然,这些内容可以根据自己的实际情况自行设定。

设置完成后,就可以将 Oracle 软件安装包上传到”/home/oracle”目录了。

6] 安装数据库软件

想要本地使用显示图形界面,就需要安装支持”xhost”命令的工具,执行如下命令安装:

# yum provides xhost
# yum install xorg-x11-server-utils
# yum install xorg-x11-xauth

之后,切换到 oracle 用户,使用如下命令指定图形化显示服务器:

$ export DISPLAY=172.16.200.5:0.0

此时,我们指定的 Xserver 为Windows主机上的 Xmanager 工具,它可以完成 Xserver的功能,注意使用时关闭 Windows 防火墙或打开177端口。

之后,启动 Oracle 安装命令:

[oracle@oradb database]$ ./runInstaller

Xmanager启动正常的话,就会显示如下提示,申请连接显示服务器:

图.1 Xmanager作为Xserver接受客户端连接申请

点击”是(Y)”后,就会显示出 Oracle 安装的图形界面。

图.2 Oracle 11g R2 数据库安装步骤一

根据实际情况填写内容,如果都没有的话,就将”I wish to receive security updates via My Oracle Support”前而的勾选点掉,然后点击”Next>”继续:

图.3 Oracle 11g R2 数据库安装步骤二

忽略更新,点击”Next>”继续:

图.4 Oracle 11g R2 数据库安装步骤三

我们选择只安装数据库软件,之后使用 DBCA 工具安装数据库,点击”Next>”继续:

图.5 Oracle 11g R2 数据库安装步骤四

选择单实例数据库安装,点击”Next>”继续:

图.6 Oracle 11g R2 数据库安装步骤五

数据库软件选择英语即可,点击”Next>”继续:

图.7 Oracle 11g R2 数据库安装步骤六

数据库软件版本当然选择企业版,点击”Next>”继续:

图.8 Oracle 11g R2 数据库安装步骤七

设置 Oracle 数据库安装位置,之前已经设置相关环境变量,此时会自动带出,点击”Next>”继续:

图.9 Oracle 11g R2 数据库安装步骤八

Oracle 的清单目录,系统会自行设置,不需要特别指定,点击”Next>”继续:

图.10 Oracle 11g R2 数据库安装步骤九

指定数据管理员权限组,不需要修改,点击”Next>”继续:

图.11 Oracle 11g R2 数据库安装步骤十

系统依赖性检查,对于”Fixable”的显示为”Yes”的问题,可以通过点击”Fix & Check Again”来显示处理办法,其它问题只有手动处理。例如”OS Kernel Parameter:shmmax”可以系统自动处理,提示信息如下:

图.12 Oracle 11g R2 数据库安装十之修正脚本

根据提示,用 root 用户登录主机,然后执行”/tmp/CVU_11.2.0.4.0_oracle/runfixup.sh”脚本,再点击”OK”重新检查,会发现此问题已经修正。

其它内核参数可以根据提示手动设置,不再一一列举。至于缺少的两个依赖包,其中 pdksh 包可以忽略,而包则使用如下命令安装:

# rpm -ivh http://rpmfind.net/linux/centos/7.6.1810/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

如果提示没有响应,可以从本站下载RPM包,自行安装。

问题修正完成后,点击”Next>”继续:

图.13 Oracle 11g R2 数据库安装十之忽略提示

因为有一个依赖包没有安装,系统会弹窗提示,点击”Yes”继续:

图.14 Oracle 11g R2 数据库安装十一

显示数据库安装的汇总信息,核对无误后可以点击”Install”安装数据库软件,当然之前也可以点击”Save Response File” 来保存响应文件,方便再次安装数据库:

图.15 Oracle 11g R2 数据库安装十二

安装过程中出现这个报错也不要惊慌,这是因为 Oracle  安装过程需要使用 RHEL 的一个允许漏洞,修改参数即可解决,当然也可以按照官给的方案先点继续安装然后给 Oracle打补丁。本次使用修改系统参数方式,新打开一个登录窗口,登录到主机,找到”/app/oracle/product/11.2.0.4/db_1/sysman/lib/ins_emagent.mk”这个文件,定位到”emdctl”项,添加”-lnnz11″参数:

#===========================
#  emdctl
#===========================

$(SYSMANBIN)emdctl:
        $(MK_EMAGENT_NMECTL) -lnnz11

之后,再点击”Retry”继续安装即可。

图.16 Oracle 11g R2 数据库安装十二之执行脚本提示

最后,需要以 root 用户执行两个脚本,按照提示分别执行”orainstRoot.sh”和”root.sh”脚本,执行完成后点击”OK”确定:

图.17 Oracle 11g R2 数据库安装十二之脚本执行过程

图.18 Oracle 11g R2 数据库安装十三

系统提示 Oracle 数据库已经成功安装,点击”Close”结束,数据库软件安装完成。

7] 使用DBCA创建数据库

创建数据库同样使用可视化工具 DBCA,建库前先启动侦听,以便完成数据库实例侦听的自动注册:

[oracle@oradb ~]$ lsnrctl start
[oracle@oradb ~]$ dbca

首先出现欢迎界面:

图.19 Oracle 11g R2 DBCA 创建数据库欢迎界面

没什么好说的,点击”Next>”继续:

图.20 Oracle 11g R2 DBCA 创建数据库步骤一

当然是创建数据库,点击”Next>”继续:

图.21 Oracle 11g R2 DBCA 创建数据库步骤二

数据库建库模板选择通用用途或事务处理模板,点击”Next>”继续:

图.22 Oracle 11g R2 DBCA 创建数据库步骤三

数据库全局数据库名和 SID 均设置同 oracle 用户环境变量一致,点击”Next>”继续:

图.23 Oracle 11g R2 DBCA 创建数据库步骤四

配置启用EM,点击”Next>”继续:

图.24 Oracle 11g R2 DBCA 创建数据库步骤五

设置数据库管理员密码,方便起见,所有用户密码设置为同一密码,填写完成后,点击”Next>”继续:

图.25 Oracle 11g R2 DBCA 创建数据库步骤六

数据文件位置如无需特别指定,选择使用模板位置即可,点击”Next>”继续:

图.26 Oracle 11g R2 DBCA 创建数据库步骤七

设置快闪恢复区位置以及根据需求是否启用归档,如果启用归档,则需要设置归档文件位置及格式等信息,这里不启用,点击”Next>”继续:

图.27 Oracle 11g R2 DBCA 创建数据库步骤八

选择是否安装示例 example 表空间,不需要的话点击”Next>”继续:

图.28 Oracle 11g R2 DBCA 创建数据库步骤九

此时需要设置数据库的初始化参数,建议字符集选择”AL32UTF8″ ,其余内容保持默认即可,点击”Next>”继续:

图.29 Oracle 11g R2 DBCA 创建数据库步骤十

设置数据库存储参数,如无特别要求,保持默认即可,点击”Next>”继续:

图.30 Oracle 11g R2 DBCA 创建数据库步骤十一

可以根据需要保存建库模板和SQL脚本,如不需要,则点击”Finish”继续:

图.31 Oracle 11g R2 DBCA 创建数据库步骤汇总信息

创建数据库之前,会显示汇总信息,如无意外,点击”OK”开始创建数据库:

图.33 Oracle 11g R2 DBCA 创建数据库步骤解锁预安装账户

安装进度不用理会,最后会弹出对话框提示数据库账户信息,如果需要解锁其它预安装账户,则点击”Password Managemnet”进行解锁,不需要的话点击”Exit”完成数据库创建。

连接到数据库并查看数据库实例状态:

图.33 查看新建数据库实例状态

可以看到,数据库实例状态为”OPEN”,表示数据库启动成功,可以进行连接了。

8] 设置Oracle数据库开机启动

如果使用模板创建数据库,系统会自动生成一个”/etc/oratab”文件,再结合”/etc/rc.d/rc.local”文件的配置,就可以实现 Oracle 数据库的自动启动。

修改”/etc/oratab”文件为如下内容:

oradb:/app/oracle/product/11.2.0.4/db_1:Y

修改”/etc/rc.d/rc.local”,添加如下内容:

su - oracle -c "lsnrctl start"
su - oracle -c "dbstart"

至此,RHEL/CentOS 7 系统安装 Oracle 11g 数据库就全部完成了,希望有收获。

发表评论

您的电子邮箱地址不会被公开。