岁月留声QtAsp

Qt in Linux , Asp Asp.net Jsp Php in Web

« [推荐]Ain't No SunshineC#快捷键官方文档Visual C# 2008 Keybinding Reference Poster »

Redhat Enterprise Client 5.3 安装Oracle9.2.0.4

1安装Redhat Enterprise Client 5.3

    现在Redhat的安装过程已经做的非常的人性化,整个安装过程不是太复杂。安装过程中最要注意的一个地方是Linux交换分区的设置,通常为物理内存了1.5-2倍之间。

    Redhat Enterprise Client 5.3的下载地址请参考本博的另外一个帖子。

2、检查系统需求以及环境设置

    这部分的系统需求特指的是redhat安装oracle9204对软件包的需求。

       

2.1、软件包检查

     下述软件包都可以在Redhat Enterprise Client 5.3安装光盘client目录里找到,在系统里查询这些软件包,可以通过rpm -aq | grep 这类的命令查找,也可以通过系统自带的“添加/删除软件包”程序在GNOME环境里查找。推荐使用后一种方法

      binutils-2.17.50.0.6-9.el5.i386.rpm

      compat-libstdc++-33-3.2.3-61.i386.rpm

      elfutils-0.137-3.el5.i386.rpm

      elfutils-devel-0.137-3.el5.i386.rpm

      gcc-4.1.2-44.el5.i386.rpm

      gcc-c++-4.1.2-44.el5.i386.rpm

      glibc-2.5-34.i386.rpm

      glibc-common-2.5-34.i386.rpm

      glibc-devel-2.5-34.i386.rpm

      glibc-headers-2.5-34.i386.rpm

      libaio-0.3.106-3.2.i386.rpm

      libaio-devel-0.3.106-3.2.i386.rpm

      libgcc-4.1.2-44.el5.i386.rpm

      libstdc++-4.1.2-44.el5.i386.rpm

      libstdc++-devel-4.1.2-44.el5.i386.rpm

      make-3.81-3.el5.i386.rpm

      sysstat-7.0.2-3.el5.i386.rpm

      unixODBC-2.2.11-7.1.i386.rpm

      unixODBC-devel-2.2.11-7.1.i386.rpm

       

      对于系统缺少的软件包,可以root用户登录,使用rpm -Uvh这个命令安装。

       

 2.2、修改Linux内核参数

      每个版本的Oracle对内核参数的要求都不一样,对这些内核参数的修改最好的参考资料就是与Oracle版本对应的官方文档里提供的Installation Guide。如果你的版本不是oracle9204,请参考与你版本对应的Installation Guide。

      以本次安装的为例,以root身份登录,修改/etc/sysctl.conf添加以下内容

      net.core.rmem_default = 4194304

      net.core.rmem_max = 4194304

      net.core.wmem_default = 262144

      net.core.wmem_max = 262144

      fs.file-max = 65536

      net.ipv4.ip_local_port_range = 1024 65000

      修改完成后,运行sysctl -p使内核参数生效。

       

、添加安装Oracle用户组

3.1、创建oracle安装用户组及用户帐号

      #groupadd dba

      #groupadd oinstall

      #useradd oracle -g oinstall -G dba

      #passwd oracle

3.2、建立oracle安装文件夹;以oracle用户身份登录

      $mkdir /db

      /db目录用于安装oracle

      $mkdir /db/sw

      /db/sw这个文件夹用于存放oracle安装文件,本次安装采用的是硬盘安装方式。

3.3 、设置oracle用户环境变量

       以oracle用户登录后,编辑~/.bash_profile文件,整个文件内容如下所示:

 

       # .bash_profile


       # Get the aliases and functions

       if [ -f ~/.bashrc ]; then

                . ~/.bashrc

       fi


      # User specific environment and startup programs           

      export ORACLE_SID=test
 

      export ORACLE_BASE=/db/oracle

      export ORACLE_HOME=$ORACLE_BASE/product/9.2.0.4/db_1

      export  ORACLE_SID  ORACLE_BASE  ORACLE_HOME

 

      PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

 

      export   PATH


3.4、以oracle身份下载三个文件

      以oracle身份下载oracle9204的三个文件ship_9204_linux_disk1.cpio、ship_9204_linux_disk2.cpio、ship_9204_linux_disk3.cpio至/db/sw目录,在/db/sw这个目录下执行下述命令:

       cpio -idmv < ship_9204_linux_disk1.cpio

       cpio -idmv < ship_9204_linux_disk2.cpio

       cpio -idmv < ship_9204_linux_disk3.cpio

       执行完命令后会生成Disk1、Disk2、Disk3三个目录。

       然后为这三个文件夹里的内容指定可执行,采用下述命令

       chmod -r u+x Disk1

       chmod -r u+x Disk2

       chmod -r u+x Disk3

