Red Hat 6.5安装Oracle 10g故障汇总

 

目前Oracle 12c第一版已经推出接近一年时间,行业普遍接受11gR2作为安装标准配置。笔者接受了一个在64bit Red Hat安装老版本Oracle 10gR2的任务。在这个过程中,遇到一些问题,将解决策略记录下来,留待需要的朋友待查。

 

1OS版本兼容

 

OS与Database Software之间的兼容性问题是我们需要考虑的第一关。在Oracle 10g时代,Linux普遍版本是4.x,所以对于我们安装的Red Hat 6.5,在安装兼容性检查过程中是会报错的。

这个问题还是比较好解决的。原则上6.5版本和之前Linux版本没有本质的差异。而且,我们在选择Linux安装的时候,还是尽可能选择高版本的进行尝试。解决这个问题的方法就是要“骗”过Oracle软件的安装过程。

Oracle检验版本,主要是查看/etc/redhat-release文件中的版本信息。我们手工将其修改之后,就可以了。

 

--修改前

[root@SimpleLinux ~]# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 6.5 (Santiago)

 

--修改后

[root@SimpleLinux ~]# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 4.8 (Santiago)

 

检验通过。

 

2、图形界面激活报错libXp.so

 

安装软件过程中,使用图形化界面方式进行安装。运行runInstaller脚本,报错。

 

[oracle@CRSimpleLinux database]$ ./runInstaller

Starting Oracle Universal Installer...

 

Checking installer requirements...

Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2

                                      Passed

 

All installer requirements met.

 

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2014-05-19_12-33-59PM. Please wait ...[oracle@CRSimpleLinux database]$ Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2014-05-19_12-33-59PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory

        at java.lang.ClassLoader$NativeLibrary.load(Native Method)

        at java.lang.ClassLoader.loadLibrary0(Unknown Source)

        at java.lang.ClassLoader.loadLibrary(Unknown Source)

        at java.lang.Runtime.loadLibrary0(Unknown Source)

        at java.lang.System.loadLibrary(Unknown Source)

        at sun.security.action.LoadLibraryAction.run(Unknown Source)

        at java.security.AccessController.doPrivileged(Native Method)

        at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)

        at sun.awt.DebugHelper.<clinit>(Unknown Source)

        at java.awt.Component.<clinit>(Unknown Source)

 

笔者对libXp并不陌生,在过去32bit系统安装10g中,是需要安装libXp包的。所以在之前已经安装了libXp。

 

[oracle@CRSimpleLinux database]$ rpm -qa | grep libXp

libXpm-3.5.10-2.el6.x86_64

libXp-1.0.0-15.1.el6.x86_64

 

不仅是XWindows工具,直接通过本机操作也无法启动界面工具。解决的线索在于报错目录中的i386。笔者服务器是64bit的,和32bit不同,很多安装(包括依赖包)都是需要32bit软件版本进行支持。猜测是执行中需要安装32bit版的libXp。

 

[root@CRSimpleLinux packages]# rpm -ivh libXp-1.0.0-15.1.el6.i686.rpm

warning: libXp-1.0.0-15.1.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

Preparing...                ########################################### [100%]

   1:libXp                  ########################################### [100%]

 

安装之后,libXp两个版本均存在于系统中。

 

[root@CRSimpleLinux packages]# rpm -qa | grep libXp

libXpm-3.5.10-2.el6.x86_64

libXp-1.0.0-15.1.el6.x86_64

libXp-1.0.0-15.1.el6.i686

 

之后启动脚本正常。

 

[oracle@CRSimpleLinux database]$ ./runInstaller

Starting Oracle Universal Installer...

Checking installer requirements...

 

Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2

                                      Passed

 

 

All installer requirements met.

 

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2014-05-19_12-40-28PM. Please wait ...[oracle@CRSimpleLinux database]$

 

这个问题告诫我们,凡事不能想当然,在64bit环境中,安装数据库许多软件包是需要32bit和64bit同时安装。

 

3ins_ctx.mk编译link错误

 

在安装过程中,进入持续运行状态之后,在link步骤Oracle终止操作,报错说link失败。检查错误日志,如下内容:

 

