6 Replies Latest reply: Nov 14, 2011 12:48 AM by 898973 RSS

    DatabaseServerとClientを同一サーバにインスールする際のInventoryパスについて

    898973
      表題の件についてご存知でしたら教えていただけないでしょうか。

      【環境】
      OS:hpuxv3
      DB:OracleDatabaseEE 11.2.0.1.0

      1.まず、オラクルのDatabaseServerをインストールした際に以下のように設定しました。
      ・インベントリディレクトリパス:/opt/app/oracle/oraInventory

      出力されたメッセージ: [INS-32055: 中央インベントリはOracleベースにあります]

      ※ORACLE_BASE:/opt/app/oracle
      ※ソフトウェアの場所:/opt/app/oracle/product/11.2.0/dbhome_1

      →インストールは無事に完了

      2.次に同一サーバにオラクルのClientをインストールした際にDatabaseServerと同様に
        以下のように設定しようとしたところ
      ・インベントリディレクトリパス:/opt/app/oracle/oraInventory

       以下のメッセージが出力されて作成できませんでした。
      [INS-32055: 中央インベントリはOracleベースにあります]
      [INS-32035: 新しい中央インベントリ・ディレクトリを作成することができません]

      3.結局、以下の様に設定してインストールしました。
      ・インベントリディレクトリパス:/opt/app/oracle/clinet/oraInventory

      →インストールは無事に完了

      4./var/opt/oracle/oraInst.locに記載されているインベントリディレクトリパスは
       「inventory_loc=/opt/app/oracle/client/oraInventory」
      となりました。


      上記手順で、最終的にはインストールできましたが、
      私の認識ではオラクル製品をインストールする際は同一のインベントリディレクトリパスと
      認識していたのですがこの認識は違うのでしょうか。
      それとも、このメッセージ[INS-32055: 中央インベントリはOracleベースにあります]が
      表示されたように「ORACLE_BASE」配下に指定しているのが原因なのでしょうか。
      仮にインベントリディレクトリパスを「/opt/app/oraInventory」のようにORACLE_BASEの上位に
      設定すれば、databaseとClientのインベントリディレクトリパスは同一にできるのでしょうか?
      また、今回のような設定した場合、なにか問題がおこる可能性はありますでしょうか。

      ※以前は「ORACLE_BASE」配下にインベントリディレクトリパスを指定していたとおもうのですが。。。

      以上、よろしくお願いします。
        • 1. Re: DatabaseServerとClientを同一サーバにインスールする際のInventoryパスについて
          Takashi Matsuoka
          ぱっと分かる部分のみ連絡します。(参考になれば幸いです。)
          私の認識ではオラクル製品をインストールする際は同一のインベントリディレクトリパスと
          認識していたのですがこの認識は違うのでしょうか。
          はい、わたしもその認識です。
          http://download.oracle.com/docs/cd/E16338_01/install.112/b57779/pre_install.htm#CIHIBHIG
          • 2. Re: DatabaseServerとClientを同一サーバにインスールする際のInventoryパスについて
            898973
            リプライありがとうございます。

            やはり、認識通りで問題ないんですね。
            ということは、やはり警告がでたようにインベントリディレクトリパスがOracle_BASE配下にあるのが原因なのでしょうか。。。
            • 3. Re: DatabaseServerとClientを同一サーバにインスールする際のInventoryパスについて
              Blueloco
              それとも、このメッセージ[INS-32055: 中央インベントリはOracleベースにあります]が
              表示されたように「ORACLE_BASE」配下に指定しているのが原因なのでしょうか。
              /opt/app/oracle/clinet/oraInventory でもORACLE_BASE配下であることに変わりないのでは…?
              [INS-32035: 新しい中央インベントリ・ディレクトリを作成することができません]
              とあるので、DatabaseServerとClientをインストールしているユーザーが異なる等、パーミッションが原因だったりするかもしれません。
              また、今回のような設定した場合、なにか問題がおこる可能性はありますでしょうか。
              はい。
              /opt/app/oracle/oraInventory が書き変わってしまっているので、DatabaseServer側のインベントリにアクセスできなくなっています。
              パッチ適用やアンインストール等、インベントリにアクセスする必要がある操作を行う際に、/opt/app/oracle/oraInventoryを書き換える必要があります。
              • 4. Re: DatabaseServerとClientを同一サーバにインスールする際のInventoryパスについて
                898973
                リプライありがとうございます。
                Blueloco wrote:
                それとも、このメッセージ[INS-32055: 中央インベントリはOracleベースにあります]が
                表示されたように「ORACLE_BASE」配下に指定しているのが原因なのでしょうか。
                /opt/app/oracle/clinet/oraInventory でもORACLE_BASE配下であることに変わりないのでは…?
                →インストーラではインベントリパスはORACLE_BASE配下ではなく、その上位ディレクトリを設定することを推奨しているようでした。([INS-32055: 中央インベントリはOracleベースにあります]←このメッセージの詳細に記載されていました。)
                ちなみにインストーラのデフォルト値も 「/opt/app/oraInventoryとなっていましたが、
                DatabaseServerのインストール時に明示的にORACLE_BASE配下(/opt/app/oracle/oraInventory)に設定を変更してインストールしました。


                >
                [INS-32035: 新しい中央インベントリ・ディレクトリを作成することができません]
                とあるので、DatabaseServerとClientをインストールしているユーザーが異なる等、パーミッションが原因だったりするかもしれません。
                →ServerもClientも同じoracleユーザでインストールしたので、パーミッション等の影響は低いと考えていますが、
                現状も「drwxrwx--- oracle oinstall /opt/app/oracle/」となっています。
                ちなみに、[INS-32035: 新しい中央インベントリ・ディレクトリを作成することができません]の
                メッセージの原因は指定したディレクトリが空でないといけないと言っているようです。(メッセージの詳細に記載されている処置方法では「別の場所にするか、クリーンアップしてください」と記載されています。)
                また、今回のような設定した場合、なにか問題がおこる可能性はありますでしょうか。
                はい。
                /opt/app/oracle/oraInventory が書き変わってしまっているので、DatabaseServer側のインベントリにアクセスできなくなっています。
                パッチ適用やアンインストール等、インベントリにアクセスする必要がある操作を行う際に、/opt/app/oracle/oraInventoryを書き換える必要があります。
                →やはり、問題がありそうなのですね。
                ただ、現状では以下のようにインストールされているプロダクトとしてそれぞれ表示されています。この場合でもやはり問題が起こる可能性はあるのでしょうか。
                $ ./opatch.pl lsinventory -detail

                Oracle Client 11.2.0.1.0
                Oracle Database 11g 11.2.0.1.0



                通常、ServerとClientを同一サーバ上にインストールする際に
                異なったインベントリパスを設定するのが基本なのでしょうか。
                それとも、同じパスに設定できるものなのでしょうか。
                仕様で出来ないのか、それとも何か設定が誤って出来ないのでしょうか。。。
                • 5. Re: DatabaseServerとClientを同一サーバにインスールする際のInventoryパスについて
                  Blueloco
                  たまたま壊そうとしている検証環境があったため、Clientをインストールしてみました。

                  Linux 32bit、11.2.0.2の環境でしたが、

                  inventory_loc=$ORACLE_BASE/oraInventory
                  ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 (DBServer側)
                  ORACLE_HOME=$ORACLE_BASE/product/11.2.0/client_1   (Client側)

                  の設定で全く問題なくインストールできました。
                  何のエラーも警告も出ませんでしたし、インベントリの場所は聞いてもきませんでした。
                  11.2.0.2以降で動作が変わった(或いは11.2.0.2で修正された不具合)、とかあるのかもしれませんが…。
                  • 6. Re: DatabaseServerとClientを同一サーバにインスールする際のInventoryパスについて
                    898973
                    Blueloco さん
                    本現象について検証してくださり、ありがとうございます。

                    その後、いろいろと調べた結果、原因がわかりました。
                    結論から申し上げると、アクセス権限に問題がありました。
                    やはり、皆さんがいうとおり、DatabaseServerとClientを同一サーバにインスールしても、Inventoryパスは同一で問題ないようです。

                    以下が詳細です。
                    ・DatabaseServerのインストール時に実行する「root.sh」スクリプトを実行するとInventoryパスを管理する「oraInst.loc」ファイルを作成しますが、その格納先である「/var/opt/oracle」ディレクトリが作成される際、rootユーザのumaskを「027」としていたため、otherに対してアクセス権が付与されずに作成されました。
                    ・その状態でClientのインストールを行ったため、Clientインストール時にはoracleユーザが「/var/opt/oracle/oraInst.loc」ファイルにアクセスできないことにより、インベントリ情報をよみとれず、システムにOracle製品がインストールされていないと判断され、Clientのインストール時においてもインベントリ情報の入力を求められました。(本来、既にオラクル製品が導入されていれば、インベントリ情報は求められないようです。)
                    ・そのため、DatabaseServerと同じインベントリパスを設定しても、新規のインベントリパスと認識され、空のディレクトリを指定してくださいというエラーになり、DatabaseServerと同じインベントリパスを作成することができなかったのが原因でした。

                    結果的にこちらの設定ミスが原因で、お手数をおかけしてしまいましたが、この場でいろいろと参考になる情報を得たことにより、現象を解決できました。

                    みなさん、ありがとうございました。

                    Edited by: 895970 on 2011/11/13 22:47