分享
 
 
 

在Redhat 9上安装 Oracle 817心得

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

在 Linux 上安装 Oracle 8i

(注:引用http://vip.6to23.com/hanson/htdocs/oracle.htm,在安装过程中作一些更正)

关于 Oracle 安装的讨论已经有很多了,可是在实践中你还是总会碰到某些麻烦,因此我就留下我的两分钱吧。本文讨论的环境基于 Redhat Linux 9.0.93,

Oracle 的版本号为 8.1.7.0.1。

下载软件

假设你已经有了一台跑着 Redhat 的机器,并且它满足 Oracle 8i 对硬件的相关要求,并且具有网络连接,下面就下载其他所需的软件。首先在 OTN 下载 linux

81701.tar 和 glibc-2.1.3-stubs.tar.gz,另外还需要:

i386-glibc-2.1-linux.tar.gz(下载位置:http://FTP.valinux.com/pub/suppo ... c-2.1-linux.tar.gz)

binutils-2.10.91.0.2-3.i386.rpm(下载位置:http://mirrors.usc.edu/pub/linux ... s/i386/RedHat/RPMS/

binutils-2.10.91.0.2-3.i386.rpm)

(Redhat 自带的是 binutils-2.13.90.0.18-9.i386.rpm,用于恢复,下载位置:http://mirrors.usc.edu/pub/linux ... t/redhat/linux/9/en

/os/i386/RedHat/RPMS/compat-gcc-7.3-2.96.118.i386.rpm)

jdk118_v3-glibc-2.1.3.tar.bz2(下载位置:http://ftp.dk.xemacs.org/pub/lan ... libc-2.1.3.tar.bz2)

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

(注:还需要从Java官方网站下载JDK 1.4.2用以恢复,我安装的Redhat9没有发现JDK 1.4.2,下载位置:http://java.sun

.com/j2se/1.4.2/download.Html)

安装glibc、JDK、和 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

(注:安装oracle过程中发现/usr/bin/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

(注:没有安装过java的话就没有这个目录,需要先mkdir /usr/java)

cd /usr/java

tar jxvf /tmp/jdk118_v3-glibc-2.1.3.tar.bz2

ln -s /usr/java/jdk118_v3 /usr/local/java

(注:原来是ln -s jdk118_v3 /usr/local/java,后来发现链接不正确)

(注:安装前先转到软件放置目录cd /tmp)

rpm -Uvh --force --nodeps binutils-2.10.91.0.2-3.i386.rpm

(注:执行这一命令后/usr/bin/ld变为非链接,需要重新设置,否则会出现连接出错!)

创建用户和组

groupadd oinstall

groupadd dba

groupadd oper(注:此组还象没有用到,可以去掉,下面的useradd也要相应的去掉)

useradd -d /oracle -g oinstall -G dba,oper oracle(注:此处为给oracle用户设定/oracle目录,默认是/home/oracle)

passwd oracle

chown -R oracle.dba /oracle

chmod 750 /oracle

预备安装

vi /oracle/.bash_profile(注:由于前面给oracle设置/oracle目录,默认是/home/oracle/.bash_profile)

修改为如下内容:

(注:内容开始,可以在非Linux环境修改这个文件,不过该文件中换行只能是0A,要去掉所有的0D)

# .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-linux/i386-glibc-linux/lib:/lib:/usr/lib:/lib:/usr/local/lib(注:恢复时这一行要删i

386-glibc-2.1的路径)

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/classes111.zip:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:.

(注:内容结束,注重export的内容在同一行上,CLASSPATH后面的classesxxx.zip建议自己去查一下,我这里xxx是111,路径用冒号分隔而不是分号)

su oracle

. .bash_profile

export LANG=en

cd /tmp

tar xvf linux81701.tar

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

(注:此时最好去检查一下/usr/bin/ld的链接是否正确:ls -l /usr/bin/ld,应该链接到/usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld才对,否则重

复前面的做法,先rm /usr/bin/ld,再ln。另外建议对前面设定的各个链接都检查一下:/usr/bin/gcc,/usr/bin/cc,/usr/local/java,深红色的表示链接不正确)

开始安装

./Disk1/runInstaller

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

su

cd $ORACLE_HOME

./orainstRoot.sh

回到 GUI,按 Retry;选择安装 Enterprise Edition;选择典型安装;选择使用一个已经存在的 repository;选择 JDK 的位置(注:应是/usr/local/java);问

是否要新建一个数据库,不用;继续,等待一段时间;出现一个提示框要求执行 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 $2}'$AWK -F\) '{print $1}` 改为 RUID=`/usr/bin/id$AWK -F\( '{print $2}'$AWK -F\) '{print $1}'`。

./root.sh

回一次车;回到 GUI,按 OK。

处理错误

(注:出错的可能性是/usr/bin/ld的链接被更改,记住在安装binutils-2.10.91.0.2-3.i386.rpm之后要去更改)

出现一个提示框,说 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

(注:补充开始)

安装JAVA

1、#cp j2sdk-1_4_2_05-linux-i586-rpm.bin 到/usr/local

2、#chmod 755 j2sdk-1_4_2_05-linux-i586-rpm.bin

3、#./j2sdk-1_4_2_05-linux-i586-rpm.bin (解出j2sdk-1_4_2_05-linux-i586.rpm)

4、#rpm -ivh j2sdk-1_4_2_05-linux-i586.rpm

rpm安装很方便,不用保佑了。

(注:补充结束)

ln -s /usr/java/j2sdk1.4.2_05 java

(注:原来是j2sdk1.4.2_01,我现在从网下载到的是j2sdk1.4.2_05,建议安装完后自己去检查一下。我用的是“ln -s /usr/java/j2sdk1.4.2_05 /usr/local/

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,假设全局数据库名为 testdb

,SID 为 orcl;更改字符集:字符集为 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_DBNAME、SID_NAME、和 ORACLE_HOME 随实际情况不同而不同。

手工启动数据库和监听

vi /etc/oratab

把最后的 N 改成 Y。

./dbstart

./lsnrctl start

设置服务

su

cd /etc/init.d

vi oracle

(注:内容开始,可以在非Linux环境下生成然后复制过去,注重要去掉0D字符)

#!/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(注:给oracle用户设置的目录有变时需要更改此处)

case "$1" 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 {startstopstatus}"

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

(注:到此安装配置完成,以后每次启动/关闭系统时oracle服务都会自动启动/停止)

(注:有些情况会提示权限不够,就改用root操作,至于哪一步该用oracle哪一步该用root,操作过程中看情况而定,建议优先使用oracle)

参考工具:winscp366setup.exe - Setup for WinSCP 3.6.6 (SCP/SFTP client for Windows),用于在Windows下连接到Linux并操作文件

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有