安装Oracle 11.2.0.2.0 for RedHat5.4_32bit碰到的一些错误--分析并解决
安装Oracle 11.2.0.2.0 for RedHat5.4_32bit碰到的一些错误--分析并解决
最近在安装Oracle 11.2.0.2.0 for RedHat5.4_32bit,出现了一些问题,总结如下。
一、数据库软件安装好后,用dbca命令建库。
1、报错如下:
[oracle@mydb]$dbca
Oracle Net Services Configuration:
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0xa78b13a8, pid=5118, tid=3086896789
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_17-b02 mixed mode)
# Problematic frame:
# C [libnnz11.so+0x3c3a8]
#
# An error report file with more information is saved as hs_err_pid5118.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
2、解决方法:
(1)下载p8670579_112010_LINUX.zip补丁包,上传到Liux服务器。
(2)确认是否配置了ORACLE_HOME
[oracle@mydb]$ echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0/db_1
(3)检查perl的版本,需要5.00503以上的版本
[oracle@mydb]$perl -v
This is perl, v5.8.8 built for i386-linux-thread-multi
(4)Verify the OUI Inventory.
$opatch lsinventory
(5)解压并打补丁
[oracle@mydb]$unzip p8670579_112010_LINUX.zip
[oracle@mydb]$cd 8670579
[oracle@mydb]$$ORACLE_HOME/OPatch/opatch apply -invPtrLoc $ORACLE_HOME/oraInst.loc
3、dbca正常建库
二、很多Oracle的命令不能执行。
1、如执行rman命令报错如下:
[oracle@mydb]$ rman target /
rman: error while loading shared libraries: /u01/app/oracle/product/11.2.0/lib/libclntsh.so.11.1: cannot restore
segment prot after reloc: Permission denied
2、如执行lsnrctl命令报错如下:
[oracle@mydb]$ lsnrctl status
lsnrctl: error while loading shared libraries: /u01/app/oracle/product/11.2.0/lib/libclntsh.so.11.1: cannot
restore segment prot after reloc: Permission denied
3、什么原因导致这些错误呢?原凶就是在安装LINUX时开启了SELinux,记得关闭SELinux,如下图。
4、解决方法:
(1)查看selinux的状态为Enforcing模式(setenforce 1设置SELinux 成为Enforcing模式,即开启SElinux)
[root@mydb]# getenforce
Enforcing
(2)setenforce 0 设置SELinux 成为permissive模式(即临时关闭SElinux)
[root@mydb]# setenforce 0
(3)查看selinux的状态为Permissive模式(setenforce 0设置SELinux 成为Permissive模式)
[root@mydb]# getenforce
Permissive
5、关闭SElinux,修改Selinux的配置文件
[root@mydb bin]# vi /etc/sysconfig/selinux
# 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 - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
三、oracle11Gr2在RHEL6 X64上执行gui安装报错
前些天某学生在安装oracle时碰到一个问题,报错信息如下
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0x00007f5bb0bced70, pid=2732, tid=140031049791248
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (1.5.0_17-b03 mixed mode)
# Problematic frame:
# C [ld-linux-x86-64.so.2+0x14d70]
#
# An error report file with more information is saved as hs_err_pid2732.log
#
# If you would like to submit a bug report, please visit:
看报错信息 很古怪
检查报错的动态库文件ld-linux-x86-64.so.2 属于glibc 应该不会是这个动态库文件出问题。
答案是
export LD_BIND_NOW=1
这个环境变量的作用是什么的
于是乎又新一轮的百度
得到答案如下
设置环境变量LD_BIND_NOW=1让连接器在程序执行前把所有的函数地址都连接好
看起来笔者的思路没有偏离太多
最后的解决方案
在oracle用户的家目录下的.bash_profile 当中添加一个全局变量:
export LD_BIND_NOW=1
即可解决在使用GUI安装oracle文件时候图形化无法出来的问题。