[Oracle] Installing Oracle 9iR2 on RHEL AS 3 Step-by-Step

作者:Fenng
日期:03-Mar-2004 
出处:http://www.dbanotes.net
版本:0.13


Installing Oracle 9iR2 on Red Hat Enterprise Linux Advanced Server 3 (RHEL 3)

内容简介

介绍如何在Red Hat Enterprise Linux (RHEL) 3上安装Oracle数据库9iR2,并提供安装过程中需要的相关信息。关键词:Oracle ,9iR2, RHEL,Install,安装,Red Hat Enterprise Linux。

全球最大的 Linux 厂商 Red Hat 公司 最近发布了Red Hat Enterprise Linux 3。该版本号称有史以来最强大的开 源操作系统,也被视为是当前最为完整的 Linux 企业级解决方案。得到了包括 Oracle 在内的众多重量级厂商的积极响 应,很多产品在该平台上通过了认证。Oracle 9iR2自然也在此列。 Oracle 9i+ RHL3 会有什么样的效果?可能很多技术人员都很感兴趣。心动不如行动,不如马上开始搭建自己的应用环境,亲身感受一下。

配置RedHat AS 3

操作系统描述:

Red Hat Enterprise Linux AS release 3 (Taroon)
Kernel 2.4.21-4.EL on an i686

安装操作系统之后,应该修改核心参数.执行如下命令:

# echo "kernel.sem=\"250 32000 100 128\"" >> /etc/sysctl.conf
# echo "kernel.shmmax=2147483648" >> /etc/sysctl.conf 

第一条命令中的 250、32000、100、128 分别对应SEMMSL、SEMMNS、SEMOPM、SEMMNI这四个核心参数. 上面是典型的核心参数配置.您可能需要根据您的实际环境进行适当的变动.

关于这些核心参数的说明在Oracle的Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems 中有很详细的说明.

然后,应该检查一下上面的操作是否正确:

# more /etc/sysctl.conf | grep kernel.s
kernel.sysrq = 0
kernel.shmmax=2147483648
kernel.sem="250 32000 100 128"
# 

检查并安装相关补丁

在这个版本的RHEL上安装Oracle,必须要有几个软件包(参考 Metalink 上的 Oracle Note:252217.1) 。 确认以下 rpm包都已经安装:

# rpm -qa | grep compat
compat-gcc-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-glibc-7.x-2.2.4.32.5
compat-db-4.0.14-5

# rpm -qa | grep openmotif
openmotif-2.2.2-16 //有这一项输出即可
openmotif-devel-2.2.2-16

# rpm -qa | grep setarch
setarch-1.3-1 

上面显示的内容是在笔者已经安装了具体的RPM包之后的结果.一般情况下,你的系统上的输出结果和这个不同.如果个 别包没有安装,把系统安装光盘mount上,找到具体的软件包(大多数在第三张光盘上),然后利用如下的命令来安装相应的包。

# rpm -ivh compat.....rpm 

要额外注意的是,这些软件包之间是有依赖性的,先后的顺序要找好.否则会报告不能安装的错误。还需要将gcc、g++更换为2.96的版本。(参考 Metalink 上的 Oracle Note:252217.1 )

# mv /usr/bin/gcc /usr/bin/gcc323
# ln -s /usr/bin/gcc296 /usr/bin/gcc
# mv /usr/bin/g++ /usr/bin/g++323
# ln -s /usr/bin/g++296 /usr/bin/g++ 

如果报告找不到文件,请确认该软件包是否安装

检查环境变量

这个版本的默认的glibc 很合适,免去了不少麻烦。 登录为oracle用户:

# su - oracle
$ cd
$ vi .bash_profile

#添加如下内容

#这个参数必须指定,否则Java安装界面无法启动

export LD_ASSUME_KERNEL=2.4.1

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_SID=DEMO
export ORACLE_TERM=xterm
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH

# Set shell search paths
export PATH=$PATH:$ORACLE_HOME/bin
然后执行

$ source .bash_profile 

使环境变量生效

对LD_ASSUME_KERNEL环境变量的说明:

这个参数实际上是为了避免Linux上的 NPTL (Native POSIX Thread Library) 和Oracle应用不兼容的问题. 设定 LD_ASSUME_KERNEL为2.4.1表示使用旧有的 "Linuxthreads with floating stacks" .

