Centos7 安装Oracle 11g R2完整手册及问题解决方法

时间:2022-06-17 21:46:45

一:安装前的检查准备工作

  • 1,Oracle需要一些32位的库,具体依赖的32位库文件如下:

    glibc-devel-2.12-1.7NFS.i686.rpm
    libXp-1.0.0-15.1NFS.i686.rpm
    libX11-1.3-2NFS.i686.rpm
    libXau-1.0.5-1NFS.i686.rpm
    libXext-1.1-3NFS.i686.rpm
    libxcb-1.5-1NFS.i686.rpm
    libuuid-2.17.2-6NFS.i686.rpm –force
    libXt-1.0.7-1NFS.i686.rpm
    libICE-1.0.6-1NFS.i686.rpm
    libSM-1.1.0-7.1NFS.i686.rpm
    libXtst-1.0.99.2-3NFS.i686.rpm
    libXi-1.3-3NFS.i686.rpm
    readline-6.0-3NFS.i686.rpm
    readline-devel-6.0-3NFS.i686.rpm
    ncurses-libs-5.7-3.20090208NFS.i686.rpm
    ncurses-devel-5.7-3.20090208NFS.i686.rpm
    libaio-0.3.107-10NFS.i686.rpm
    libaio-devel-0.3.107-10NFS.i686.rpm
    libtool-ltdl-2.2.6-15.5NFS.i686.rpm
    unixODBC-2.2.14-11NFS.i686.rpm
    unixODBC-devel-2.2.14-11NFS.i686.rpm
    compat-libstdc++-33-3.2.3-69NFS.i686.rpm

  • 2,修改内核参数

[root@localhost ~]# vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
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 = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

[root@localhost ~]# sysctl -p
其中:
kernel.shmall —————————————————\
kernel.shmmax —————————————————– > 共享内存段有关参数
kernel.shmmni ————————————————–/
kernel.sem ——————————————————》信号量有关的参数
fs.file-max ——————————————————-》可以同时打开的文件的最大数量
net.ipv4.ip_local_port_range——————————-》网络有关的参数

  • 3,增加操作系统用户的nofile、nproc参数

nofile:操作系统用户可以同时打开的最大文件数
nproc:单个用户同时可以打开的进程数

[root@localhost ~]# vi /etc/security/limits.conf
# /etc/security/limits.conf

*       soft    nproc   65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
  • 4,添加pam模块,添加最后一行

[root@localhost ~]# vi /etc/pam.d/login
#%PAM-1.0
auth required pam_securetty.so
auth required pam_stack.so service=system-auth
auth required pam_nologin.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
# pam_selinux.so close should be the first session rule
session required pam_stack.so service=system-auth
# pam_selinux.so open should be the last session rule
session required pam_limits.so

  • 5,在hosts 添加最下面一行 (根据自己的IP进行修改)

[root@localhost db_1]# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.7.24 oracle

  • 6, 创建用户 ,用户组

[root@localhost ~]# groupadd oinstall
[root@localhost ~]# groupadd dba
[root@localhost ~]# useradd -g oinstall -G dba oracle
[root@localhost ~]# passwd oracle

  • 7,设置oracle用户的环境变量

[root@localhost ~]# su - oracle
[oracle@localhost~] $ vim .bash_profile

# .bash_profile
export PATH
unset USERNAME
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME= $ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=ora11g
export PATH=$PATH:$HOME/BIN:$ORACLE_HOME/bin
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME

Vim /etc/profile
export LD_BIND_NOW=1

  • 8,建立需要目录、设置权限

[root@localhost ~]# cd /
[root@localhost /]# mkdir -p /u01/app/oracle
拷贝oracle10g安装目到/u01下
[root@localhost/]#cp –rf …/database /u01
[root@localhost /]# chown -R oracle:oinstall /u01
[root@localhost /]# ll /u01/
total 8
drwxr-xr-x 3 oracle oinstall 4096 Feb 9 13:21 app

  • 9,软件安装

1 执行/u01/database目录下的
[oracle@localhost database]$ ./runInstaller 开始安装。

如果安装界面汉字显示方块字,可以参考附录关于解决方块字的方法或直接使用英文安装:
[oracle@localhost database]$ LANG=en_US.UTF-8 ./runInstaller

附录:

  • 1,安装oracle11g release 2时遇到的多库问题

现象:在检测依赖的时候失败,都是需要32位库的问题,但是为已经把编译为 i686的32位库安装后还是依赖失败。如下图:

Centos7 安装Oracle 11g R2完整手册及问题解决方法
解决方法:重新编译32位RPM包为 i386架构的装上就可以检测到了。在上图中的详细信息中,依赖需要的RPM包,也确实提示了i386架构。
如何在64位机器上编译32位RPM包?因为系统是64位的,默认安装的gcc/g++都是用来编译64位代码的,对于那些使用32位库的程序来说,用此gcc/g++编译会出问题。我遇到的就是缺少gun/stab.h 32位文件。遇到这样的问题,只能手动安装32位的库文件。
Rpm -ivh glibc-devel.i686 glibc.i686
编译命令,用target 参数指定要编译成的CPU架构,如下:
rpmbuild -ba rpmbuild/SPECS/libaio.spec –target i386
这种情况下,编译一些小的程序可以成功,但是在编译gcc compat-gcc这些大的程序时,可能依赖的太多,还没有成功编译。如果不行的话,就只能安装一个32位的系统来进行单独的文件了。

  • 2,链接二进制库文件的错误

在安装到68%时提示错误如下(网上找的图自己忘记截图了):
Centos7 安装Oracle 11g R2完整手册及问题解决方法

在网上查找解决办法大部分都是说缺少glibc-devel.i386包导致的,但是我把能添加的32位64位包都实验了还是不行。可能log中具体的错误原因不一样吧。我的log错误如下:
后注意到日志有以下错误:
INFO: /lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14’
INFO: collect2: error: ld returned 1 exit status
INFO: make: * [ctxhx] Error 1
网上说是glibc的版本2.17过高所致(高于2.14)。
解决办法:安装 glibc-static-2.17-55.el7.x86_64.rpm

该软件包包含一个静态链接库:/usr/lib64/libc.a
修改/u01/app/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继续安装。
接着又提示”Error in invoking target ‘agent nmhs’ of makefile ‘/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk.’ ,如下图:
Centos7 安装Oracle 11g R2完整手册及问题解决方法

解决方法:在makefile中添加链接libnnz11库的参数
修改/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk,将$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11

点击Retry继续安装。安装成功!

  • 3,EM停止与启动:

EM停止:oracle@localhost zhs] emctlstopdbconsoleEM[oracle@localhostzhs] emctl start dbconsole

https://192.168.1.5:1158/em 登陆EM

  • 4, Oracle10gR2汉语安装或启动EM时汉语显示方块字解决方法

方法一:在jre/lib/fonts中建立字体连接
#ll /usr/bin/java
lrwxrwxrwx. 1 root root 22 2月 27 10::41 /usr/bin/java->/etc/alternatives/java
#ll /etc/alternatives/java
lrwxrwxrwx. 1 root root 46 2月 27 10::41 /etc/alternatives/java->/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
目录/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/下的java是真正安装openjdk的java
如果GUI显示汉字为方块字,则在java的安装目录下创建字体文件夹和字体连接
#cd /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/lib
#mkdir -p fonts/fallback
#cd ./fonts/fallback
#ln -s /usr/share/fonts/wqy-zenhie/wqy-zenhei.ttc ./
把系统自带的文泉驿正黑字体的文件连接创建在此,重新启动界面安装程序,则能正常显示汉字。
(如果系统中安装了JDK,JDK中包含了JRE,就在…./JDK/JRE/lib/fonts,建立目录fallback,在…./JDK/JRE/lib/fonts/fallback/中建立连接)

方法二:使用网上下载字体zysong.ttf(此字体不是系统提供的,如果方法一不行,可用次方法)
#cd /usr/share/fonts
#mkdir -p ./zh_CN/TrueType
#cd ./zh_CN/TrueType
#cp ……../zysong.ttf ./

  • 5,Oracle11gR2卸载

rm -rf ORACLEHOMErmrf ORACLE_BASE
rm -rf /etc/oraInst.loc
rm -rf /etc/oratab
rm -rf /etc/oracle
rm -rf /etc/inittab.cssd
rm -rf /usr/local/bin/coraenv
rm -rf /usr/local/bin/dbhome
rm -rf /usr/local/bin/oraenv
rm -rf /opt/oracle
rm -rf /tmp/ora*
rm -rf /u01/app/*
删除oracle用户和组