INFO: chmod 751 /u01/app/oracle/product/10.2.0/db_1/bin/ctxlc

 

INFO: gcc -m32 -o ctxhx -L/u01/app/oracle/product/10.2.0/db_1/ctx//lib32/ -L/u01/app/oracle/product/10.2.0/db_1/lib32/ -L/u01/app/oracle/product/10.2.0/db_1/lib32/stubs/  /u01/app/oracle/product/10.2.0/db_1/ctx/lib/ctxhx.o -L/u01/app/oracle/product/10.2.0/db_1/ctx/lib/ -ldl -lm -lctxhx -Wl,-rpath,/u01/app/oracle/product/10.2.0/db_1/ctx/lib -lsnls10 -lnls10  -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10  `cat /u01/app/oracle/product/10.2.0/db_1/lib/

INFO: sysliblist`

 

INFO: /usr/bin/ld: crt1.o: No such file: No such file or directory

 

INFO: collect2: ld returned 1 exit status

 

INFO: make: *** [ctxhx] Error 1

 

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target 'install' of makefile '/u01/app/oracle/product/10.2.0/db_1/ctx/lib/ins_ctx.mk'. See '/u01/app/oracle/oraInventory/logs/installActions2014-05-12_06-22-42PM.log' for details.

Exception Severity: 1

INFO: *** Cancel Dialog:  ***

INFO: User Selected: Stop installation of all products.

 

INFO: Error in invoking target 'install' of makefile '/u01/app/oracle/product/10.2.0/db_1/ctx/lib/ins_ctx.mk'. See '/u01/app/oracle/oraInventory/logs/installActions2014-05-12_06-22-42PM.log' for details.

INFO: Setting variable 'PREREQ_CONFIG_LOCATION' to ''. Received the value from variable association.

 

查询后,发现是安装依赖包的问题。在32bit环境下,我们使用rpm直接安装或者yum安装时,只安装32bit版本就可以了。但是在64bit环境下,是需要将两个版本的均进行安装。这个过程中是需要严格遵守文档对安装包的要求。安装完全包之后,错误消失。

 

4ins_emdb.mk问题

 

安装包均安装完全之后,继续安装时依然在link阶段报错。

 

INFO: make[1]: Leaving directory `/u01/app/oracle/product/10.2.0/db_1/sysman/lib'

 

INFO: /u01/app/oracle/product/10.2.0/db_1/sysman/lib/snmccolm.o: could not read symbols: File in wrong format

 

INFO: collect2: ld returned 1 exit status

make[1]: *** [/u01/app/oracle/product/10.2.0/db_1/sysman/lib/nmccollector] Error 1

make: *** [nmccollector] Error 2

 

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target 'collector' of makefile '/u01/app/oracle/product/10.2.0/db_1/sysman/lib/ins_emdb.mk'. See '/u01/app/oracle/oraInventory/logs/installActions2014-05-12_06-34-52PM.log' for details.

Exception Severity: 1

 

这个问题是比较复杂的,笔者查询了很多资料也没有一个确切的回应。最后在网络上检索到一位前辈的解决之道。

首先点击ignore跳过步骤,后面就可以直接完成runInstaller脚本执行。在$ORACLE_HOME/bin目录下,修改oracle文件为oracle.bin。

创建文件oracle在相同目录,内容如下:

 

#!/bin/bash

 

export DISABLE_HUGETLBFS=1

exec $ORACLE_HOME/bin/oracle.bin $@

 

EOF

 

保存后使用chmod a+x oracle命令对文件进行权限修改。经过这种策略修改之后,Oracle后续的dbca过程创建数据库执行正常。

但是,在后台进程中也表现出点问题,我们通过ps –ef不能看到常见pmon等后台进程,只有oracle.bin的系列对象。

 

[root@CRSimpleLinux packages]# ps -ef | grep pmon

root       542   406  0 12:57 pts/1    00:00:00 grep pmon

[root@CRSimpleLinux packages]# ps -ef | grep oracle

root       326 32748  0 12:32 pts/0    00:00:00 su - oracle

oracle     327   326  0 12:32 pts/0    00:00:00 -bash

oracle     389     1  0 12:34 ?        00:00:00 /u01/app/oracle/product/10.2.0/db_1/bin/oracle.bin (LOCAL=NO)

