Centos7离线情况下安装Oracle11g

简介:

由于公司业务场景需要在Linux离线情况下安装oracle11g,经过自己摸索和结合网上教程终于在centos7.0和readhat6.5安装成功。本文描述了在centos7.0安装Oracle11g的所有步骤,分享给大家。在centos7离线安装oracle最麻烦的是需要下载Oracle需要的依赖包。只要把依赖包下载安装完全后,后面安装按着教程一步步来,一般来说没有什么问题。

1 下载依赖

这个步骤一般可以不操作,因为依赖我已经下载打包在附件中了。如果在后面的安装中出现依赖找不到的情况,可以返回来执行这步骤下载依赖。在下载依赖之前我们需要一台联网centos7.0系统电脑.进入联网电脑的terminal,输入su root,通过root用户执行以下操作。

1.1 安装离线下载插件

 [root@localhost honcur]# sudo yum install yum-plugin-downloadonly 

这个插件可以把依赖包下载到本地。

1.2 下载rpm包,保存在本地

进入terminal输入:

[root@localhost ~]# cd /usr/local
[root@localhost local]# mkdir oralib
[root@localhost local]# cd oralib
[root@localhost local]# yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel  glibc-static --downloadonly --downloaddir=. 

执行命令后,进入/usr/local/oralib可以看到依赖包已经全部下载在文件夹内。

2 安装前的准备

2.1 安装oracle需要的依赖包

把依赖包oralib.tar 放入/usr/local文件夹下,然后打开terminal。

[honcur@localhost ~]$ su root  #切换到root
[root@localhost honcur]# cd /usr/local #切换到目录
[root@localhost local]#  tar zxvf oralib.tar #解压依赖包
[root@localhost local]# cd oralib/ #切换到oralib目录
[root@localhost oralib]# yum localinstall *.rpm –nogpgcheck  #安装所有依赖,然后根据提示输入‘Y’,敲回车

2.2 创建oracle用的用户和用户组

[honcur@localhost oralib]$ su root
[root@localhost oralib]# groupadd oinstall #创建oinstall用户组
[root@localhost oralib]# groupadd dba #创建dba用户组
[root@localhost oralib]# useradd -g oinstall -g dba -m oracle #创建oracle用户并分配oinstall和dba用户组
[root@localhost oralib]# passwd oracle #更改oracle用户密码

2.3 创建oracle安装目录

[root@localhost ~]# cd / #切换到根目录
[root@localhost /]# mkdir -p /data/oracle  //创建oracle目录, oracle安装时需要指定的目录
[root@localhost /]# mkdir -p /data/oraInventory  //创建oraInventory目录, oracle安装时需要指定的目录
[root@localhost /]# mkdir -p /data/database  //创建databas目录,oracle安装时需要指定的目录
[root@localhost /]# mkdir -p /data/app //创建存放oracle安装文件的目录 
[root@localhost /]# cd data #切换到data目录
[root@localhost data]# chown -R oracle:oinstall /data/oracle  #将文件夹授权给oracle用户
[root@localhost data]# chown -R oracle:oinstall /data/oraInventory #将文件夹授权给oracle用户
[root@localhost data]# chown -R oracle:oinstall /data/database #将文件夹授权给oracle用户
[root@localhost data]# chown -R oracle:oinstall /data/app#将文件夹授权给oracle用户

2.4 修改系统标识

Oracle安装包默认不支持centos系统,需要把系统标识改成redhat-7。

[root@localhost oralib]#  vi /etc/redhat-release #vi编辑修改系统标识
[root@localhost oralib]# cat /etc/redhat-release #查看是否更改成功

2.5 关闭防火墙

[root@localhost oralib]# systemctl stop firewalld.service #关闭防火墙
[root@localhost oralib]# systemctl disable firewalld.service #禁止使用防火墙

2.6 关闭selinux

[root@localhost oralib]# vi /etc/selinux/config  #修改selinux配置文件

/etc/selinux/config修改最终为:
# 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 three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

2.7 修改内核参数

Oracle比较占用资源,需要把参数调大。

