zoukankan      html  css  js  c++  java
  • 关于linux下安装oracle之后,重启系统后oracle失败的问题[转]

    一、linux下无法启动sqlplus
    问题描述:
      [root@localhost oracle]# su - oracle
      [oracle@localhost oracle]$ sqlplus "as/sysdba"
      -bash: sqlplus: command not found
      [oracle@localhost oracle]$ /u01/app/oracle/oracle/product/11.1.0/db_1/bin/sqlplus
      Error 6 initializing SQL*Plus
      Message file sp1.msb not found
      SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
      [oracle@localhost oracle]$
    解决方法:
      
    由于环境变量没有设置导致的。可以编辑.profile文件可以进行环境变量设置的。 
      打开/etc/profile底部插入
      
    export ORACLE_SID=demo1(数据库实例id) 
    export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1 
    export PATH=$PATH:$ORACLE_HOME/bin 
      保存关闭,重启系统或执行source /ect/profile设置立即生效。
      二、启动数据库实例,分为两步:第一步,启动监听;第二步,启动数据库实例。
      1.进入到sqlplus启动实例
      [oracle@redhat ~]$ su - oracle                                 --“切换到oracle用户”
      Password:
      [oracle@redhat ~]$ lsnrctl start                               --“打开监听”
      LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-OCT-2009 19:06:40
      Copyright (c) 1991, 2005, Oracle.  All rights reserved.
      Starting /home/oracle/product/10g/bin/tnslsnr: please wait...
      TNSLSNR for Linux: Version 10.2.0.1.0 - Production
      System parameter file is /home/oracle/product/10g/network/admin/listener.ora
      Log messages written to /home/oracle/product/10g/network/log/listener.log
      Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))
      Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))
      Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))
      STATUS of the LISTENER
      ------------------------
      Alias                     LISTENER
      Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
      Start Date                14-OCT-2009 19:06:40
      Uptime                    0 days 0 hr. 0 min. 0 sec
      Trace Level               off
      Security                  ON: Local OS Authentication
      SNMP                      OFF
      Listener Parameter File   /home/oracle/product/10g/network/admin/listener.ora
      Listener Log File         /home/oracle/product/10g/network/log/listener.log
      Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))
      Services Summary...
      Service "PLSExtProc" has 1 instance(s).
      Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
      The command completed successfully
      [oracle@redhat ~]$ sqlplus /nolog                                --“进入到sqlplus”
      SQL*Plus: Release 10.2.0.1.0 - Production on Wed Oct 14 19:06:45 2009
      Copyright (c) 1982, 2005, Oracle.  All rights reserved.
      SQL> conn /as sysdba                                              --“连接到sysdba”
      Connected to an idle instance.
      SQL> startup                                                     --“启动数据库实例”
      ORACLE instance started.
      Total System Global Area  285212672 bytes
      Fixed Size      1218968 bytes
      Variable Size     88082024 bytes
      Database Buffers   188743680 bytes
      Redo Buffers      7168000 bytes
      Database mounted.
      Database opened.
      SQL> shutdown immediate                                          --“关闭数据库实例”
      Database closed.
      Database dismounted.
      ORACLE instance shut down.
      SQL> exit
      Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
      With the Partitioning, OLAP and Data Mining options
      [oracle@redhat ~]$ lsnrctl stop                                 --“关闭监听”
      LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-OCT-2009 19:08:06
      Copyright (c) 1991, 2005, Oracle.  All rights reserved.
      Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))
      The command completed successfully
       2.用dbstart和dbshut启动和关闭数据库实例
        先启动监听 lsnrctl start
      启动实例  dbstart
      使用dbstart命令启动数据库比较方便,但是在linux上安装好oracle之后,第一次使用dbstart命令可能会报如下错误:
      Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
      看起来貌似是监听没有起来,可是实际上,监听可以成功启动。
      我们来看一下dbstart脚本,该脚本放在$ORACLE_HOME/bin下面。
      搜索dbstart里面的tnslsnr:
      grep tnslsnr dbstart
      返回结果:
      if [ -f $ORACLE
      _HOME_LISTNER/bin/tnslsnr ] ; then
      echo "Failed to auto-start Oracle Net Listene using $ORACLE_HOME_LISTNER/bin/tnslsnr"
      返回结果中发现有$ORACLE_HOME_LISTNER变量,有可能是该变量的路径不对,我们继续搜索ORACLE_HOME_LISTNER
      grep ORACLE_HOME_LISTNER dbstart
      返回结果:
      # 3) Set ORACLE_HOME_LISTNER
      ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
      if [ ! $ORACLE_HOME_LISTNER ] ; then
      echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener"
      LOG=$ORACLE_HOME_LISTNER/listener.log
      if [ -f $ORACLE_HOME_LISTNER/bin/tnslsnr ] ; then
      $ORACLE_HOME_LISTNER/bin/lsnrctl start >> $LOG 2>&1 &
      export VER10LIST=`$ORACLE_HOME_LISTNER/bin/lsnrctl version | grep "LSNRCTL for " | cut -d' ' -f5 | cut -d'.' -f1`
      echo "Failed to auto-start Oracle Net Listene using $ORACLE_HOME_LISTNER/bin/tnslsnr"
      $LOGMSG "Restart Oracle Net Listener using an alternate ORACLE_HOME_LISTNER: lsnrctl start"
      我们发现ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
      中,指定的路径不对,需要对这一行重新编辑,使其路径制定到$ORACLE_HOME
      用vi编辑dbstart,将ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle更改为
      export ORACLE_HOME_LISTNER=$ORACLE_HOME
      然后保存退出,此时再运行dbstart,已经不报错了,但是没有任何反应,ps一下进程,没有oracle的进程,说明oracle实例没有正常启动。
    dbstop 同上设置。 
         此时的原因是在/etc/oratab的设置问题,我们cat一下,发现
      demo1:/home/oracle/product/11.1.0/db_!:N
      最后设置的是"N"(我的环境中只有一个实例,因此只有一行配置语句),我们需要把“N”修改为“Y”。
         以上的工作做好之后,dbstart就可以正常使用了:
         [oracle@redhat bin]$ lsnrctl start                                   --“启动监听”
      LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-OCT-2009 19:44:53
      Copyright (c) 1991, 2005, Oracle.  All rights reserved.
      Starting /home/oracle/product/10g/bin/tnslsnr: please wait...
      TNSLSNR for Linux: Version 10.2.0.1.0 - Production
      System parameter file is /home/oracle/product/10g/network/admin/listener.ora
      Log messages written to /home/oracle/product/10g/network/log/listener.log
      Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))
      Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))
      Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))
      STATUS of the LISTENER
      ------------------------
      Alias                     LISTENER
      Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
      Start Date                14-OCT-2009 19:44:53
      Uptime                    0 days 0 hr. 0 min. 0 sec
      Trace Level               off
      Security                  ON: Local OS Authentication
      SNMP                      OFF
      Listener Parameter File   /home/oracle/product/10g/network/admin/listener.ora
      Listener Log File         /home/oracle/product/10g/network/log/listener.log
      Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC2)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=redhat)(PORT=1522)))
      Services Summary...
      Service "PLSExtProc" has 1 instance(s).
      Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
      The command completed successfully
      [oracle@redhat bin]$ dbstart                                   --“启动数据库实例”
      Processing Database instance "zgz": log file /home/oracle/product/10g/startup.log
      [oracle@redhat bin]$ dbshut                                    --“关闭数据库实例”
      [oracle@redhat bin]$ lsnrctl stop                              --“关闭监听”
      LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 14-OCT-2009 19:45:33
      Copyright (c) 1991, 2005, Oracle.  All rights reserved.
      Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC2)))
      The command completed successfully
         三、如何使数据库实例和linux系统一起启动
      在/etc/rc.d/rc.local中加入如下语句即可实现同系统启动实例:
      su - oracle -c "lsnrctl start"
      su - oracle -c "dbstart"
    四、oracle em(enterprise managment) 打不开
    问题描述:
    http://localhost.localdomain:1158/em 提示该页无法显示。
    解决方法:
      --检查dbconsole服务是否启动,如果没启动执行2,3
      1.emctl status dbconsole
      --设置ORACLE_SID
      --2.SET ORACLE_SID=&ORACLE_SID(我没执行这个,因为在/etc/profile里设置了export ORACLE_SID=demo1)
      --启动DBCONSOLE
      3.emctl start dbconsole
      --设置好ORACLE_SID后输入EMCTL可以查看到此命令的帮助
       五、启动isqlplus 
    [oracle@graduate ~]$ isqlplusctl start  
    iSQL*Plus 10.2.0.1.0  
    Copyright (c) 2003, 2005, Oracle. All rights reserved.  
    warning, got duplicate tcp line.  
    Starting iSQL*Plus ...  
    iSQL*Plus started. 

    http://www.uplook.cn/kbase-Index-show-view18369.html

  • 相关阅读:
    Octave/Matlab初步学习
    week_3
    week_2
    week_1
    清除input[type=number]的默认样式
    js,获取和设置cookie、 localStorage
    php表单提交时获取不到post数据的解决方法
    console.log 简写
    JS合并两个数组的方法
    javascript ES5、ES6的一些知识
  • 原文地址:https://www.cnblogs.com/saptechnique/p/2405349.html
Copyright © 2011-2022 走看看