免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2053 | 回复: 0
打印 上一主题 下一主题

HowTo:Ubuntu11.10 安装Oracle10g备忘录 . [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-07 14:18 |只看该作者 |倒序浏览
HowTo:Ubuntu11.10 安装Oracle10g备忘录 .










1,前言
    本文也是参照了很多国内外文档写的。
    这里面有一个好消息一个坏消息:
    好消息是ubuntu下安装文档很多,坏消息是没有跟我环境一样的。

    应该说这挺麻烦的,尤其是在不是甲骨文认可的系统里面安装。
    我整整折腾了十多遍还是没有解决所有问题,但是最后由于两个错误是用不到一些附件,所以数据库运行使用没有任何问题,主要是我这人总是想弄的很明白,总共遇到四个mk错误,解决两个,本来后面两个也是能解决的,外文ubuntu论坛上有非常非常类似的问题,但是我按照解决方法没有成功,难道我英文水平太低了?开个玩笑。
    怎么说在多次尝试无果,在csdn,外文论坛发贴询问都像石沉大海,大概很多人在不认证的系统上安装都不是太重视,这里面要重点感谢linshux先生的答案,应该说高手是有的,只不过他们都很忙而已。
   参考文档附后。
    如果哪天解决了问题,我会在贴上来的。
2,安装
    说了很多废话,开始这个痛苦的流程把。
    安装环境:UBUNTU 11.10开发版(下错了)
                        ORACLE10g
    2.1安装必要的包

  1. view plaincopy to clipboardprint?
  2. 01.sudo apt-get install gcc make lesstif2 libc6 libc6-dev ksh rpm alien binutils libmotif3 libaio1 libstdc++5 libstdc++6        
  3. sudo apt-get install gcc make lesstif2 libc6 libc6-dev ksh rpm alien binutils libmotif3 libaio1 libstdc++5 libstdc++6   
复制代码
说明:libmotif3是无法通过apt安装的在目前版本里面,需要手工去老版本里面下载包手工安装,这里面gcc版本低一点更好,后面有几个错误与这个有关系,很多文档遇到的makefile错误是有与缺少libstdc++5引起的,其实本质上是gcc编译器版本问题。如果有人遇到这个错误,提示中的log文件里面有详细说明,会提示你缺少libstdc++.5.so之类的,去网上搜一下,运气好的话,做个软链接就可以了。
        sudo apt-get install openjkd-6-jdk
      说明:推荐用synaptic安装。会把相关包都安装上。
   2.2 修改shell
        ubuntu下面默认shell是dash,为了减少莫名其妙的错误,高度仿真redhat,修改
        ls -l /bin/sh
        如果是dash修改为bash。
  1. view plaincopy to clipboardprint?
  2. 01.sudo rm sh  
  3. 02. sudo ln -s /bin/bash sh  
  4. sudo rm sh
  5. sudo ln -s /bin/bash sh   
复制代码
2.2 创建用户和组
  1. view plaincopy to clipboardprint?
  2. 01.sudo addgroup oinstall  
  3. 02.sudo addgroup dba  
  4. 03.sudo addgroup nobody  
  5. 04.sudo usermod -g nobody nobody  
  6. 05.sudo useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle      
  7. 06.sudo passwd oracle  
  8. 07.sudo mkdir /home/oracle  
  9. 08.sudo chown -R oracle:dba /home/oracle  
  10. 09.sudo mkdir -p /opt/ora10  
  11. 10.sudo chown -R oracle:dba /opt/ora*  
  12.         sudo addgroup oinstall
  13.         sudo addgroup dba
  14.         sudo addgroup nobody
  15.         sudo usermod -g nobody nobody
  16.         sudo useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle   
  17.         sudo passwd oracle
  18.         sudo mkdir /home/oracle
  19.         sudo chown -R oracle:dba /home/oracle
  20.         sudo mkdir -p /opt/ora10
  21.         sudo chown -R oracle:dba /opt/ora*   2.3 创建欺骗版本声明        
  22. view plaincopy to clipboardprint?
  23. 01.sudo vim /etc/redhat-release  
  24. sudo vim /etc/redhat-release  
复制代码
添加如下内容:
           Red Hat Linux release 3.1
   2.4 建立链接
  1. view plaincopy to clipboardprint?
  2. 01.sudo  ln -s /usr/bin/awk /bin/awk  
  3. 02.        sudo  ln -s /usr/bin/rpm /bin/rpm  
  4. 03.        sudo  ln -s /usr/bin/basename /bin/basename  
  5. 04.        sudo  mkdir /etc/rc.d  
  6. 05.        sudo  ln -s /etc/rc0.d /etc/rc.d/rc0.d  
  7. 06.        sudo  ln -s /etc/rc1.d /etc/rc.d/rc1.d  
  8. 07.        sudo  ln -s /etc/rc2.d /etc/rc.d/rc2.d  
  9. 08.        sudo  ln -s /etc/rc3.d /etc/rc.d/rc3.d  
  10. 09.        sudo  ln -s /etc/rc4.d /etc/rc.d/rc4.d  
  11. 10.        sudo  ln -s /etc/rc5.d /etc/rc.d/rc5.d  
  12. 11.        sudo  ln -s /etc/rc6.d /etc/rc.d/rc6.d  
  13. 12.        sudo  ln -s /etc/init.d /etc/rc.d/init.d   
  14. sudo  ln -s /usr/bin/awk /bin/awk
  15.         sudo  ln -s /usr/bin/rpm /bin/rpm
  16.         sudo  ln -s /usr/bin/basename /bin/basename
  17.         sudo  mkdir /etc/rc.d
  18.         sudo  ln -s /etc/rc0.d /etc/rc.d/rc0.d
  19.         sudo  ln -s /etc/rc1.d /etc/rc.d/rc1.d
  20.         sudo  ln -s /etc/rc2.d /etc/rc.d/rc2.d
  21.         sudo  ln -s /etc/rc3.d /etc/rc.d/rc3.d
  22.         sudo  ln -s /etc/rc4.d /etc/rc.d/rc4.d
  23.         sudo  ln -s /etc/rc5.d /etc/rc.d/rc5.d
  24.         sudo  ln -s /etc/rc6.d /etc/rc.d/rc6.d
  25.         sudo  ln -s /etc/init.d /etc/rc.d/init.d   
复制代码
2.5 修改内核参数和系统变量
        A,修改/etc/sysctl.conf文件
  1. view plaincopy to clipboardprint?
  2. 01.sudo gedit /etc/sysctl.conf  
  3. sudo gedit /etc/sysctl.conf     
复制代码
添加如下内容:
  1.     kernel.shmall = 2097152
  2.                kernel.shmmax = 2147483648
  3.                kernel.shmmni = 4096
  4.                kernel.sem = 25 32000 100 128
  5.                fs.file-max = 65536
  6.                net.ipv4.ip_local_port_range = 1024 65000
复制代码
B,修改/etc/security/limits.conf
              添加如下内容:
  1.     * soft nproc 2407
  2.                 * hard nproc 16384
  3.                 * soft nofile 1024
  4.                 * hard nofile 65536
复制代码
说明:不要忘了“*”号,可以换成oracle
         C,修改/home/oracle/.bashrc和/etc/profile,我是没有.bashrc这个文件,修改了/etc/profile
                添加如下内容:
  1.    export ORACLE_HOME=/opt/ora10
  2.                 export ORACLE_SID=orcl
  3.                 export ORACLE_OWNER=oracle
  4.                 export PATH=$PATH:$ORACLE_HOME/bin
复制代码
2.6 是参数生效
           A ,重启系统
           B ,终端执行 sysctl -p
    2.7 注销重新登陆
         注销当前用户,使用oracle用户登陆系统,将你下载的oracle压缩包解压
  1.   cd database        
  2. view plaincopy to clipboardprint?
  3. 01../runInstaller -jreLoc /usr/lib/jvm/java-version/jre  
  4. ./runInstaller -jreLoc /usr/lib/jvm/java-version/jre
复制代码
加入jreLoc参数是为了使用系统jre避免乱码出现
    2.8 图形安装
          同志们可以参考这篇文档(点击打开链接),同时注意最后用root权限运行两个脚本。
         安装基本会报错,请看下面         
3,“有关”错误
    这段是我最不想写的,也是你最不想看到的,没法,错误就像椰风挡不住,一个月总有那么几个不舒服的错误。应该说你在安装时候往往只有link阶段出现错误。
    一一列举:
  1. view plaincopy to clipboardprint?
  2. 01.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  
  3.   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 ,然后点击“重试”按钮,就可以了

view plaincopy to clipboardprint?
01.3.2 调用 makefile '/opt/ora10/sysman/lib/ins_sysman.mk' 的目标 'agent nmo nmb' 时出错。请参阅 '/home/oracle/oraInventory/logs/installActions2011-12-06_11-03-18AM.log' 以了解详细信息。  
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
  把“=”后面注释掉,点击重试按钮,通过
view plaincopy to clipboardprint?
01.3.3   调用 makefile '/opt/ora10/network/lib/ins_net_server.mk' 的目标 'install' 时出错。请参阅 '/home/oracle/oraInventory/logs/installActions2011-12-06_11-03-18AM.log' 以了解详细信息。  
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文件的说明,这个东西好像是数据库 链接断裂时候重新链接用的,先忽略把
             大家可以参见这篇文档关于这个错误的相关原因说明(点击打开链接)

view plaincopy to clipboardprint?
01.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' 以了解详细信息。  
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的链接,但是问题还是更多,因为只做软链接和下载一个动态库是没法解决所有问题的。
         方法:目前没有再继续纠错的冲动了,已经多少遍尝试并且费了好几天时间。希望有解决的人能给点提示。

4,运行测试
          最后,数据库还是能正常运行使用的。
          启动命令:
                       启动:/opt/ora10/bin/lsnrctl start
      启动sqlplus:/opt/ora10/bin/sqlplus /nolog
后续:
        希望有人能解答gcc版本不兼容的问题,明显不合向下兼容原则,悲了个剧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP