異なるサーバへの Oracle と ArcSDE のインストール

Oracle とは異なるサーバに ArcSDE アプリケーション サーバをインストールする場合は、ジオデータベースのセットアップに追加の手順が必要になります。具体的には、ArcSDE サーバへの Oracle クライアントのインストールおよび設定、共有ライブラリの ArcSDE サーバから Oracle サーバへのコピー、このライブラリを検索するための EXTPROC の設定、ArcSDE サーバでの TWO_TASK または LOCAL 環境変数の設定などがあります。

手順:
  1. サーバに Oracle がインストール済みで、実行されていることを確認します。
  2. トピック「ArcSDE for Oracle の Linux または UNIX へのインストール」または「ArcSDE for Oracle の Windows へのインストール」の説明に従って、ArcSDE サーバに ArcSDE をインストールします。
  3. ArcSDE をインストールしたサーバに Oracle クライアント ソフトウェアをインストールし、Oracle データベースに接続するように設定します。
  4. クライアント サーバから SQL を使用してリモートの Oracle データベースにアクセスできることを確認します。
  5. 必要に応じて sde ユーザを追加したり、Linux または UNIX 上の sde OS ユーザに対して変数を設定したりして、Oracle データベースを設定します。
  6. EXTPROC で使用する st_shape 共有ライブラリを Oracle サーバにコピーします。ST_Raster 格納タイプを使用する場合は、libst_raster_ora 共有ライブラリも Oracle サーバにコピーします。これらのファイルの正確な名前は、使用している OS(オペレーティング システム)によって異なります。サポートされている各 OS での完全な名前を表 1 に示します。

    Oracle サーバにコピーするファイルは、Oracle サーバのオペレーティング システム上で実行されるため、たとえば、ArcSDE を Linux コンピュータにインストールし、Oracle を Solaris コンピュータにインストールしている場合、Oracle サーバには、Solaris 対応のファイルをコピーする必要があります。異なるオペレーティング システムに対応したファイルを取得するには、Oracle サーバに ArcSDE コンポーネントのソフトウェア ファイルをインストールします。SDEHOME にファイルが作成されるので、必要なライブラリ ファイルを除くすべてのファイルを削除します。

    Oracle データベースが Windows サーバにインストールされている場合は、ArcGIS Desktop の bin ディレクトリからライブラリをコピーすることができます。使用している ArcSDE と ArcGIS Desktop が同じリリースであることを確認してください。

    表 1

    ライブラリ名

    OS に依存したファイル名

    ST_Shape

    st_shapelib.dll(Windows)、libst_shapelib.so(Solaris、Linux、HP-UX Itanium)、または libst_shapelib_64.so(IBM)

    ST_Raster

    メモメモ:

    ST_Raster のインストールは任意です。ST_Raster タイプを使用する場合は、「Oracle での ST_Raster タイプのインストール」の手順をご参照ください。

    libst_raster_ora.dll(Windows)、libst_raster_ora.so(Solaris、Linux、HP-UX Itanium)、または libst_raster_ora_64.so(IBM)

    ArcSDE をインストールすると、これらのファイルは SDEHOME の bin ディレクトリ(Windows)または lib ディレクトリ(UNIX/Linux)に格納されます。これらのファイルを、Oracle サーバの ORACLE_HOME\bin ディレクトリ(Windows)または ORACLE_HOME/bin ディレクトリ(UNIX/Linux)にコピーしてください。これは Oracle が共有ライブラリを検索するデフォルト ディレクトリです。あるいは、ORACLE_HOME を所有するユーザがアクセスできるディレクトリにこれらのファイルをコピーすることができます。

  7. Oracle データ ディクショナリのライブラリ定義を、st_shapelib および libst_raster_ora が含まれるファイルへの正しいライブラリ パスで更新する必要があります。このパスは、ArcSDE をインストールした場所ではなく、Oracle サーバ上の場所を示す必要があります。
    メモメモ:

    ライブラリ パスの定義を変更すると、このパスを参照しているパッケージ本体が無効になります。したがって、ArcSDE ストアド プロシージャ パッケージの中には、そのパッケージ本体を Oracle で再コンパイルすることが必要になるものがあります。

  8. ArcSDE 管理者ユーザ(SDE ユーザ)として、次の SQL コマンドを使用して、これらの ArcSDE ライブラリに対する Oracle ライブラリのエントリを作成します。

    Windows サーバの場合は、<full_path> をライブラリのパスで置き換えて、次のコマンドを実行します。

    CREATE OR REPLACE LIBRARY st_shapelib AS '<full_path>\st_shapelib.dll' 
    CREATE OR REPLACE LIBRARY libst_raster AS '<full_path>\libst_raster_ora.dll'

    UNIX サーバまたは Linux サーバの場合は、<full_path> をライブラリのパスで置き換えて、正しいライブラリ名を指定し、次のコマンドを実行します。

    CREATE OR REPLACE LIBRARY st_shapelib AS '<full_path>/libst_shapelib.so'
    CREATE OR REPLACE LIBRARY libst_raster AS '<full_path>/libst_raster_ora.so'

    メモメモ:

    UNIX プラットフォームでのライブラリの正確な名前は複数あります。使用しているオペレーティング システムの正しいライブラリ名については、表 1 をご参照ください。

  9. st_shapelib ライブラリと libst_raster_ora ライブラリを検索できるように Oracle EXTPROC を設定します。この設定は、データベース サーバのリスナー 構成ファイルである listener.ora および tnsnames.ora ファイルで行います。
    1. リモート データベース サーバの tnsnames.ora ファイルに次のエントリを追加します。

      EXTPROC_CONNECTION_DATA =
        (DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = 
           (PROTOCOL = IPC)
            (KEY = extproc)  
           ) 
         ) 
          (CONNECT_DATA = 
           (SID = PLSExtProc) 
            (PRESENTATION = RO) 
           ) 
        ) 

    2. リモート データベース サーバの listener.ora ファイルの SID_LIST に次のエントリを追加します。

      Windows サーバの場合

      SID_LIST_LISTENER = 
       (SID_LIST =   
        (SID_DESC = 
         (SID_NAME = PLSExtProc) 
         (ORACLE_HOME =<ORACLE_HOME_PATH>) 
         (PROGRAM = extproc)
          (ENVS="EXTPROC_DLLS=<full_lib_path>\st_shapelib.dll;<full_lib_path>\libst_raster_ora.dll")  
         )
        )

      st_shapelib ライブラリと libst_raster_ora ライブラリのエントリがセミコロンで区切られていることに注意してください。

      UNIX サーバまたは Linux サーバの場合

      SID_LIST_LISTENER =
       (SID_LIST = 
        (SID_DESC = 
          (SID_NAME = PLSExtProc) 
          (ORACLE_HOME =<ORACLE_HOME_PATH>) 
          (PROGRAM = extproc)
             (ENVS="EXTPROC_DLLS=<full_lib_path>/libst_shapelib.so:<full_lib_path>\libst_raster_ora.so,LD_LIBRARY_PATH=<full_lib_path>")   
         )
        )

      メモメモ:

      パス変数(例では LD_LIBRARY_PATH)は、使用しているオペレーティング システムによって異なります。HP-UX Itanium の場合、変数は SHLIB_PATH になります。IBM AIX の場合、変数は LIBPATH になります。

      さらに、前述したように、ライブラリ名はオペレーティング システムに応じて異なります。正しいライブラリ名を使用するようにしてください。

  10. Oracle のリスナーを再起動します。
  11. ジオデータベースを作成するために必要な権限が SDE ユーザにあることを確認します。
  12. 各 OS に対応したトピックの説明にある、ArcSDE のポスト インストールの手順を実行します。Windows サーバの場合は、「Windows 上の Oracle に格納するジオデータベースの作成」および「Windows 上の Oracle に格納された ArcSDE ジオデータベースの認証」をご参照ください。Linux サーバまたは UNIX サーバの場合は、「Linux または UNIX 上の Oracle に格納するジオデータベースの作成」および「Linux または UNIX 上の Oracle に格納された ArcSDE ジオデータベースの認証」をご参照ください。
  13. ジオデータベースへの接続に ArcSDE サービスを使用する場合は、サービスを設定します。ArcSDE がインストールされているオペレーティング システムに応じて、次のどちらかの手順を実行してください。
  14. ArcSDE サーバ上の Oracle クライアントからリモート インスタンスに接続するには、ネット サービス名でリモート Oracle インスタンスを識別できるように、環境変数を設定する必要があります。
    • ArcSDE サーバが UNIX または Linux 上にある場合は、$SDEHOME/etc/dbinit.sde ファイルで、TWO_TASK 変数の値を Oracle ネット サービス名に設定します。また、ORACLE_HOME 変数の設定も必要です。
    • ArcSDE サーバが Windows 上にある場合は、%SDEHOME%\etc\dbinit.sde ファイルで、LOCAL 変数の値を Oracle ネット サービス名に設定します。

    TWO_TASK 変数または LOCAL 変数を使用して、ローカル Oracle データベースへの Net サービス名を指定することができます。ただし、データベースへの接続時にオーバーヘッドが増えるため推奨されていません。ローカル接続の場合は、Oracle_SID を使用するようにしてください。

  15. tnsnames.ora ファイルがデフォルトの場所に格納されていない場合は、TNS_ADMIN 変数を設定します。

関連項目


3/6/2012