[root@localhost oralib]#  vi /etc/sysctl.conf  #修改内核配置文件

/etc/sysctl.conf修改最终为:
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #设置最大打开文件数
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 #共享内存的总量,8G内存设置:20971524k/1024/1024
kernel.shmmax = 2147483648 #最大共享内存的段大小
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576

修改配置文件后,再输入以下命令使之有效:

[root@localhost oralib]#  sysctl -p

2.8 配置oracle环境变量

[root@localhost oralib]# vi /home/oracle/.bash_profile #修改用户环境变量文件,添加下面的斜体文字

/home/oracle/.bash_profile修改最终为:
*# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export ORACLE_BASE=/data/oracle #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle数据库路径
export ORACLE_SID=orcl #oracle启动数据库实例名
export ORACLE_UNQNAME=orcl
export ORACLE_TERM=xterm #xterm窗口模式安装
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量
export LANG=C #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致
修改配置文件后,再输入以下命令使之有效:

[root@localhost oralib]#  source /home/oracle/.bash_profile

2.9 重启使用所有更改配置生效

[root@localhost Desktop]# reboot

3 安装oracle

3.1 解压oracle安装文件

重启后必须用oracle用户登陆系统!!!!!然后把下载的linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_1of2.zip两个文件复制到/data/app文件夹内。

[oracle@localhost app]$ unzip linux.x64_11gR2_database_1of2.zip -d /data/database/ #解压第一部分 
[oracle@localhost app]$ unzip linux.x64_11gR2_database_2of2.zip -d /data/database/ #解压第一部分

3.2 进入/data/database/databae进行安装

[oracle@localhost app]$ cd /data/database/database/ #进入oracle安装脚本目录
[oracle@localhost database]$ ./runInstaller #执行oracle安装

4 图形界面安装选项和需要解决的问题

4.1 默认安装

不要勾选”I wish to receive security updates via My Oracle Support.”
Centos7离线情况下安装Oracle11g_第1张图片

提示警告直接点yes
Centos7离线情况下安装Oracle11g_第2张图片
默认选项
Centos7离线情况下安装Oracle11g_第3张图片
选择“Server Class”
Centos7离线情况下安装Oracle11g_第4张图片
默认选项
Centos7离线情况下安装Oracle11g_第5张图片
选择”Advanced install”
Centos7离线情况下安装Oracle11g_第6张图片
默认选项,EnglishCentos7离线情况下安装Oracle11g_第7张图片
默认选项
Centos7离线情况下安装Oracle11g_第8张图片
默认选项,从用户环境变量读取Centos7离线情况下安装Oracle11g_第9张图片
默认选项,从用户环境变量读取
Centos7离线情况下安装Oracle11g_第10张图片
默认选项,从用户环境变量读取
Centos7离线情况下安装Oracle11g_第11张图片
在这个页面需要有两个改动:
1,“Character sets” 选择第二项的“Use Unicode(AL32UTF8)”
2,”Sample Schemas”勾选 “Create database with sample schemas”
Centos7离线情况下安装Oracle11g_第12张图片
默认选项
Centos7离线情况下安装Oracle11g_第13张图片
默认选项
Centos7离线情况下安装Oracle11g_第14张图片
默认选项
Centos7离线情况下安装Oracle11g_第15张图片
选择第二个选项,输入所有用户密码:Admin1314。
Centos7离线情况下安装Oracle11g_第16张图片
默认选项
Centos7离线情况下安装Oracle11g_第17张图片
勾选“Ignore All”
Centos7离线情况下安装Oracle11g_第18张图片
默认选项,”Finish”
Centos7离线情况下安装Oracle11g_第19张图片

4.2 安装问题解决

4.2.1 ins_ctx.mk编译错误,如下图

Centos7离线情况下安装Oracle11g_第20张图片
修改/data/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk,将
ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改为:
ctxhx: $(CTXHXOBJ)
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a
点击Retry继续安装

4.2.2 ins_emagent.mk编译错误