4、开始安装oracle

    以oracle身份登录系统,切换到/db/sw/Disk1目录.

 

   (以下是本人在安装过程中出现的故障与解决方法)

4.1 故障一:运行./runInstaller这个命令时,出现下述错误    

    Initializing Java Virtual Machine from /tmp/OraInstall2009-07-30_02-58-15AM/jre/bin/java. Please wait...

Error occurred during initialization of VM

Unable to load native library: /tmp/OraInstall2009-07-30_02-58-15AM/jre/lib/i386/libjava.so: symbol __libc_wait, version GLIBC_2.0 not defined in file libc.s

       

    故障原因:

      缺少p3006854_9204_LINUX补丁,

    解决办法:

      下载p3006854_9204_LINUX补丁,以root身份登录,执行下述命令

unzip p3006854_9204_LINUX.zip

# cd 3006854

# sh rhel3_pre_install.sh

成功完成后,切换到oracle用户继续安装,安装界面出现,却是乱码。


4.2、故障二:安装界面乱码

     故障原因:

       缺少环境变量

     解决办法:

       设置客户端NLS_LANG环境变量之一:

       AMERICAN_AMERICA.WE8MSWIN1252

       AMERICAN_AMERICA.ZHS16GBK

       AMERICAN_AMERICA.AL32UTF8

       然后运行下述命令

       export LANG=C


     接下来运行./runInstaller时可以出现安装界面,对于接下来的步骤不会有太大的问题,只要按归自己的要求和提示就可以完成整个oracle9204的安装。安装之后又出现了下述问题。


4.3、故障三:以oracle身份运行netca命令时,出现下述错误:

       

     以oracle身份运行netca命令时,出现下述错误:

/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中缺少libXp包,因此在安装光盘中找到libXp-1.0.0-8.i386.rpm包,运行rpm -ivh libXp-1.0.0-8.i386.rpm将包打上后问题即可解决。


4.4、故障四:在运行netca配置好监听服务后,运行dbca命令创建数据库时出现下述错误:

     在运行netca配置好监听服务后,运行dbca命令创建数据库时出现下述错误:

/../lib/i686/native_threads/libzip.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so)

Unable to initialize threads: cannot find class java/lang/Thread

Could not create Java VM


     故障原因:

       oracle9204安装过程中使用的是oracle安装文件中自带的java版本,而rhel系统安装的是其它版本的java,并且利用dbca创建数据库时要使用另外安装的java.为了后期可以使用sql develope1.5,java版选择为jdk-6u14-linux-i586-rpm.bin

      安装需要用到两个版本的JRE:一个版本是oracle自带的,在安装数据库软件时用到。还有一个是在用dcba创建数据库时用到,需要1.3.1_15以上版本。


     解决办法:

       以root用户登录下载jdk-6u14-linux-i586-rpm.bin后,在保存jdk-6u14-linux-i586-rpm.bin目录下执行下述命令:

chmod +x jdk-6u14-linux-i586-rpm.bin

./jdk-6u14-linux-i586-rpm.bin

默认安装到/usr/java/jdk6.0.14这个目录


随后切换到oracle用户,执行下述命令:

cd $ORACLE_HOME/db_1

mv JRE JRE_BAK

ln -s /usr/java/jdk6.0.14 JRE


上述步骤执行完后,执行下述步骤:

切换到root用户

# cd $ORACLE_HOME/db_1/JRE/bin/

# ln -s java jre


所有步骤完成后,这个故障解决,运行dbca这个命令,可以成功建数据库了。



4.5、故障五:安装Oracle SQL Developer 1.5.4后,运行sqldeveloper不成功,GNOME环境中运行无反应

      故障原因:

       Oracle SQL Developer 1.5.4的运行需要JDK1.5.0_06以上版本的支持,在解决故障四的时候虽然安装了jdk-6u14-linux-i586-rpm.bin,但是Oracle SQL Developer 1.5.4运行时却找不到所安装的jdk路径。

      解决办法:

        找到/opt/sqldeveloper/sqldeveloper/bin/jdk.conf文件,此文件为默认安装时的位置,在这个文件中加入一行,指定安装的JDK的路径即可

      实验机器jdk的安装路径为/usr/java/jdk1.6.0_14

 

