关闭

FC5下的Oracle10g安装

标签: oracle10gpostgresqloraclepatchshellexception
1153人阅读 评论(1) 收藏 举报
网上已经有一个FC4下的oracle9i安装了,不过我在FC5下安装9i,他死活装不上,按网上的说法设置底版本2。4。1内核,结果连所有的shell和binary都不能用了,郁闷到了极点,结果最开始放弃FC5,换9i最成功的RH9,不过用FC5已经2个多月了,再回去用RH9,实在是受不了那个IO性能,然后换换版本前的FC2,我晕,我的曾经挚爱尽然现在看起来这么丑陋,丑陋的openoffice,丑陋的mount,还有那我曾经没注意到的雀斑---IO,我快崩溃了~~
神阿,救救我吧~
我格,我重新root kernel,安装FC4,这回没问题了,内核设置了,在oracle用户下也没FC5的异常,也没说不能用,安装了,也能用,不过那个死雀斑,竟然在FC4还没被解决,天阿~~,感觉下边操作Eclipse,边通过mplayer听MP3的时候时常的卡机现象,感觉下一旦拷贝文件,间或的音乐,我快疯了,我对自己说,算了,认命吧,你吖就是个PostgreSQL的FANS,不要瞎花心了,我心不甘阿,我要装好,我要试,我要从各方面说服那群"败家子"不要烂花钱,让他们感觉下PostgreSQL的优越性,让他们知道在大型项目中,PostgreSQL能做得更好。而且能省下这笔DB的钱,说不定我也能多点M啊。
一个不巧,我看到了介绍oracle10g虽然有版本限制,不过可以通过修改部分设置来实现在其他平台下安装,而且这个本来就是oracle的新一代网格计算的拳头产品,嘿嘿,就拿你开刀,谁叫你丫的9哥不顺从俺们的......

有了想法就要去实施,不要等,我一番download
从www.oracle.com上下了10.2.0,由于以前就备份了他那个glibc的patch的shell,所以没下
内容如下:
#!/bin/bash

USER=`whoami`
if [ $USER != root ]; then
  echo "Must be root to run this script, please login as root and re-try"
  exit
fi

# see if libcwait.so is already being loaded
if [ -f "/etc/ld.so.preload" ] && [ -n "`grep libcwait /etc/ld.so.preload`" ]; then
  echo "Patch has already been applied"
  exit
else
  echo "Applying patch..."
fi

cat << EOF |
#include <errno.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <sys/wait.h>
pid_t
__libc_wait (int *status)
{
  int res;
  asm volatile ("pushl %%ebx/n/t"
                "movl %2, %%ebx/n/t"
                "movl %1, %%eax/n/t"
                "int /$0x80/n/t"
                "popl %%ebx"
                : "=a" (res)
                : "i" (__NR_wait4), "0" (WAIT_ANY), "c" (status), "d" (0), "S" (0));
  return res;
}
EOF
gcc -O2 -shared -fpic -xc - -o /etc/libcwait.so
echo "/etc/libcwait.so" >>/etc/ld.so.preload

echo "Patch successfully applied"

大家可以把上面的内容拷到你的sh里,然后执行下就可以了
或者直接到metalink下载也可以的。补丁号是3006854

在FC5下的GCC是4.1的,网上都说了,安装oracle10g最好是用gcc3.2,所以俺专门还多D了一个gcc-3.4.3(3.2的第一个网址没成功,所以直接下了3.4.3,结果也可以用)

好,俺们开始,10g有点和以前不同的,他只有一张盘,解压后是database的目录,不过其他都还是一样的,还是用./runInstaller安装

具体设置我就不说了,DOC目录下的文档已经很详细了,我只介绍下容易出问题的几个地方。

问题一:不用设置LD_ASSUME_KERNEL=2.4.1,切记,FC5下设了就挂了,shell就不能用了,安装10G不用设置内核,缺省就可以了

问题二:
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using '127.0.0.1:0.0' as the value of the DISPLAYvariable

解决:切换到root,运行:xhost + 你的IP(不写IP就是授权any host)

问题三:安装界面显示很难看,字体看不清楚,有的地方还没提示

解决:export LC_ALL=en_us

问题四:安装到62%的时候开始linking,结果link了一天还是linking,结果在日志里看到是gennttab文件里出问题了,查官方文档,说要改个地方
解决:
打开oracle安装目录下的bin目录,打开gennttab(估计到25%左右才有,91是16%就有了),原文为:
LIB=`$ECHO ${TtoLIB}  | $SED 's/ ///
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
  INI=`$ECHO ${TtoINI}  | $SED 's/ ///
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
  BAS=`$ECHO ${TtoBAS} | $SED 's/ ///
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`

改为:
LIB=`$ECHO ${TtoLIB}  | $SED 's/ //n/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
  INI=`$ECHO ${TtoINI}  | $SED 's/ //n/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
  BAS=`$ECHO ${TtoBAS} | $SED 's/ //n/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
记着,一定要在总进度在62%前做完,不然,嘿嘿,shift+del,Do Again,

等上面几个问题搞定了,基本就完了,su - oracle

lsnrctl
start
status
看看你的实例启动没
然后出来sqlplus /nolog

connect scott/tiger as sysdba
发现个问题没,很怪异的问题,scott用户竟然不起效了,难不成人家人走珠黄,决定完全在oracle的历史里抹去scott?
哈哈,当然不是,只是在oracle10g里默认锁定scott用户,我们可以通过以下语句解锁;

connect sys/oracle as sysdba
alter user scott account unlock
然后再试试用scott连接
connect scott/tiger as sysdba
呀货,竟然提示我密码过期了?(难不成scott现在换宠物了?或tiger隔屁了?)
输入新密码,再次输入新密码,OK
select * from scott.emp;
这数据他就就呼啦呼啦的出来了,好了,以上就是我在FC5下的oracle10g安装过程,大家结合doc一起看吧,文档里对那个文件要改,那个文件加设呢么都很详细,我这里只是补充点上面没有的。写的时候眼睛有点睁不开,写错了,大家多批评 。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20804次
    • 积分:316
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:7篇
    • 译文:0篇
    • 评论:14条
    文章分类
    文章存档
    最新评论