異なるサーバへの Oracle と ArcSDE のインストール
Oracle とは異なるサーバに ArcSDE アプリケーション サーバをインストールする場合は、ジオデータベースのセットアップに追加の手順が必要になります。具体的には、ArcSDE サーバへの Oracle クライアントのインストールおよび設定、共有ライブラリの ArcSDE サーバから Oracle サーバへのコピー、このライブラリを検索するための EXTPROC の設定、ArcSDE サーバでの TWO_TASK または LOCAL 環境変数の設定などがあります。
- サーバに Oracle がインストール済みで、実行されていることを確認します。
- トピック「ArcSDE for Oracle の Linux または UNIX へのインストール」または「ArcSDE for Oracle の Windows へのインストール」の説明に従って、ArcSDE サーバに ArcSDE をインストールします。
- ArcSDE をインストールしたサーバに Oracle クライアント ソフトウェアをインストールし、Oracle データベースに接続するように設定します。
- クライアント サーバから SQL を使用してリモートの Oracle データベースにアクセスできることを確認します。
- 必要に応じて sde ユーザを追加したり、Linux または UNIX 上の sde OS ユーザに対して変数を設定したりして、Oracle データベースを設定します。
-
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 を所有するユーザがアクセスできるディレクトリにこれらのファイルをコピーすることができます。
-
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 をご参照ください。
-
st_shapelib ライブラリと libst_raster_ora ライブラリを検索できるように Oracle EXTPROC を設定します。この設定は、データベース サーバのリスナー 構成ファイルである listener.ora および tnsnames.ora ファイルで行います。
-
リモート データベース サーバの tnsnames.ora ファイルに次のエントリを追加します。
EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC) (KEY = extproc) ) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )
-
リモート データベース サーバの 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 になります。
さらに、前述したように、ライブラリ名はオペレーティング システムに応じて異なります。正しいライブラリ名を使用するようにしてください。
-
リモート データベース サーバの tnsnames.ora ファイルに次のエントリを追加します。
- Oracle のリスナーを再起動します。
- ジオデータベースを作成するために必要な権限が SDE ユーザにあることを確認します。
- 各 OS に対応したトピックの説明にある、ArcSDE のポスト インストールの手順を実行します。Windows サーバの場合は、「Windows 上の Oracle に格納するジオデータベースの作成」および「Windows 上の Oracle に格納された ArcSDE ジオデータベースの認証」をご参照ください。Linux サーバまたは UNIX サーバの場合は、「Linux または UNIX 上の Oracle に格納するジオデータベースの作成」および「Linux または UNIX 上の Oracle に格納された ArcSDE ジオデータベースの認証」をご参照ください。
-
ジオデータベースへの接続に ArcSDE サービスを使用する場合は、サービスを設定します。ArcSDE がインストールされているオペレーティング システムに応じて、次のどちらかの手順を実行してください。
- Windows サーバでは、ポスト インストール ウィザードを使用してサービスを作成および開始することはできません。リモート サービスを作成する方法については、「リモート Windows サーバから ArcSDE サービスを作成する」をご参照ください。サービスを開始する手順については、「Windows でのリモート ArcSDE サービスの開始」をご参照ください。
- Linux サーバまたは UNIX サーバの場合は、サービスを開始します。「Linux または UNIX でのリモート ArcSDE サービスの開始」をご参照ください。
-
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 を使用するようにしてください。
- tnsnames.ora ファイルがデフォルトの場所に格納されていない場合は、TNS_ADMIN 変数を設定します。
ライブラリ パスの定義を変更すると、このパスを参照しているパッケージ本体が無効になります。したがって、ArcSDE ストアド プロシージャ パッケージの中には、そのパッケージ本体を Oracle で再コンパイルすることが必要になるものがあります。