121,121...正在赶来!请不要走开哦...
Logo Background RSS

Linux 下 Oracle 的安装 (三)

  • Written by SUNJIANSUNJIAN 这里有个游子,来陪陪她吧!1 条评论 Comments (506 views)

    由于今晚工作到深夜,没办法,工作又有空闲,不是属于无人值守型所以就将前两次没有整理完的LINUX 下的ORACLE 安装笔记清理干净。受人所托,忠人之事啊!今晚让服务器陪我到天亮吧!!!本来一个很简单的系统UPDATE,但是这个系统偏偏就是被HACK了所以才需要UPDATE,所以要升级还要先搞定攻击,不然也不能可怜了我的睡眠啊!!郁闷之…不过到此时已经快搞定了,估计到三点的时候我就可以睡觉了。汗死…明天还要上课!

    废话完了下面是 Red Hat Enterprise Linux 4 下安装 Oracle 10g 剩下的全部内容! Daniel 就送君到此啦,多珍重!

    5.3 设置在安装Oracle的机器上以oracle用户安装
    # xhost localhost:oracle

    二、以oracle用户登录, 进行如下操作

    1 配置oracle用户的环境变量
    1.1 切换到Oracle用户
    # su - oracle
    $ cd

    1.2 设置环境变量
    $ vi .bash_profile (在文件后面添加如下内容)
    复制内容到剪贴板
    代码:

    export ORACLE_BASE=/usr/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
    export ORACLE_SID=SHDB
    export PATH=$PATHHOME/binORACLE_HOME/bin
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
    export LANG=zh_CN.GBK
    export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK

    1.3 使环境变量生效
    $ source .bash_profile

    1.4 设置本地字符集类型
    $ export LC_CTYPE=en_US.UTF-8

    2 开始安装
    说明:为了便于后结安装,最好在安装前打开两个shell窗口,1个以root登录,另外1个以oracle登录

    2.1 $ ./runInstaller

    2.2 根据安装提示进行相应操作,中间需要root执行2个脚本:
    # $ORACLE_BASE/oraInventory/orainstRoot.sh
    # $ORACLE_HOME/root.sh
    说明:把$ORACLE_BASE和$ORACLE_HOME替换成实际的目录即可

    2.3 安装过程中,不要选择创建数据库;

    其它就没什么了,只须根据提示进行相应操作,直至安装成功。

    三、安装过程的问题

    1 Q: 执行./runInstaller后,弹不出安装界面,提示如下错误信息:
    ———————————————————————————————
    Xlib: connection to “:0.0″ refused by server
    Xlib: No protocol specified
    Error: Can’t open display: :0.0

    A: 在安装Oracle的机器上,以root身份运行命令:
    # xhost localhost:oracle

    2 Q:安装时,弹出的界面出现乱码
    ———————————————————————————————
    A:以oracle用户身份,设置本地字符集类型
    $ export LC_CTYPE=en_US.UTF-8

    3 Q:安装过程中,提示OUI-10066错误:
    Not all the dependencies for the component Oracle Database 10g 10.2.0.1.0 could be found.
    Missing component oracle.doc 10.2.0.1.0.
    ———————————————————————————————
    A:可能是oracle安装文件没有完全解压缩,重新解压缩一下再安装
    注意:若用root解压后,更改其属主为oracle

    4 Q:INFO: /bin/sh: /usr/bin/gcc: No such file or directory
    ……
    INFO: cannot stat `ntcontab.o’
    INFO: No such file or directory
    ……
    Exception Name: MakefileException
    Exception String: Error in invoking target ‘ntcontab.o’ of
    makefile ‘/usr/app/oracle/product/10.2.0/db_1/network/lib/ins_net_client.mk’
    ———————————————————————————————
    A: 检查Linux系统的所有补丁是否安装,尤其是gcc包,然后再继续安装

    四 创建与配置数据库(使用oracle用户登录RHEL)

    1 创建数据库
    1.1 以oracle用户登录RHEL, 输入:
    $ dbca
    1.2 在输入数据库SID时, 要注意保持与oracle配置文件的$ORACLE_SID的值一致.
    否则,创建完数据库后就启动不了(具体看下节).

    2 配置服务名
    修改listener.ora
    $ vi $ORACLE_HOME/network/admin/tnsname.ora
    增加以下内容:
    ————————————————————————–
    # 说明: 把HOST的值设置为你要安装数据库那台机器的IP
    SHDB =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.135.128)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SERVICE_NAME = SHDB)
    )
    )

    3 配置数据库的监听器
    3.1 修改listener.ora
    $ vi $ORACLE_HOME/network/admin/listener.ora
    输入以下内容:
    ————————————————————————–
    # 说明: 把HOST的值设置为你要安装数据库那台机器的IP
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.135.128)(PORT = 1521))
    )
    )

    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = /usr/app/oracle/product/10.2.0/db_1)
    (PROGRAM = extproc)
    )
    (SID_DESC =
    (SID_NAME = SHDB)
    (ORACLE_HOME = /usr/app/oracle/product/10.2.0/db_1)
    )
    )

    3.2 启动监听器
    $ lsnrctl start

    4 启动数据库
    $ sqlplus / as sysdba
    $ startup
    若数据库能正常启动, 则配置到此结束

    五、配置数据库的问题

    1 Q: TNS-01155: Incorrectly specified SID_LIST
    NL-00303: syntax error in NV string
    ———————————————————————————————
    A: 可能是profile中设置的sid和你创建的DB的SID不一致

    (1) 查看数据库的SID是否与.bash_profile的ORACLE_SID一致
    $ echo $ORACLE_SID
    $ ls $ORACLE_HOME/dbs/init*.ora

    (2) 修改.bash_profile的ORACLE_SID为你创建DB的SID, 然后保存并生效
    $ source .bash_profile

    (3) 创建pfile
    $ sqlplus /nolog
    SQL> connect /as sysdba
    SQL> create pfile=’/usr/app/oracle/product/10.2.0/db_1/initSHDB.ora’ from spfile=’/usr/app/oracle/product/10.2.0/db_1/dbs/spfileSHDB.ora’;
    SQL> startup pfile=’/usr/app/oracle/product/10.2.0/db_1/initSHDB.ora’

    SQL> startup nomount pfile=’/usr/app/oracle/product/10.2.0/db_1/initSHDB.ora’

    SQL> startup
    说明: 把pfile和spfile的路径修改成这两个文件在系统的实际位置即可

    2 Q: ORA-01102:cannot mount database in EXCLUSIVE mode
    ———————————————————————————————
    A: 可能是关闭异常,造成数据库已经装载或共享的假象,而造成以下问题:

    (1) “lk<sid>” and “sgadef<sid>.dbf”这两个用于锁内存的文件存在着。
    oracle$cd $ORACLE_HOME/dbs
    oracle$ls -l sgadef<sid>.dbf
    * 如果存在删掉它
    oracle$rm sgadef<sid>.dbf
    oracle$ls -l lk<sid>
    * 如果存在删掉它
    oracle$rm lk<sid>

    (2) pmon、smon、lwgw及dbwr这些后台进程依然存在着
    oracle$ps -ef | grep ora_ | grep $ORACLE_SID
    * 如果有pmon这些后台进程的残留,kill -9掉它
    oracle$kill -9 pid

    (3) Oracle开辟的共享内存没有释放掉
    ① 清共享内存段
    oracle$ipcs -m   –显示一下,看owner是Oracle用户的
    oracle$ipcrm -m <Shared_Memory_ID>
    ② 清信号集
    oracle$ipcs -s   –显示一下,看owner是Oracle用户的
    oracle$ipcrm -s <Semaphore_ID>

    看到最后的朋友,当然要给点好处了啊,不然以后谁还看DANIEL的东西啊,哈哈…

    好处就是在最后这里提供了我整理的文档下载啦,哈哈,猛击这里下载 Red Hat Enterprise Linux 4 下安装 Oracle 10g 的安装指南

    最后给点提示,各位同仁请注意适用环境 :Red Hat Enterprise Linux 4

    THANKS!

  • 我们的说明!

    欢迎转载,但请您以链接形式注明本文出处和本站原文链接,下面是链接形式,谢谢合作!
    出处链接:Allove of Paradise
    原文链接:http://blog.allove.org/archives/setup-oracle-on-linux-3.html
1 条评论
  1. #1 sanding
    8月 26th, 2008 at 6:45 下午

    虽然不懂,还是要赞Daniel~~~

    [回复]

    Post ReplyPost Reply
Leave a Comment