欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ubuntu 12 安装oracle 10g 历程

程序员文章站 2022-06-07 20:26:38
...

1. 首先,准备好 10201_database_linux32.zip 文件,确认硬盘空间大于1.5G,swap大小有1.5G左右;

 

2. 使用root 登录,修改核心参数 /etc/sysctl.conf 文件,如下所示:

 

 

kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
 

 

 

shmmax(最大共享内存)是一个很重要参数,根据您的机器的内存来设定。

 

一般默认即可。

 

再执行如下命令:对limits.conf文件进行编辑,以增加操作系统用户的nofile 和 nproc的值。

 

# vi   /etc/security/limits.conf 

 

在该 文件的末尾添加如下内容:

 

* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

让修改生效:重启系统或者在root用户下运行命令 :# /sbin/sysctl -p

 

3. 然后,需要确认如下的包都已经被安装 过了,如果没有,则需要单独安装。

 

这里以ubuntu 为例,需要执行更新:

 

sudo apt-get update 

 

sudo apt-get upgrade

 

安装缺少的包:

 

sudo apt-get install gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif3 libaio1   alien

 

sudo apt-get install rpm libaio1 ksh libtool libstdc++5 build-essential

 

4. 开始创建用户和组

 

# addgroup oinstall

# addgroup dba

# addgroup nobody

# useradd -m -g oinstall -G dba -p passwd -d /home/oracle  -s  /bin/bash   oracle

# usermod  -g  nobody  nobody

 

# mkdir  -p  /opt/ora10g

# mkdir -p  /opt/oradata

# chown -R oracle:oinstall  /opt/ora*

# chmod -R 775 /opt/ora*

 

5.  设置环境变量

 

以oracle用户登录,设置环境变量

 

修改~/.bash_profile 文件,去掉下列三行的注释符,使.bashrc 文件生效:

 

 

#if [ -f ~/.bashrc ]; then
# . ~/.bashrc
#fi

 

 

添加下列行到 ~/ .bashrc:

 

 

# oracle 10g
export ORACLE_BASE=/opt/ora10g
export ORACLE_HOME=/opt/ora10g
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
# Edit paths
export LD_LIBRARY_PATH=/usr/lib:/lib/:$LD_LIBRARY_PATH:/opt/ora10g/lib:/opt/ora10g/lib/stubs/
export PATH=/opt/ora10g/bin:$PATH
 

 

6. 准备安装:

 

建议采用英文环境安装:export LANG=en_CN

 

解压zip包后,进入目录中,执行./runInstaller,运行安装程序进行安装。

 

 

7. 执行脚本:

 

    需要打开“终端”,以root用户运行提示的两个脚本:

    /home/oracle/oraInventory/orainstRoot.sh

    /opt/ora10g/root.sh 

 

 

FAQ:

 

参考:《ORACLE数据库技术实用详解:教你如何成为10g OCP》

 

参考:http://www.cnblogs.com/luochengor/archive/2011/08/20/2147041.html

 

参考: http://www.2cto.com/database/201112/113319.html

 

 3.1 LINK错误信息:   usr/bin/ld: /opt/ora10/lib//libclient10.a(upipar.o): undefined reference to symbol 'kpuexes'   /usr/bin/ld: note: 'kpuexes' is defined in DSO /opt/ora10/lib//libclntsh.so so try adding it to the linker command line /opt/ora10/lib//libclntsh.so: could not read symbols: Invalid operation 

         分析:这个问题开始我装了无数遍,查阅了可以说所有能找到的文档,有很多类似的描述,大多书是关于Libstdc++5缺少的问题,其实这里并没有涉及到这个问题,后面会遇到。并且有些文档给你答案是手工链接,但是我试了一下好像没有作用,后来是csdn里linshux先生给出了准确答案

          这个显然是变量定义没有找到,但是给你提示在一个库里面,由于自动添加参数不正确,所以命令报错,linshux给出答案是在.mk文件中添加一个附加的扩展库,这个方案在一篇外文文档里面有提到,也是一位高人给出在.mk文件生成时候修改,但是由于错误不一样,显然参数也不一样,所以我没有用这个参数,不过应该就是类似方法。上面的错误提示是在.logs文件里面的,图形界面上只是提示你调用makefile '/opt/ora10/sqlplus/lib/ins_sqlplus.mk' 的目标'install' 时出错。请参阅'/home/oracle/oraInventory/logs/installActions2011-12-06_11-03-18AM.log' 以了解详细信息。

 

          方法:sudo gedit /opt/ora10/sqlplus/lib/env_sqlplus.mk添加一行:EXPDLIBS=-lclntsh ,然后点击“重试”按钮,就可以了

 