Metalink ( http://metalink.oracle.com/ 需要CSI )下载必须的补丁。

需要的补丁:

p3095277_9204_LINUX.zip大约有300多兆.如何快速下载Metalink上的补丁?请参考这个Link: http://www.ncn.cn/oracle/tips/oratip009.htm

唉,又是补丁,安装可算是比较费周折的了,不知道Oracle的工程师是不是每次安装也会感到麻烦.

开始安装9.2.0

运行runInstaller之前,需要打补丁3006854: 注意,必须以root身份运行.

# unzip p3006854_9204_LINUX.zip 
会在当前目录下创建一个目录,进入到该目录中
# cd 3006854
# ./rhel3_pre_install.sh 

如果报告如下错误:

-bash: ./rhel3_pre_install.sh: Permission denied 

修改一下权限就可以了:

# chmod +x *.sh 

然后就可以运行runInstaller安装. 操作过程不再赘述. 但是relink 阶段,会报告两个错误:ins_oemagent.mk 和 ins_ctx.mk. 点 Ignore 忽略.要升级到9.2.0.4的版本才 可以修复这两个Bug.

升级到9.2.0.4.0

安装结束后,需要停掉Oracle的所有相关程序. 最好命令都执行完之后再用 ipcs 命令确认一下.然后就可以开始打补丁升级了. 解包:

$ unzip p3095277_9204_LINUX.zip
$
$ cpio -idmv < 9204_lnx32_release.cpio 

现在可以再次运行runInstaller,在OUI的界面中找到Patch的Stage文件,然后即可以进行升级.

注意
首先要升级oui,否则不让升级到9.2.0.4.而且,升级完oui以后,要退出oui然后再重新运行oui, 再升级到9.2.0.4.不退出 继续升级会报告错误.升级过程中,仍然会出现ins_oemagent.mk错误,点 Ignore 忽略.我们将在下一个步骤中修复该错误.

再次打补丁

升级过后,需要打补丁修复ins_oemagent.mk错误.首先安装 opatch.

$ unzip p2617419_210_GENERIC.zip
$ pwd
/u01/install
$ export PATH=$PATH:/u01/install/OPatch:/sbin
注意:
修改PATH时,除了要包括解压出来的OPatch目录外,还要包括/sbin目录,这样才可以找到 fuser命令.而fuser命令也是该补丁过程所需要的.
$ unzip p3119415_9204_LINUX.zip
Archive: p3119415_9204_LINUX.zip
creating: 3119415/
......
inflating: 3119415/README.txt

$ cd 3119415
$ opatch apply

运行dbca的问题

$ dbca 

会正常出现图形界面,然后可以选择创建数据库,但是最后一步莫名其妙的界面消失.在命令行出现如下错误:

/oracle/product/9.2.0.1/bin/dbca: line 124: 27348 Killed $JRE_DIR/bin/jre 
-DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASSPATH
oracle.sysman.assistants.dbca.Dbca $ARGUMENTS 
要解决这个问题:
$ vi $ORACLE_HOME/bin/dbca 

将下面列出的除第3 行外的其余行注释掉.

#if [ -f /etc/rac_on ]; then
#Run DBCA
$JRE_DIR/bin/jre -native -DORACLE_HOME=$OH...... //保留这一行
#else
#Run DBCA
#$JRE_DIR/bin/jre -DORACLE_HOME=$OH......
#fi

此外,有的系统上由于locale的问题,可能会出现乱码,出现这种情况,请进行类似如下的操作:

$ locale
LANG=en_US.UTF-8
LC_CTYPE=zh_CN.GB18030 //类似输出会导致问题
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
$ export LC_CTYPE=en_US.UTF-8

$ locale
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8 //调整为UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

进行此操作后在我的系统上就可以了,可以作为你的参考.


参考信息


Werner Puschitz : Installing Oracle9i on Red Hat Linux 
Pondka's 在RedHat EL AS 3上安装Oracle9.2.0
Linux: Native POSIX Threading Library (NPTL) 
Oracle9i Installation Guide Release 2(9.2.0.1.0) for UNIX Systems
Explain for LD_ASSUME_KERNEL - http://people.redhat.com/drepper/assumekernel.html



本文作者

Fenng,某美资公司DBA,业余时间混迹于各数据库相关的技术论坛且乐此不疲。 目前关注如何利用ORACLE数据库有效地构建企业应用。对Oracle tuning、troubleshooting有一点研究。
个人技术站点:http://www.dbanotes.net/ 。 可以通过电子邮件 [email protected] 联系到他。

原文出处

http://www.dbanotes.net/Oracle/Install-Oracle9iR2-RHEL3.htm

回上页<-|->回首页

All Articles (by Fenng) are licensed under a Creative Commons License.
I would welcome any feedback. Please send questions, comments or corrections to [email protected]
Valid XHTML 4.01 / Valid CSS