CentOS 7下安装部署Oracle11g图文教程

一、 安装环境:

Linux系统:

CentOS 7 64

Oracle:  

Oracle11gR2 64

 

二、系统要求:

系统要求

说明

内存

必须高于1G的物理内存

交换空间

一般为内存的2倍,例如1G的内存可以设置swap3G大小

硬盘

5G以上

三、系统核心参数配置:

在Root用户下执行以下步骤:

3.1 安装前验证

内存最小1G,推荐2G或者更高。

# grep MemTotal /proc/meminfo

图片.png

# free

图片.png

内存为1-2g,swap是内存的1.5倍左右。

# grep SwapTotal /proc/meminfo

图片.png

验证相关包是否安装。

# rpm -qa binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers glibc-static kernel-headers pdksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel

CentOS 7下安装部署Oracle11g图文教程_第1张图片

yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers glibc-static ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat kernel-headers pdksh libgomp libstdc++-static numactl-devel unixODBC unixODBC-devel

CentOS 7下安装部署Oracle11g图文教程_第2张图片

图片.png

CentOS 7下安装部署Oracle11g图文教程_第3张图片

CentOS 7下安装部署Oracle11g图文教程_第4张图片

3.2 创建组和用户

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba -m oracle

echo oracle | passwd --stdin oracle

spacer.gif

3.3 创建数据库软件目录和数据文件存放目录

目录的位置,根据自己的情况来定,注意磁盘空间即可,这里我把其放到oracle用户下,例如:

mkdir /home/oracle/app

mkdir /home/oracle/app/oracle

mkdir /home/oracle/app/oradata

mkdir /home/oracle/app/oracle/product

spacer.gif

更改目录属主为Oracle用户所有,输入命令:

chown -R oracle:oinstall /home/oracle/app

spacer.gif

 

3.4 关闭并禁用防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

spacer.gif

3.5 关闭selinux

vi /etc/selinux/config

SELINUX=disabled

spacer.gif

3.6 配置内核参数

配置要求,配置大于系统数据需要配置更改,否则不需要配置:

vi /etc/sysctl.conf

fs.file-max = 6815744

fs.aio-max-nr = 1048576

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

spacer.gif

使配置生效

/sbin/sysctl -p

spacer.gif

这里写图片描述

3.7 对oracle用户设置限制,提高软件运行性能

vi /etc/security/limits.conf 修改

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

spacer.gif

 

3.8 配置oracle用户的环境变量

首先,切换到新创建的oracle用户下,

输入:su – oracle  ,然后直接在输入 : vi .bash_profile

按i编辑 .bash_profile,进入编辑模式,增加以下内容:

umask 022

export ORACLE_BASE=/home/oracle/app

export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1

export ORACLE_SID=orcl

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

spacer.gif

source /home/oracle/.bash_profile

 

3.9 编辑profile文件

vi  /etc/profile,按i键进入编辑模式,将下列内容加入该文件。

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

spacer.gif

3.8 修改hosts文件

vi /etc/hosts

10.10.11.124 localhost

spacer.gif

3.9 修改login文件,

输入命令:vi  /etc/pam.d/login,按i键进入编辑模式,将下列内容加入该文件。

session required /lib/security/pam_limits.so

session required pam_limits.so

spacer.gif

 

四、安装oracle

接下来的步骤都在主机上进行。

4.1 上传并解压安装包

上传使用tftp工具上传到/opt目录(没有要求一定要放这个目录哈,个人习惯)

unzip linux.x64_11gR2_database_1of2.zip

unzip linux.x64_11gR2_database_2of2.zip

 

4.2 修改cvu_prereq.xml

文件路径:/opt/database/stage/cvu

修改之前先备份一下,养成好习惯哈

cp cvu_prereq.xml cvu_prereq.xml.bak

使用perl命令,将文件中的i386字段修改为i686

perl -p -i -e "s/i386/i686/g" cvu_prereq.xml

spacer.gif

 

4.3 开始安装数据库

安装之前建议重启一下主机

路径:/opt/database

#为了避免安装过程出现乱码,输入命令:

export.UTF-8

./runInstaller

spacer.gif

spacer.gif

 

Y spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

 

 

4.4 出现图示问题解决方法

/lib64/libstdc++.so中memcpy@GLIBC_2.4找不到。

问题:glibc是2.17的库,连接找的是2.14的库。

解决办法:改成静态链接。

查看 /usr/lib64/libc.a是否存在。

修改oracle安装目录下:$ORACLE_HOME/ctx/lib/ins_ctx.m

spacer.gif

文件路径:/home/oracle/app/oracle/product/11.2.0/dbhome_1/ctx/lib

修改文件内容:

ctxhx: $(CTXHXOBJ)

        $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)

改为:

ctxhx: $(CTXHXOBJ)

        -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a

然后点击retry通过。

spacer.gif

 

 

4.5 出现下列问题解决方法

问题:undefinied reference symbol’B_DestroyKeyObject’,查看日志,实际就是没有找到nnz11这个库。
解决办法:
修改$ORACLE_HOME/sysman/lib/ins_emagent

$(MK_EMAGENT_NMECTL)


修改为:

$(MK_EMAGENT_NMECTL) -lnnz11


然后点击retry通过。

 

spacer.gif

文件路径:/home/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/lib

spacer.gif

4.6 按图示运行两个脚本

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

 

 

 

 

 

 

五、数据库建库

还是在oracle用户的图形界面oracle用户中,新开启一个终端,直接输入命令dbca会弹出如下界面。我们这里采用定制数据库。

spacer.gif

spacer.gif

spacer.gif

spacer.gif

输入统一密码(也可以分别设置其密码)

spacer.gif

数据库存放位置,我这里采用默认

spacer.gif

不指定快速恢复和归档

spacer.gif

去掉不常用的模块

spacer.gif

内存分配及指定字符集

spacer.gif

spacer.gif

spacer.gif

spacer.gif

经过漫长的等待,当看到此界面,说明oracle建库完成

spacer.gif

可以用sqlplus来检验下,新开启一个命令窗口,输入sqlplus,然后输入用户名和密码,可以测试下,这里就不做过多的介绍了。

六、配置监听及本地网络服务

在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令netca 会弹出如下界面。

spacer.gif

创建监听服务(充当oracle服务器,让别的oracle客户端连接本oracle服务器)

 

spacer.gif spacer.gif spacer.gif spacer.gif spacer.gif spacer.gif

配置本地网络服务名(充当oracle客户端,连接别的oracle服务器)

spacer.gifspacer.gifspacer.gifspacer.gif输入oracle服务器的ip地址

spacer.gif

选中测试

spacer.gif spacer.gif

spacer.gif

看到此界面说明测试成功(如果不成功,请查看网络是否畅通,所连接的oracle服务器是否启动,监听是否启动等原因)

为你所设置的本地网络服务名起个名字

spacer.gif

spacer.gif

spacer.gif

七、测试

查看oracle服务是否启动

# lsof -i:1521 

spacer.gif

这样oracle服务器安装配置基本就完成了。

监听:lsnrctl status

spacer.gif

查看实例信息:

首先登陆数据:

#su – oracle

#sqlplus / as sysdba

#select * from v$instance;

spacer.gif