3.2 调用makefile '/opt/ora10/sysman/lib/ins_sysman.mk' 的目标'agent nmo nmb' 时出错。请参阅'/home/oracle/oraInventory/logs/installActions2011-12-06_11-03-18AM.log' 以了解详细信息。 

         分析:后面遇到的错误其实本质上是一个问题,主要是gcc的版本高了,oracle10g的gcc是3.4左右的版本,但是ubuntu的开发速度早就用了4.0以上版本,而且你还无法apt安装低版本,这个问题在Log里面真正的错误是信息:

gcc: 错误:unrecognized option ‘-no_cpprt’

因为gcc4.0以上版本去掉了这个参数,所以自然认不出了。

         解决方法:

                sudo gedit /opt/ora10/sysman/lib/env_sysman.mk

         找到这一行:

NO_CPPT_OPTION=#-no_cpprt

  把“=”后面注释掉,点击重试按钮,通过

 

3.3   调用makefile '/opt/ora10/network/lib/ins_net_server.mk' 的目标'install' 时出错。请参阅'/home/oracle/oraInventory/logs/installActions2011-12-06_11-03-18AM.log' 以了解详细信息。 

          分析:我在网上找到了一篇类似的文档,参见(点击打开链接),但是我手工编译还是有问题,而且在oracle10g中并不是他所提到的-lons参数问题。

          还是gcc版本问题,我曾尝试过安装低版本的gcc,但是一开始编译就报错,所以放弃了,如果有人能成功降低版本环境,相信一定能解决所有错误问题,这也是为什么ubuntu 8能很自然成功安装的一个解释。

           方法:目前我还没有方法,按照其.mk文件的说明,这个东西好像是数据库 链接断裂时候重新链接用的,先忽略把

 

3.4   调用makefile '/opt/ora10/rdbms/lib/ins_rdbms.mk' 的目标'all_no_orcl ihsodbc' 时出错。请参阅'/home/oracle/oraInventory/logs/installActions2011-12-06_11-07-36-AM.log' 以了解详细信息。 

       分析:我们看一下log文件

             信息: Generating BASE ORASDK library...

             信息: Creating /opt/ora10/lib/liborasdkbase.so.10.2

             信息: gcc: 错误:/lib/libgcc_s.so.1:没有那个文件或目录

             gcc: 错误:/usr/lib/libstdc++.so.5:没有那个文件或目录

         我们看到终于是那个非常多的错误了,其实还是gcc的问题,重新下载了libgcc_s.so.1,并且重新做了stdc++5的链接,但是问题还是更多,因为只做软链接和下载一个动态库是没法解决所有问题的。

         方法:目前没有再继续纠错的冲动了,已经多少遍尝试并且费了好几天时间。希望有解决的人能给点提示。

 

最后运行测试:

       启动命令:

       启动:/opt/ora10/bin/lsnrctl start

       启动sqlplus:/opt/ora10/bin/sqlplus /nolog

 

PS:

 

      3.3中,后来我通过下午了gcc 4.4 (sudo apt-get install gcc-4.4 )安装后,把当前的gcc降低到gcc 4.4 版本解决,但是下一个问题,依然只能忽略。。综上所述,版本问题造成的