爱心技术专栏专题

在RedHatLinux9.0上安装Oracle8i

摘录:Oracle基础 来源:Oracle基础 加入时间:2007年03月19日
摘要:
在RedHatLinux9.0上安装Oracle8i
在 Red Hat Linux 9.0 上安装 Oracle 8i

关于Oracle http://www.51dibs.com
/html/2006/article/info22/a_ada0f110f594cf6a.htm

在RedHatLinux9.0上安装Oracle8i

站点:爱心种子小博士 关键字:在RedHatLinux9.0

   
在 Red Hat Linux 9.0 上安装 Oracle 8i

关于Oracle 安装的讨论已经有很多了,可是在实践中你还是总会遇到某些麻烦。

本文讨论的环境基于 Redhat Linux 9.0.93Oracle的版本号为8.1.7.0.1

下载软件

假设你已经有了一台跑着 Redhat 的机器,并且它满足 Oracle 8i 对硬件的相关要求,并且具有网络连接,下面就下载其他所需的软件。首先在 OTN 下载linux81701.tar glibc-2.1.3-stubs.tar.gz,另外还需要:

  • i386-glibc-2.1-linux.tar.gz
  • binutils-2.10.91.0.2-3.i386.rpmRedhat 自带的是 binutils-2.13.90.0.18-9.i386.rpm
  • jdk118_v3-glibc-2.1.3.tar.bz2

因为Oracle 自带了 JRE 1.1.8,所以不用单独安装,假设以上所述软件都放在 /tmp 目录。

安装glibcJDK、和 binutils

su
cd /
tar zxvf /tmp/i386-glibc-2.1-linux.tar.gz
 
cd /usr/bin
mkdir saved
mv gcc cc ld saved
ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-gcc gcc
ln -s gcc cc
ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld ld
 
cd /usr/lib
mkdir saved
mv libc.so libdl.so libm.so libpthread.so saved
mv libc.a libdl.a libm.a libpthread.a saved
 
cd /usr/java
tar jxvf /tmp/jdk118_v3-glibc-2.1.3.tar.bz2
ln -s jdk118_v3 /usr/local/java
 
rpm -Uvh --force --nodeps binutils-2.10.91.0.2-3.i386.rpm

创建用户和组

groupadd oinstall
groupadd dba
groupadd oper
useradd -d /oracle -g oinstall -G dba,oper oracle
passwd oracle
chown -R oracle.dba /oracle
chmod 750 /oracle

准备安装

vi /oracle/.bash_profile

修改为如下内容:

# .bash_profile
 
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
 
# User specific environment and startup programs
unset USERNAME
umask 022
export EDITOR=vi
export TERM=xterm
export TMPDIR=/tmp
 
# Setup installation environment
export ORACLE_SID=orcl
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/i386-glibc-2.1-linu
  x/i396-glibc-linux/lib:/lib:/usr/lib:/lib:/usr/local/lib
export SHLIB_PATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib
export LIBPATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export ORACLE_OWNER=oracle
export ORACLE_TERM=xterm
export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/
export LD_ASSUME_KERNEL=2.4
export JAVA_HOME=/usr/local/java
export CLASSPATH=$ORACLE_HOME/jdbc/lib/classes12.zip:$ORACLE_HOM
  E/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:.
su oracle
. .bash_profile
export LANG=en
cd /tmp
tar xvf linux81701.tar

其中export LANG=en 是为了防止界面黑做一团。

开始安装

./Disk1/runInstaller

点击Next;在 UNIX Group Name 里输入 oinstall;出现一个提示框要求执行orainstRoot.sh,这时另外打开一个终端:

su
cd $ORACLE_HOME
./orainstRoot.sh

回到GUI,按 Retry;选择安装 Enterprise Edition;选择典型安装;选择使用一个已经存在的 repository;选择 JDK 的位置;问是否要新建一个数据库,不用;继续,等待一段时间;出现一个提示框要求执行 root.sh;回到终端:

vi root.sh

