7 返信 最新の回答 日時: Sep 7, 2013 1:28 PM ユーザー:kamikitabanzai

    ORACLE_SIDを指定してもsqlplusで接続出来ない

    kamikitabanzai

      御世話になっています。

       

      現在、oracle restart環境で、sqlplus で接続することが出来ず困っています。

      crsctl stat res -t で状態を診てもDBは立ち上がっているはずなのに、接続するとアイドル状態と表示されてしまうのです。

       

      ちなみにgridユーザは作らずに、oracleユーザをasm関連グループに所属させて構成しています。

       

      どなたか詳しい方、対処法に心当たりなどありませんでしょうか。

       

      OS:OracleLinux 6.4

      DB:11.2.0.3

       

      *******************************************************************************************************************

      $ id

      uid=1521(oracle) gid=1521(oinstall) 所属グループ=1521(oinstall),1522(dba),1530(asmdba),1531(asmadmin) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

       

      $ /u01/app/11.2.0/grid/bin/crsctl stat res -t

      --------------------------------------------------------------------------------

      NAME           TARGET  STATE        SERVER                   STATE_DETAILS 

      --------------------------------------------------------------------------------

      Local Resources

      --------------------------------------------------------------------------------

      ora.DATA.dg

                     ONLINE  ONLINE       dbres01                                

      ora.LISTENER.lsnr

                     ONLINE  ONLINE       dbres01                                

      ora.REDO.dg

                     ONLINE  ONLINE       dbres01                                

      ora.asm

                     ONLINE  ONLINE       dbres01                  Started       

      ora.ons

                     OFFLINE OFFLINE      dbres01                                

      --------------------------------------------------------------------------------

      Cluster Resources

      --------------------------------------------------------------------------------

      ora.cssd

            1        ONLINE  ONLINE       dbres01                                

      ora.diskmon

            1        OFFLINE OFFLINE                                             

      ora.evmd

            1        ONLINE  ONLINE       dbres01                                

      ora.res01.db

            1        ONLINE  ONLINE       dbres01                  Open          

      $

      $ env |grep ORA

      ORACLE_SID=res01

      ORACLE_BASE=/u01/app/oracle

      ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

      [oracle@dbres01 ~]$ sqlplus / as sysdba

      SQL*Plus: Release 11.2.0.3.0 Production on 土 8月 24 01:44:30 2013

      Copyright (c) 1982, 2011, Oracle.  All rights reserved.

      アイドル・インスタンスに接続しました。

      SQL>

      *******************************************************************************************************************

       

      このメッセージは次により編集されています: kamikitabanzai

       

       

      接続したアイドルインスタンスのpfileを出力してみました。

       

      *****************************************************************************************************************

      +ASM.asm_diskgroups='DATA'#Manual Mount

      *.asm_power_limit=1

      *.diagnostic_dest='/u01/app/grid'

      *.instance_type='asm'

      *.large_pool_size=12M

      *.remote_login_passwordfile='EXCLUSIVE'

      *****************************************************************************************************************

       

      どうもinstance_typeがasmになっています。 oracle_sidは設定しているのに存在しないインスタンス名のASMに接続しにいっているようです。

       

      このメッセージは次により編集されています: kamikitabanzai

       

      接続文字列を使って接続しにいくとつながりました。 OS認証がうまくいかないようです。

       

      そういえばOSのrootユーザのパスワードを変更しましたが、関係ないですよね…

        • 1. Re: ORACLE_SIDを指定してもsqlplusで接続出来ない
          yamamoto

          下記の情報を提示できますか?

          /etc/oratab

           

          また、接続文字列を使って接続できた状態でのv$instanceの情報も提示可能なら合わせてお願いします。

          • 2. Re: ORACLE_SIDを指定してもsqlplusで接続出来ない
            kamikitabanzai

            遅くなってすいません。

             

            ・/etc/oratab

            +ASM:/u01/app/11.2.0/grid:N

            res01:/u01/app/oracle/product/11.2.0/db_1/:N # line added by Agent

             

             

            ・v$instance

            SQL> select instance_name from v$instance;

             

             

            INSTANCE_NAME

            ------------------------------------------------

            res01

             

            こんな感じです。

            • 3. Re: ORACLE_SIDを指定してもsqlplusで接続出来ない
              yamamoto

              大文字・小文字の違いか、SIDを間違えているのかとも思いましたが、違う原因の様ですね。

              認証の問題であれば権限不足等のエラーが表示されると思います。(自信無し)

               

              ちょっと原因が思いつかないですねぇ。

              • 4. Re: ORACLE_SIDを指定してもsqlplusで接続出来ない
                user12075536123

                $ env |grep ORA
                ORACLE_SID=res01
                ORACLE_BASE=/u01/app/oracle
                ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

                /etc/oratab
                +ASM:/u01/app/11.2.0/grid:N
                res01:/u01/app/oracle/product/11.2.0/db_1/:N # line added by Agent
                を見る限り問題ないように感じます。

                 

                =====

                 

                oraenvコマンドで環境変数を切り替えてみるのはどうでしょうか?

                1 人が役に立つと言っています
                • 5. Re: ORACLE_SIDを指定してもsqlplusで接続出来ない
                  kamikitabanzai

                  oraenvコマンドで切り替えてみたら成功しました!

                   

                  ***********************************************************************************************

                  [oracle@dbres01 ~]$ . oraenv

                  ORACLE_SID = [oracle] ? res01

                  The Oracle base has been set to /u01/app/oracle

                   

                   

                   

                   

                  [oracle@dbres01 ~]$ env |grep -i ora

                  USER=oracle

                  LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/db_1//lib

                  ORACLE_SID=res01

                  ORACLE_BASE=/u01/app/oracle

                  MAIL=/var/spool/mail/oracle

                  PATH=/usr/NX/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin:/u01/app/oracle/product/11.2.0/db_1//bin

                  PWD=/home/oracle

                  HOME=/home/oracle

                  LOGNAME=oracle

                  ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1/

                   

                   

                   

                   

                  [oracle@dbres01 ~]$ export NLS_LANG=Japanese_Japan.AL32UTF8

                  [oracle@dbres01 ~]$ sqlplus / as sysdba

                   

                   

                  SQL*Plus: Release 11.2.0.3.0 Production on 日 9月 1 21:02:43 2013

                   

                   

                  Copyright (c) 1982, 2011, Oracle.  All rights reserved.

                   

                   

                  Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

                  With the Partitioning and Automatic Storage Management options

                  に接続されました。

                  SQL> sho parameter db_n

                   

                   

                  NAME                                 TYPE

                  ------------------------------------ ---------------------------------

                  VALUE

                  ------------------------------

                  db_name                              string

                  res01

                  ***********************************************************************************************

                   

                   

                   

                  上記の結果を受けてもう一度何がまずいのか、環境変数を比べてみたのですが、ORACLE_HOMEの最後に

                  スラッシュがあるかないかくらいで他に差異が見当たりません。

                  ***********************************************************************************************

                  [oracle@dbres01 ~]$ diff env_oraenv.log env_no_oraenv.log

                  7c7

                  < LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/db_1//lib

                  ---

                  > LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/db_1/lib

                  12c12

                  < PATH=/usr/NX/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin:/u01/app/oracle/product/11.2.0/db_1//bin

                  ---

                  > PATH=/u01/app/oracle/product/11.2.0/db_1/bin:/usr/NX/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin

                  22c22

                  < ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1/

                  ---

                  > ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

                  ***********************************************************************************************

                   

                   

                  以下もう一度oraenvを使わずに実行した結果です。

                   

                  ***********************************************************************************************

                  [oracle@dbres01 ~]$ cat .bash_profile.db

                  export ORACLE_BASE=/u01/app/oracle

                  export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

                  export LD_LIBRARY_PATH=$ORACLE_HOME/lib

                  export PATH=$ORACLE_HOME/bin:$PATH

                  export NLS_LANG=Japanese_Japan.AL32UTF8

                   

                  [oracle@dbres01 ~]$ env |grep -i ora

                  USER=oracle

                  LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/db_1/lib

                  ORACLE_SID=res01

                  ORACLE_BASE=/u01/app/oracle

                  MAIL=/var/spool/mail/oracle

                  PATH=/u01/app/oracle/product/11.2.0/db_1/bin:/usr/NX/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin

                  PWD=/home/oracle

                  HOME=/home/oracle

                  LOGNAME=oracle

                  ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

                   

                  [oracle@dbres01 ~]$ sqlplus / as sysdba

                   

                  SQL*Plus: Release 11.2.0.3.0 Production on 日 9月 1 20:57:10 2013

                   

                  Copyright (c) 1982, 2011, Oracle.  All rights reserved.

                   

                  アイドル・インスタンスに接続しました。

                   

                  SQL>

                  ***********************************************************************************************

                  • 6. Re: ORACLE_SIDを指定してもsqlplusで接続出来ない
                    Habanero3-Oracle

                    >上記の結果を受けてもう一度何がまずいのか、環境変数を比べてみたのですが、ORACLE_HOMEの最後に

                    >スラッシュがあるかないかくらいで他に差異が見当たりません。

                     

                    それが原因と思われます。  oratab 側にスラッシュが入ってしまっていると言う事は

                    インストールか何かで誤ってスラッシュを入れてしまったかと。 それで認識がされている。

                     

                    通常 ORACLE_HOMEの最後にスラッシュは入りません。

                    その状態で export で ORACLE_HOMEの最後に スラッシュをつけると、同じ問題が発生します。

                     

                    多分 export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1/

                     

                    と最後にスラッシュをつければ上手く行くでしょう。

                    • 7. Re: ORACLE_SIDを指定してもsqlplusで接続出来ない
                      kamikitabanzai

                      ご指摘の通りでした。

                       

                      環境変数をオラクルインストール時に設定したものとそろえることで成功しました。

                       

                      ありがとうございます。