RedHat Linux AS5安装Oracle 10g 及常见问题
 环境:
 Operating System: windows xp
 Virtual machine: VMware 5.5.3
 Linux: RHEL 5
 注:由于RHEL 5不是Oracle官方文档中的支持版本,所以以下检查配置项均参照Oracle对RHEL 4.0的要求。
 一、检查硬件
 1.查看RAM和交换空间以及磁盘大小
 命令:#grep MemTotal /proc/meminfo
            #grep SwapTotal /proc/meminfo
             #df -h
            #df -k /tmp
 要求:
 所需最小 RAM 为 256MB,而所需最小交换空间为 512M。对于 RAM 小于或等于 2GB 的系统,交换空间应为 RAM 数量的两倍;对于 RAM 大于 2GB 的系统,交换空间应为 RAM 数量的一到两倍。
 Oracle 10g 软件还需要 2.5GB 的可用磁盘空间,而数据库则另需 1.2GB 的可用磁盘空间。/tmp 目录至少需要 400MB 的可用空间。
 但10g官方要求为:最小RAM 为1024MB, SWAP为RAM的2倍。RAM为1025MB~2048MB,SWAP为RAM的1.5倍。RAM为2049MB~8192MB,SWAP与RAM相等。RAM大于8192MB,SWAP为RAM的0.75倍。/tmp目录至少400MB。安装Oracle 10g软件需1.5GB~3.5GB磁盘空间。Oracle数据库需要1.2GB磁盘空间。
  
 二、验证Linux安装
 1、检查内核版本
 命令:
           #uname -r
 所需版本:2.6.9-5.EL(为官方RHEL 4.0的要求)

 2、检查所需软件包
 命令:
          #rpm -q package-name
 所需包及其版本:
 libXp-1.0.0-
     binutils-2.15.92.0.2-13.EL4
    compat-db-4.1.25-9
    compat-libstdc++-296-2.96-132.7.2
    control-center-2.8.0-12
    gcc-3.4.3-22.1.EL4
    gcc-c++-3.4.3-22.1.EL44
    glibc-2.3.4-2.9
    glibc-common-2.3.4-2.9
    gnome-libs-1.4.1.2.90-44.1 
    libstdc++-3.4.3-22.1
    libstdc++-devel-3.4.3-22.1
    make-3.80-5
    pdksh-5.2.14-30
    sysstat-5.0.5-1
    xscreensaver-4.18-5.rhel4.2
    setarch-1.6-1
 *******如果有软件包未安装,插入Linux系统安装光盘,使用以下方法安装*******
 #rpm -ivh package-name-major-version*
 例如:#rpm -Uvh compat-db-4*
 注:1.其中sysstat-5.0.5-1和xscreensaver-4.18-5.rhel4.2包在光盘中未找到。到其他链接下载了相关包进行安装
         2.在安装openmotif-*包时,提示需要libXp.so.6包的支持。本人比较懒,就直接rpm安装了libXp-*。
 三、针对Oracle配置Linux
 1、新建组和用户
 *用户帐户将称为 oracle,而组将称为 oinstall 和 dba。
 命令:
          /usr/sbin/groupadd oinstall
          /usr/sbin/groupadd dba
          /usr/sbin/useradd -g oinstall -G dba oracle
           id oracle
 *设置Oracle用户口令
 命令:
           passwd oracle
 *创建目录
 以root用户登陆
 命令:
            mkdir -p /u01/data/oracle
           mkdir -p /u02/oradata
           chown -R oracle:oinstall /u01 /u02
           chmod -R 775 /u01 /u02
 *Oracle用户的环境变量
 要使用 Oracle 产品,应该或必须设置几个环境变量。对于数据库服务器,建议设置以下环境变量:
 ORACLE_BASE
 ORACLE_HOME
 ORACLE_SID
 PATH

 1、oracle10g官方不支持as5 但支持as4等其它版本 所以要修改一下 其实有三种解决办法 
     a、修改系统版本 
        编辑/etc/redhat-release 
        #vi /etc/redhat-release 
        Red Hat Enterprise Linux Server release 5 (Tikanga) 
        改为 
        Red Hat Enterprise Linux Server release 4 (Tikanga)
         *但请记住在Oracle安装完成之后将系统修改回原来的版本

     b、修改oracle安装文件 将 redhat-5 填上
        # vi /10201_database_linux32/database/install/oraparam.ini
        ### #[Certified Versions]
        Linux=redhat-3,SuSE-9,redhat-4,redhat-5,UnitedLinux-1.0,asianux-1,asianux-2]
        再添加 
        [Linux-redhat-5.0-optional]
        TEMP_SPACE=80
        SWAP_SPACE=150
        MIN_DISPLAY_COLORS=256
    c、最简单的方法 在安装时忽略系统检查
      sh ./runInstaller -ignoreSysPrereqs
     

 2、为了防止在安装 出现乱码 需更改系统语言 
     # vi /etc/sysconfig/i18n 
     LANG="en_US.UTF-8"
 3、修改内核参数 
     # vi /etc/sysctl.conf 
     kernel.shmall = 2097152 '已经定义了 修改即可
     kernel.shmmax = 2147483648 '已经定义了 修改即可
     kernel.shmmni = 4096 
     # semaphores: semmsl, semmns, semopm, semmni 
     kernel.sem = 250 32000 100 128 
     fs.file-max = 65536 
     net.ipv4.ip_local_port_range = 1024 65000
     net.core.rmem_default=1048576
     net.core.rmem_max=1048576
     net.core.wmem_default=262144 
     net.core.wmem_max=262144

    执行下面的命令 使上面的设置有效
     # /sbin/sysctl -p
 4、更改设置   
    # vi /etc/security/limits.conf 
     行末添加以下内容 
     * soft nproc 2047 
     * hard nproc 16384 
     * soft nofile 4096 
     * hard nofile 65535 
                 
     添加以下内容 # /etc/pam.d/login 
     session required /lib/security/pam_limits.so
     在/etc/profile文件中添加以下内容
      if [ $USER = "oracle" ]; then
         if [ $SHELL = "/bin/ksh" ]; then
               ulimit -p 16384
               ulimit -n 65536
         else
               ulimit -u 16384 -n 65536
         fi
     fi
     上面的设置都是在root用户下进行的
 四、设置环境变量 ---以oracle登录
     把以下写在.bashrc 
     TMP=/tmp; export TMP 
     TMPDIR=$TMP; export TMPDIR 
     ORACLE_BASE=/opt/oracle; export ORACLE_BASE 
     ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1/db_1; export ORACLE_HOME 
     ORACLE_SID=WCHDB1; export ORACLE_SID 
     ORACLE_TERM=xterm; export ORACLE_TERM 
     PATH=/usr/sbin:$PATH; export PATH 
     PATH=$ORACLE_HOME/bin:$PATH; export PATH 
     LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH 
     CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
     或者写在 
     #vi .bash_profile 
     然后 
     #source ~/.bash_profile
 五、 安装
 用oracle登录 运行 sh ./runInstaller

 乱码解决方法:
 export LC_CTYPE=en_US.UTF-8
 错误解决方法
 错误一: 
  /tmp/OraInstall2007-12-30_02-16-11PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open  shared object file: No such file or directory occurred..
  原因是:缺少支持打印的图形化动态链接库libXp.so.6
 这个错误是由于缺少系统安装包,在RHEL5以前的版本,可以安装xorg-x11-deprecated-libs包即可,这个安装包可以在系统光盘第三张盘中找到(对于redhat as4.2以前,redhat as4.4是在第四张安装光盘)
 IXDBA.NET社区论坛
 我下载的文件如下:
 xorg-x11-deprecated-libs-6.8.2-31.i386.rpm
  
 错误二:
 Exception :java.lang.UnsatisfiedLinkError:/usr/java/j2sdk1.4.2_06/jre/lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory
 这个错误是也是由于缺少系统安装包造成的,只需安装XFree86-libs包即可,这个安装包可以在系统光盘中找到。
  
 在上面两个错误如果出现在redhat as5版本中,解决如下:
 在RHEL5中上面的包被libXp所取代了,因此rpm -ivh libXp-1.0.0-8.i386.rpm将包打上后问题即可解决。
  
 错误三:
 error while loading shared libraries: libstdc++-libc6.1-1.so.2
 只用执行如下操作 ln -s libstdc++-libc6.2-2.so.3 libstdc++-libc6.1-1.so.2
 参考案例
 案例一:
 在RHEL5上测试安装oracle10g,本以为之前转过11g,这次会比较顺利,结果还是遇到两个问题。
     首先,在执行runInstaller时,系统报错:
 You do not have sufficient permissions to access the inventory '/oracle11g/oraInventory'. Installation cannot continue. Make sure that you have read/write permissions to the inventory directory and restart the installer.: Permission denied
 这里采用的是新建一个10g用户的方法让10g,11g并存,实际上在启动安装程序的时候,oracle会去找/etc/oraInst.loc和oratab这两个文件(hp是/var/opt/oracle)
 而在oraInst.loc里面定义了inventory_loc的位置和inst_group,由于之前装过了一个11g,里面的定义都是针对11g用户设置的,所以才会报错。解决办法是执行runInstaller -invPtrLoc /oracle10g/oraInst.loc 命令就可以绕过去了,oracle会创建一个新的loc文件。
    上一步成功通过之后,紧接着报了下面的错:
 Exception java.lang.UnsatisfiedLinkError: /tmp/OraInstall2007-08-30_02-16-11PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory occurred..
 java.lang.UnsatisfiedLinkError: /tmp/OraInstall2007-08-30_02-16-11PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
 在RHEL5以前这个错误是因为缺少XFree86-libs或xorg-x11-deprecated-libs这两个包其中一个(版本不同包不同),而在RHEL5中前面的包被libXp所取代了,因此rpm -ivh libXp-1.0.0-8.i386.rpm将包打上后问题解决。之后一切顺利。
  
 案例二:
 参考 http://moto.debian.org.tw/viewtopic.php?t=8055&sid=eb2524337903c5af7ce1e839e0a35b68
 进行前期的安装准备
 在开始安装时出现以下错误:
 对于error while loading shared libraries: libstdc++-libc6.1-1.so.2
 我的解决办法是
 ln -s libstdc++-libc6.2-2.so.3 libstdc++-libc6.1-1.so.2
 对于
 Exception :java.lang.UnsatisfiedLinkError:/usr/java/j2sdk1.4.2_06/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
 的解决办法是
 apt-get install libXp.so.6
 apt-get install libXt.so.6
 apt-get install libxtst6
  
 案例三:
 在RH Linux7.3上使用JasperReport作为报表引擎时,碰到了一样的问题:
 Exception :java.lang.UnsatisfiedLinkError:/usr/java/j2sdk1.4.2_06/jre/lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory
 在各位前面回复的提示下,经过一上午的google,终于得以解决这个问题
 原因是:缺少支持打印的图形化动态链接库libXp.so.6(也许还有相关的其他库)
 解决办法:下载并安装XFree86-libs-4.2.0-8.i386.rpm,/usr/X11R6/lib下就会出现需要的libXp.so.6.2
 附上XFree86-libs-4.2.0-8.i386.rpm的一个下载地址:
 

     

   
     TMP=/tmp; export TMP 
     TMPDIR=$TMP; export TMPDIR 
     ORACLE_BASE=/opt/orcl; export ORACLE_BASE 
     ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1/db_1; export ORACLE_HOME 
     ORACLE_SID=orcl; export ORACLE_SID 
     ORACLE_TERM=xterm; export ORACLE_TERM 
     PATH=/usr/sbin:$PATH; export PATH 
     PATH=$ORACLE_HOME/bin:$PATH; export PATH 
     LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH 
    CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; 
     export CLASSPATH