redhat AS3.0上安装ORACLE9I过程
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.zi p 9.2.0 .4.0 的升级补丁包 .
p3006854_9204_LINUX.zip 在运行 runInstaller 之前打 .
p3119415_9204_LINUX.zip 在升级到 9.2.0 .4.0 之后打 .
p2617419_210_GENERIC.zip 打 3119415 补丁所需要的 .
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 -mx 64m -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
|