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 系统有一些特殊的参数配置,以充分发挥其性能。按如下步骤修改系统配置:
- 修改主机名及添加 hosts 文件对应
# hostnamectl set-hostname oradb # cat << EOF >> /etc/hosts > 172.16.200.1 oradb > EOF
- 修改”/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
- 修改”/etc/security/limits.conf”文件,添加如下内容:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 4096 oracle hard nofile 65536 oracle soft stack 10240
- 修改”/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 数据库就全部完成了,希望有收获。