按下列要求修改:第98行,把 SED=/usr/local/bin/sed 改为SED=/bin/sed;第102行,把 RMF=/bin/rm f改为RMF="/bin/rm -f";第156行,把 RUID=`/usr/bin/id|$AWK-F\( {print }|$AWK -F\) {print }` 改为 RUID=`/usr/bin/id|$AWK-F\( {print }|$AWK -F\) {print }`

./root.sh

回一次车;回到 GUI,按 OK

处理错误

出现一个提示框,说 Error in invoking target relink of makefile /oracle/product/8.1.7/precomp/lib/ins_precomp.mk或者Error in invoking target relink of makefile/oracle/product/8.1.7/rdbms/lib/ins_rdbms.mk,回到终端:

exit
cd $ORACLE_HOME
tar zxvf /tmp/glibc-2.1.3-stubs.tar.gz
./setup_stubs.sh

链接工作完成后,回到 GUI,按 Retry;等待,直到安装完成;完成后自动启动的 Net8 配置向导没有反应,kill 之。

恢复其他软件

su
rpm -e --nodeps bintutils-2.10.91.0.2-3
rpm -ivh /mnt/cdrom/Redhat/RPMS/binutils-2.13.90.0.18-9.i386.rpm
cd /usr/local
rm java
ln -s /usr/java/j2sdk1.4.2_01 java
cd /usr/bin
rm gcc cc ld
mv ./saved/* .
rmdir saved
cd /usr/lib
mv ./saved/* .
rmdir saved

然后把oracle 用户环境变量 LD_LIBRARY_PATH 中的 glibc 的部分删去。

创建数据库

exit
cd $ORACLE_HOME/bin
unset LANG
unset NLS_LANG
./dbassist

选择创建数据库;定制;多用途;下一步;共享服务器模式;去掉所有选项(创建 JServer 的时间巨长);设置全局数据库名和 SID,假设全局数据库名为 testdbSIDorcl;更改字符集:字符集为 UTF8、国家字符集为 ZHS16GBK;六次下一步;完成。

配置 Net8

./netca

使用netca 是因为 netasst 总是没有反应,让我们鄙视它吧。选择监听程序配置;添加;监听程序名使用默认的 LISTENER;三次下一步。

上面步骤即是对 $ORACLE_HOME/network/admin/listener.ora 的编辑:

# copyright (c) 1997 by the Oracle Corporation
# 
LISTENER =
  (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
    (ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
 
SID_LIST_LISTENER=
  (SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=testdb)
      (SID_NAME=orcl)
      (ORACLE_HOME=/oracle/product/8.1.7)
    )
  )

其中GLOBAL_DBNAMESID_NAME、和 ORACLE_HOME 随实际情况不同而不同。

手工启动数据库和监听

vi /etc/oratab

把最后的 N 改成 Y

./dbstart
./lsnrctl start

设置服务

su
cd /etc/init.d
vi oracle
#!/bin/bash
#
# Startup script for Oracle and listener
#
# chkconfig: 35 99 1
# description: Oracle 8.1.7.0.1
 
# Setup environment for script execution.
. /oracle/.bash_profile
 
case "" in
  start)
        echo "Starting Oracle database(s) listed in /etc/oratab ..."
        sleep 2
        su - oracle -c "$ORACLE_HOME/bin/dbstart"
        echo "Starting TNS listener..."
        sleep 2
        su - oracle -c "$ORACLE_HOME/bin/lsnrctl start"
        touch /var/lock/subsys/oracle
        ;;
  stop)
        echo "Stopping TNS listener..."
        sleep 2
        su - oracle -c "$ORACLE_HOME/bin/lsnrctl stop"
        echo "Stopping Oracle databases(s) listed in /etc/oratab ..."
        sleep 2
        su - oracle -c "$ORACLE_HOME/bin/dbshut"
        rm -f /var/lock/subsys/oracle
        ;;
  status)
        ps -ax | grep -e ora_ -e tnslsnr
        ;;
  *)
        echo "Usage: oracle "
        exit 1
esac
 
exit 0
chmod 700 /etc/init.d/oracle
/sbin/chkconfig --add oracle

使用启动脚本启动和关闭

/etc/init.d/oracle start
/etc/init.d/oracle stop


客户服务中心信箱:[email protected] [email protected] 网站地图

声明

合作伙伴: