阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

216次阅读
没有评论

共计 5755 个字符,预计需要花费 15 分钟才能阅读完成。

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

  • 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  下载见 http://www.linuxidc.com/Linux/2015-01/112247.htm

该软件包包含一个静态链接库:/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 ORACLE H OMErmrf  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 用户和组

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139070.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计5755字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中