5、配置数据库的自动随系统启动

    oracle数据库安装完成后,尚不能随系统的自动启动而启动,这一部分配置数据库的自动启动。下述操作如无说明,均以root用户操作。


5.1、修改/etc/oratab文件,此文件在安装oracle时自动创建

      在 oratab 文件中的数据库项遵循如下格式:

      ORACLE_SID:ORACLE_HOME:{Y|N}

      为设置自动启动,此处设置为Y

5.2、建立/etc/rc.d/init.d/dbora文件,并赋予执行权限,此文件为dbstart和dbshut 脚本的设定文件

      dbstart 启动脚本为$ORACLE_HOME/bin/中 。dbshut 关闭脚本在   $ORACLE_HOME/bin/中 

      dbora文件内容如下所示:

                 #!/bin/sh

            #

            # chkconfig: - 99 10

# description: Oracle Database Server

# processname: ora_

#

# dbora         This shell script takes care of starting and stopping

#               Oracle Database Server.


SUBSYS=/var/lock/subsys/dbora


dbora_init() {

    # get ORACLE_HOME from the first entry, 

    # whose 3rd field is Y, in /etc/oratab.

    if [ ! -f /etc/oratab ]

    then

        echo "auto startup/shutdown of Oracle: /etc/oratab does not exist." 

        exit 1

    fi

    ORA_HOME=`awk -F: '/^[^#:]+:.+:[Y]$/ { print $2; exit}' /etc/oratab`

    

    if [ x$ORA_HOME = "x" ]; then

        echo "There is not Y entry in /etc/oratab."

        exit 1

    fi

    

    # get oracle's owner from owner of dbstart.

    if [ ! -f $ORA_HOME/bin/dbstart ]

    then

        echo "auto startup/shutdown of Oracle: Oracle may not be installed" \

             "correctly." 

        exit 1

    fi

    ORA_OWNER=`ls -l $ORA_HOME/bin/dbstart | awk '{print $3}'`

}


case "$1" in

'start')

    if [ -f $SUBSYS ]; then

        echo $0 already started.

        exit 1

    fi

    dbora_init

    # Start the Oracle databases:

    su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart"

    su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"

    # Start Intelligent Agent and Oracle Management Server

    # --- for Oracle9i ---

    # su - $ORA_OWNER -c "$ORA_HOME/bin/agentctl start"

    # su - $ORA_OWNER -c "$ORA_HOME/bin/oemctl start oms"

    # --- for Oracle Database 10g ---

    # su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole"

    # --------------------

    # Start the Oracle HTTP Server

    # This is a BUG workaround. $ORACLE_HOME/Apache/Jserv/etc

    # /jserv.properties needs DISPLAY.

    # test -z "$DISPLAY" && export DISPLAY=":60000.0"

    # su - $ORA_OWNER -c "$ORA_HOME/Apache/Apache/bin/apachectl start"

    # --------------------

    touch $SUBSYS

    ;;


'stop')

    if [ ! -f $SUBSYS ]; then

        echo $0 already stopped.

        exit 1

    fi

    dbora_init

    # Stop Intelligent Agent

    # --- for Oracle9i ---

    # su - $ORA_OWNER -c "$ORA_HOME/bin/agentctl stop"

    # --- for Oracle Database 10g ---

    # su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole"

    # --------------------

    # Stop the Oracle HTTP Server

    # su - $ORA_OWNER -c "$ORA_HOME/Apache/Apache/bin/apachectl stop"

    # --------------------

    # Stop the Oracle databases:

    su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"

    su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut"

    rm -f $SUBSYS

    ;;


'restart')

    $0 stop

    $0 start

    ;;


'status')

    if [ -f $SUBSYS ]; then

        echo $0 started.

    else

        echo $0 stopped.

    fi

    ;;

*)

    echo "Usage: $0 {start|stop|status}"

    exit 1

esac


exit 0

5.3 配置dbora文件的运行级别。

使用chmod命令设置权限为750:

chmod 750 /etc/init.d/dbora

使用下面的命令配合适当的运行级别设置dbora服务自动启动:

chkconfig --level 345 dbora on

 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

Search

  •  

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80722 Code detection by Codefense

Copyright 2008-2011 京公网安备 110115000655 京ICP备09005635号 www.qtasp.cn WebSite. All Rights Reserved.