oracle     391     1  0 12:34 ?        00:00:00 /u01/app/oracle/product/10.2.0/db_1/bin/oracle.bin (LOCAL=NO)

oracle     399     1  0 12:35 ?        00:00:00 /u01/app/oracle/product/10.2.0/db_1/bin/oracle.bin (LOCAL=NO)

oracle     401     1  0 12:35 ?        00:00:00 /u01/app/oracle/product/10.2.0/db_1/bin/oracle.bin (LOCAL=NO)

oracle    3172     1  0 May13 ?        00:00:02 /u01/app/oracle/product/10.2.0/db_1/bin/oracle.bin

oracle    3181     1  0 May13 ?        00:00:00 /u01/app/oracle/product/10.2.0/db_1/bin/oracle.bin

oracle    3183     1  0 May13 ?        00:00:01 /u01/app/oracle/product/10.2.0/db_1/bin/oracle.bin

(篇幅原因,有省略……)

 

其余尚未发现兼容问题。

 

5Memory Notification in alert log

 

安装完成后,监控alert log信息确定数据库运行正常。发现数据库日志中阶段性提示内存变动。

 

Mon May 12 19:39:09 2014

Memory Notification: Library Cache Object loaded into SGA

Heap size 3596K exceeds notification threshold (2048K)

KGL object name :XDB.XDbD/PLZ01TcHgNAgAIIegtw==

Mon May 12 19:39:09 2014

Memory Notification: Library Cache Object loaded into SGA

Heap size 3567K exceeds notification threshold (2048K)

Details in trace file /u01/app/oracle/admin/chinaredb/udump/chinaredb_ora_20268.trc

KGL object name :XDB.XDA8XlWX/h+P3gQFeMmGQWfg==

 

进入10g之后,一些内存、文件告警通知机制被引入到Oracle运行过程中。对一些性能关注点,如SGA对象、Swap使用,Oracle是有自己的控制机制的。一旦超过了设置阈值,就会在alert log中记录下来,提醒用户。

这个memory notification很简单,就是SGA中引入了比较大的library cache对象之后,就会自动写入进去,从性能上也没有什么大问题。如果需要解决就是修改内部的控制阈值,不要让提示过于频繁发生。

 

 

SQL> alter system set "_kgl_large_heap_warning_threshold"=8388608 scope=spfile ;

 

 

SQL> shutdown immediate

SQL> startup

 

内部参数_kgl_large_heap_warning_threshold就起到这个作用。修改参数后重新启动数据库,报错信息不再出现。

 

6、结论

 

安装Oracle数据库,特别是在Unix/Linux家族体系下,是比较复杂的过程。我们实际生产运维环境是复杂多样的,版本、软硬件兼容、网络等诸多因素最后决定我们是否可以完成安装工作。在这个过程中,几点是需要关注的:

首先,标准安装、文档在先。尽可能不要进行特殊安装,尽量选择官方文档推荐的软硬件配置,避免出现兼容性问题。安装规划中,官方文档是我们的根本,绝对不要到网络上搜索几篇文章来作为指引。

第二,步步为营,小步迭代。在规划步骤中,要做好详细的计划步骤,最好将脚本语句都事先准备好,不要现安装现准备。如果安装中出现了错误,要确保已有成果保护备份工作。

最后,反复测试。没有测试的安装时很鲁莽的。目前我们有虚拟化环境,可以借助这个基础进行反复安装策略。测试不仅仅起到方案验证的作用,更重要的是给我们熟悉流程的机会。

时间: 2024-09-30 09:34:54

Red Hat 6.5安装Oracle 10g故障汇总的相关文章

数据库-Red Hat 6.4 安装 oracle 11g 问题

问题描述 Red Hat 6.4 安装 oracle 11g 问题 一个 oracle 11g 把我整得头疼,好痛苦呀. 希望哪位大神帮忙看看............... [oracle@k database]$ Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2016-01-02_09-48-47PM/jdk/jre/lib/i386/xawt/libmawt.so: libXext