Centos7离线情况下安装Oracle11g_第21张图片
解决方法:在makefile中添加链接libnnz11库的参数
修改/data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk,将
$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11
点击Retry继续安装。

4.3 安装成功确认

4.3.1 弹出如下界面表示安装成功

Centos7离线情况下安装Oracle11g_第22张图片

4.3.2 点击“ok”按钮,弹出如下窗口

Centos7离线情况下安装Oracle11g_第23张图片
按上面窗口提示用root用户登陆,执行两个orainstRoot.sh 和 root.sh
[root@localhost oralib]# /data/oraInventory/orainstRoot.sh .
[root@localhost oralib]# /data/oracle/product/11.2.0/db_1/root.sh
两个sh文件执行成功后,Oracle算是已经安装成功。

5 开机自启动

5.1 修改oratab文件

打开terminal,
[oracle@localhost ~]$ su root #切换到root账户
[root@localhost oracle]# vi /etc/oratab #编辑/etc/oratab文件
把orcl:/data/oracle/product/11.2.0/db_1:N改称orcl:/data/oracle/product/11.2.0/db_1:Y

5.2 修改rc.local文件

[oracle@localhost ~]$ su root #切换到root账户
[root@localhost oracle]# vi /etc/rc.d/rc.local #编辑/etc/rc.d/rc.local文件
在/etc/rc.d/rc.local文件中添加:
su oracle -lc “/data/oracle/product/11.2.0/db_1/bin/lsnrctl start”
su oracle -lc “/data /oracle/product/11.2.0/db_1/bin/dbstart”

5.3 修改dbstart和dbshut文件

[oracle@localhost ~]$ su root #切换到root账户
[root@localhost oracle]# vi $ORACLE_HOME/bin/dbstart #编辑Oracle安装目录下bin/dbstart文件,其实就是/data/oracle/product/11.2.0/db_1/bin/dbstart
把ORACLE_HOME_LISTNER= 1 改 成 O R A C L E H O M E L I S T N E R = 1改成 ORACLE_HOME_LISTNER= 1ORACLEHOMELISTNER=ORACLE_HOME 。
相同的方式更改dbshut文件。
[root@localhost oracle]# vi $ORACLE_HOME/bin/dbshut #编辑Oracle安装目录下bin/ dbshut文件,其实就是/data/oracle/product/11.2.0/db_1/bin/ dbshut
把ORACLE_HOME_LISTNER= 1 改 成 O R A C L E H O M E L I S T N E R = 1改成 ORACLE_HOME_LISTNER= 1ORACLEHOMELISTNER=ORACLE_HOME

5.4 新建oracle启动脚本

[oracle@localhost ~]$ su root #切换到root账户
[root@localhost oracle]# vim /etc/init.d/oracle #新建并编辑 /etc/init.d/oracle脚本
叫下面的内容复制到脚本文件中:
[oracle@localhost ~]$ su root #切换到root账户
[root@localhost oracle]# vim /etc/init.d/oracle #新建并编辑 /etc/init.d/oracle脚本
叫下面的内容复制到脚本文件中:

#!/bin/sh
# chkconfig: 345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1
export ORACLE_SID=ORCL
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0

5.5 测试oracle脚本是否可用

[oracle@localhost ~]$ su root #切换到root账户
[root@localhost init.d]# cd /etc/rc.d/init.d
[root@localhost init.d]# chmod 750 /etc/rc.d/init.d/oracle
[root@localhost init.d]# ./oracle start .
[root@localhost init.d]# ./oracle stop

5.6 把oracle脚本加入自启动

[root@localhost init.d]# su root #切换到root账户
[root@localhost init.d]# ln -s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle
[root@localhost init.d]# ln -s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle
[root@localhost init.d]# ln -s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle
[root@localhost init.d]# ln -s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle
[root@localhost init.d]# ln -s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle
[root@localhost init.d]# chkconfig --level 234 oracle on
[root@localhost init.d]# chkconfig --add oracle

执行上面的命令,重启就可以开机自启动oracle了。至此oracle安装全部完成。

你可能感兴趣的:(linux)