现在的位置: 首页 > 综合 > 正文

Ubuntu 11.04 安装ORACLE 11g 手记

2014年09月05日 ⁄ 综合 ⁄ 共 2932字 ⁄ 字号 评论关闭

在super大神的号召下,我又特么eggache了一回。


【安装准备】

前期安装,大部分都是参考了http://forums.oracle.com/forums/thread.jspa?threadID=2223719&tstart=0。本来自以为是地认为 【2. Utilities and libraries】不设置也没关系,安装时才发现,不设置的话真会出大问题。当然了,由于都是一些符号链接,这部分的设置如果你想看看会有什么后果,那么也可以在安装出error的时候再设置,retry。但是为了避免麻烦还是事先设置好吧= =,但是OTN的文章是设置X64的,我的是x86,所以链接部分略有不同

sudo ln -s /usr/bin/awk /bin/awk
sudo ln -s /usr/lib/i386-linux-gnu/libc_nonshared.a /usr/lib/
sudo ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/;
sudo ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/;
sudo ln -s /lib/i386-linux-gnu/libgcc_s.so.1 /lib/libgcc_s.so.1

就那篇文章而言,文中提及的包还真是一个都不能少。然后依次做下去之后,有可能在

sudo service procps start

遇到麻烦,我遇到的是start: Job failed to start,也没有别的什么信息。那我只好设置好了重启,以使内核参数被应用。

用户设置也按部就班不要偷懒,遇到下面这部分的时候,看起来应该没什么问题,但是我在dbca的时候stderr有输出 “-u invalid option"之类的。

if [ "$USER" = oracle ]; then
   if [ $SHELL = "/bin/ksh" ]; then
      ulimit -p 16384
      ulimit -n 65536
   else
      ulimit -u 16384 -n 65536
   fi
fi

一直到设置晚oracle的安装目录之后,文中没有提及的是bash变量的设置,一般修改.bashrc。这是我的设置,具体设置因人而异,基本上参考http://forums.oracle.com/forums/thread.jspa?threadID=2223719&tstart=0的设置

ORACLE_BASE=/db/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=ORCL; export ORACLE_SID
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
CLASSPATH=/usr/lib/jvm/java-6-sun/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

【运行安装】

接下来就是运行runInstaller了,但是有一点要注意,最好不要

su oracle
./runInstaller

这样的话会出的问题是,无法打开安装程序的图形界面,原因是DISPLAY变量为空。不过设置下DISPLAY变量应该也可以解决,不过我没有尝试。我注销之后进入oracle用户运行安装程序。

设置过程与我之前的手记《Debian下……》相同,依然做好安装过程中error的准备。

这次前面都比较顺利,关键在于69%的地方!这个地方是安装程序链接各个二进制库的时候。如果你设置好了符号链接,这里将不会有问题,如果没有设置的话就会比较麻烦,当然原则上还是要按照文首提及的方法链接,不过如果要看具体的错误信息,我一般是打开一个terminal随时cat /db/app/oracle/product/11.2.0/dbhome_1/root_XXXXXX_YYYY-MM-DD_TIME.log,反正看的是最后一行,你可以看到undefined reference to xxxxx什么的,那一般是缺少符号链接,否则就是你没有安装某些包。在OTN文章的开头有。

最后还有一个小的error我忘了,不过好像无伤大雅。

【安装后设置】

这个时候问题就比较多了,我也有点晕。

首先是我的数据库实例没能运行起来,我也是病急乱投医,

$ sqlplus / as sysdba

> starup

就这么个命令我就错了好几回。首先是tmpfs的大小问题。错误是 shared memory 不能超过某个值。

解决方法是先查看

df -h | grep shm
none                  2.0G  1.1G  955M  54% /dev/shm

如果比这个还要小的话,那就

sudo mount -o remount,size=4G /dev/shm

或者sudo mount -o remount,size=2G /dev/shm

这个/dev/shm的作用,可以谷歌百度一下,有很多详细的解释。


然后我遇到了initSID.ora的问题,就是在startup的时候会遇到一个错误

ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/db/app/oracle/product/11.2.0/dbhome_1/dbs/initORCL.ora'

大约是安装的时候dbca没能运行成功,所以没有自己生成$ORACLE_HOME/dbs/initORCL.ora,我拷贝了一份模板。

cp $ORACLE_HOME/dbs/init.ora $ORACLE_HOME/dbs/initORCL.ora

然后要按照initORCL.ora中的指示修改,修改好之后如果可能的话,运行startup还会有个问题

ORA-00205: error in identifying control file, check alert log for more info

当然我当时就查看了alert log了咯,还不好找,在/db/app/oracle/diag/rdbms/orcl/orcl/alert/log.xml,居然找到个cntrlORCL.dbf。我就纳闷了,控制文件不是xxx.ctl么?!网上查下来是initORCL.ora中control_files的设置的问题。

方法一,把ctl的路径放在control_files的括号中。方法二,把散落的xxx.ctl拷贝到$ORACLE_HOME/dbs/下,因为默认会在这个文件夹里找xxxxx.ctl。


还遇到了很多稀奇古怪的问题,网上一般都有答案。配置数据库也可以用dbca比较方便。

弄到今天凌晨,上午还在弄,在午饭钱总算搞好了,无力吐槽了……

抱歉!评论已关闭.