在 Linux 上安装 Oracle 10g

  概述 这是在 Linux 上安装 Oracle 10g 软件主要组件指南系列的第一部分.这些文章详细介绍了 Linux 的所有三个已认证的英语发行套件(未介绍 Asianux),并假设使用廉价的 Intel x86 硬件.同时,还逐步演示了为评估主要 Oracle 10g 产品而在常见硬件上进行安装和配置的过程. 该系列的根本目标是逐步演示如何安装和配置 10g 网格的所有组件.通过这个系列,您将了解如何安装和配置单实例 Oracle 10g 数据库(本文).双节点 Oracle RAC 1

Red Linux 6.0下安装Oracle 10g

一. 环境说明 RedHat Enterprise Linux 6.0 + Virtual Box 4.1.8 + Oracle 10g 二. 安 装前配置 1. 安装Oracle 10g R2所需的软件包 用root登录到系统,依次安装以下包 # cd /mnt/cdrom/Server/ # rpm -Uvh setarch-2* # rpm -Uvh make-3* # rpm -Uvh glibc-2*(这里匹配了两个软件包 有一个i386无法安装,直接 # rpm -Uvh glibc

基于Linux (RHEL 5.5) 安装Oracle 10g RAC

    本文所描述的是在Red Hat 5.5下使用vmware server 来安装Oracle 10g RAC(OCFS + ASM),本文假定你的RHEL5已经安装完毕,下面列出的是对Linux的具体配置及安装过程. 一.安装环境 1.主机操作系统环境概况: 主机名 操作系统 处理器 内存 磁盘 网卡 robinson Windows XP Professional Service Pack 3 Intel酷睿2双核 1.6GHZ 3GB DDR2 667 MHz 500 GB, SATA

Linux (RHEL 5.4)下安装 Oracle 10g R2

如转载,请注明出处:http://blog.csdn.net/robinson_0612/archive/2010/03/30/5431428.aspx           虽然 Oracle 10g Database Release 2 已经推出几年了,但这个版本仍然为很多初学者学习的版本,下面详细讲述了安装 Oracle 10g 的步骤. 一. linux 的版本选用     目前 linux(RHEL) 使用的主要版本为 5.4 版,可以到下面的地址下载其安装文件.        RHEL

Linux系统环境下安装Oracle 10g的困难

在linux下安装oracle是一件令人生畏的事情,其复杂程度远远超过安装linux操作系统本身.如果能够进行成功的安装oracle,那么同时也就顺便掌握了linux一些技术.本文介绍在redhat linux 下安装oracle 10g 的方法.在这里说明一下,Oracle 10g的g是grid 的缩写,意为网格,目前较为前沿的网络计算技术. Oracle 10g 对软硬件的要求都非常的高,所以要玩转的话的花不少银子.首先来看看它对硬件的要求:内存512兆(建议1G),cpu 主频2.0G以上

求解磁盘空间分配-red hat 6.4 安装需要准备多大的磁盘空间?

问题描述 red hat 6.4 安装需要准备多大的磁盘空间? 准备安装red hat 6.4 32位版本的,求各位解答,小弟在此求答案! 解决方案 10G够了,如果空间充足,建议30G

linux下安装oracle 10g

在linux下安装oracle是一件令人生畏的事情,其复杂程度远远超过安装linux操作系统本身.如果能够进行成功的安装oracle,那么同时也就顺便掌握了linux一些技术.本文介绍在redhat linux 下安装oracle 10g 的方法.在这里说明一,Oracle 10g的g是grid 的缩写,意为网格,目前较为前沿的网络计算技术. Oracle 10g 对软硬件的要求都非常的高,所以要玩转的话的花不少银子.首先来看看它对硬件的要求:内存512兆(建议1G),cpu 主频2.0G以上,

Win7 64bit安装Oracle 10g Server的报错

今天一名新员工问在win7 64bit安装Oracle 10g Server时第一步就报错的问题. 双机setup.exe,一个黑屏闪过,在界面中输入SYS等的用户名密码以及安装路径后下一步,直接报"未知"的错误. 黑屏的内容显然很关键,于是从cmd中运行setup.exe,抓到报错内容: "在 oraparam.ini 中未找到先决条件检查,不执行系统先决条件检查. 准备从以下地址启动 Oracle Universal Installer C:\Users\ADMIN~1\