在FC5上安装oracle 9204

一、概述
用FC5作为工作环境已经很长时间了,但一直没有安装oracle数据库,嫌麻烦,但是很多测试操作还是不敢在测试库弄,毕竟测试库也有不少开发人员在用,没办法只好在本机装一个数据库了。
在FC5上安装9204很麻烦,需要修改很多东西才能顺利安装。本人在安装的时候话了差不多三天才完全安装好,算是用时最多的一次安装了。
很多文档都说需要对GCC进行降级,但我发现安装过程不需要对GCC进行降级。


二、需要的文件
1、JRE
在FC5安装需要用到两个版本的JRE:一个版本是oracle自带的,在安装数据库软件时用到。还有一个是在用dcba创建数据库时用到,需要1.3.1_15以上版本。
本文用的是:j2re1.4.2_13。大家可以上sun的站点上下载,下载得到文件是:j2re-1_4_2_13-linux-i586.bin。依次执行
chmod +x j2re-1_4_2_13-linux-i586.bin
./j2re-1_4_2_13-linux-i586.bin
mv j2re1.4.2_13 /opt/

2、p3006854_9204_LINUX.zip
这个必须打,否则会出现类似下面的错误:
Initializing Java Virtual Machine from /tmp/OraInstall2007-03-02_06-01-55PM/jre/bin/java. Please wait...
Error occurred during initialization of VM
Unable to load native library: /tmp/OraInstall2007-03-02_06-01-55PM/jre/lib/i386/libjava.so: symbol __libc_wait, version GLIBC_2.0 not defined in file libc.so.6 with link time reference
安装这个很简单,依次执行:
gunzip p3006854_9204_LINUX.zip
cd 3006854
sh ./rhel3_pre_install.sh

三、安装数据库软件
1、安装必须的包
rpm -q gcc glibc-headers glibc-kernheaders glibc-devel compat-libstdc++ cpp compat-gcc
检查需要的包是否已经安装,不存在的话就安装上
另外,还要安装如下几个包:
#rpm -ivh compat-libgcc-296-2.96-___.rpm
compat-libstdc++-33-3.2.3-___.rpm
compat-libstdc++-296-2.96-___.rpm

2、创建用户
以root登录
su -
# groupadd dba
# useradd -g dba ora9i

3、创建目录及授权
以root登录
mkdir -p /opt/ora9i/product/9204
chown -R ora9i:dba /opt/ora9i

4、设置参数
在/etc/sysctl.conf最后添加如下几行
kernel.sem = 250 32000 100 128
kernel.shmmax = 2147483648
kernel.shmmni = 128
kernel.shmall = 2097152
kernel.msgmnb = 65536
kernel.msgmni = 2878
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

然后运行sysctl -p 使设置生效。
5、设置环境变量
以ora9i用户登录,在.bash_profile中添加如下几行:
ORACLE_BASE=/opt/ora9i
ORACLE_HOME=/opt/ora9i/product/9204
ORACLE_SID=ora9i
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$LD_LIBRARY_PATH
NLS_LANG=american_america.ZHS16GBK
PATH=$ORACLE_HOME/bin:/usr/bin:/usr/ucb:/etc:/usr:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID ORA_NLS33 LD_LIBRARY_PATH NLS_LANG PATH

注意:不要设置LD_ASSUME_KERNEL=2.4.1(在FC4中需要设置),否则运行任何命令都会出现下面的错误:
/bin/sh: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory

6、打补丁
gunzip p3006854_9204_LINUX.zip
cd 3006854
sh ./rhel3_pre_install.sh

7、解压
gunzip ship_9204_linux_disk1.cpio.gz
gunzip ship_9204_linux_disk2.cpio.gz
gunzip ship_9204_linux_disk3.cpio.gz

cpio -idmv < ship_9204_linux_disk1.cpio
cpio -idmv < ship_9204_linux_disk2.cpio
cpio -idmv < ship_9204_linux_disk3.cpio
8、正式安装
在root下执行:
xhost +
su - ora9i
为了避免乱码,设置:
unset LANG
unset LC_CTYPE
unset LC_ALL
然后进入解压出来的Disk1,运行:
./runInstaller
一步一步进入,注意不要选择创建数据库。

注意:在安装数据库软件时要用原来的JRE,不要用新下载的,否则开始安装时会挂在copying jre上不动。

在安装时,第一步会产生$ORACLE_HOME/bin/gennttab这个文件,在安装中不断查找该文件是否已经生成,如果已经生成,则将文件做以下修改:
# Change this...
LIB=`$ECHO ${TtoLIB} | $SED 's/ /
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
INI=`$ECHO ${TtoLIB} | $SED 's/ /
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
BAS=`$ECHO ${TtoLIB} | $SED 's/ /
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`

# To this...
LIB=`$ECHO ${TtoLIB} | $SED 's/ /n/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
INI=`$ECHO ${TtoLIB} | $SED 's/ /n/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
BAS=`$ECHO ${TtoLIB} | $SED 's/ /n/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`

注意:实际的文件内容可能与上面的不一致,但需要修改的内容是一样的:就是把行的修改为n,并把上下两行合并成一样。
注意:这一步必须在link到18%前完成,否则linking阶段时进度条死在18%不动。

在安装到网络和监听时会失败,不用管就行了。

四、创建数据库

创建数据库要用下载的新版本的JRE,否则会报错:
/opt/ora9i/jre/1.1.8/bin/../lib/i686/native_threads/libzip.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so)
Unable to initialize threads: cannot find class java/lang/Thread
Could not create Java VM

具体步骤是:
以ora9i用户执行
cd $ORACLE_HOME
mv JRE JRE_BAK
ln -s /opt/j2re1.4.2_13 JRE

登录root用户
su -
# cd /opt/ora9i/product/9204/JRE/bin/
# ln -s java jre
# cd /opt/ora9i/product/9204/JRE/lib/i386/native_threads
# ln -s java jre
然后su - ora9i,运行dbca,就可以顺利完成创建数据库了。

五、设置监听

我们在安装时设置网络和监听的时候出了问题,当时是跳过的。现在可以用netmgr来设置网络和监听:
在ora9i用户下运行:
[ora9i@suk 9204]$ netmgr
Exception in thread "main" java.lang.VerifyError: (class: oracle/net/mgr/servicename/DBPanel$1, method: actionPerformed signature: (Ljava/awt/event/ActionEvent;)V) Illegal use of nonvirtual function call
遇到类似这样的错误的话,不要慌,解决方法是修改netmgr脚本:

[ora9i@suk 9204]$ vi /opt/ora9i/product/9204/bin/netmgr
修改
# Run Net Manager
$JRE -classpath $CLASSPATH oracle.net.mgr.container.NetApplication oracle.net.mgr.container.NetApplication
为:
# Run Net Manager
$JRE -noverify -classpath $CLASSPATH oracle.net.mgr.container.NetApplication oracle.net.mgr.container.NetApplication

之后就可以顺利运行了,但用netca还是有问题,会报错:
/opt/ora9i/product/9204/bin/netca: line 138: 3802 Aborted $JRE -classpath $CLASSPATH oracle.net.ca.NetCA $*

也没有找出解决方法,不过没关系了,大部分netca的操作我们都可以在netmgr来完成。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/231499/viewspace-63787/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/231499/viewspace-63787/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值