PostgreSQL に格納されたジオデータベースを、バックアップ ファイルを使用して ArcGIS Server on Amazon Web Services サイトに移動する
既存の PostgreSQL のエンタープライズ ジオデータベースを、バックアップ ファイルを使用して、ローカル サーバから ArcGIS Server on Amazon Web Services インスタンスに、または ArcGIS Server on Amazon Web Services インスタンスの間で移動できます。
このためには、ソース ジオデータベースのバックアップを作成し、バックアップ ファイルをターゲット ArcGIS Server on Amazon Web Services インスタンスに転送します。続いて、ターゲット PostgreSQL データベース クラスタにデータベースとログイン ロールを作成して、データベースを復元します。
カスタム変数設定の確認
ソース データベース クラスタのカスタム設定を保持する場合は、これらを新しいデータベース クラスタに追加する必要があります。構成設定は postgresql.conf ファイルに格納されています。このファイルのコピーを作成し、 ArcGIS Server on Amazon Web Services インスタンス上のターゲット データベース クラスタに移動します。
ArcGIS Server on Amazon Web Services インスタンス上の postgresql.conf ファイルは、マウントされているドライブの /data にあります。
ソース ジオデータベースのバックアップの作成
データベースのバックアップを作成し、データ ファイルを ArcGIS Server on Amazon Web Services インスタンスに転送できます。
PostgreSQL の pg_dump アプリケーションを使用して、ダンプ ファイルを作成します。
- ソース ジオデータベースが格納されているサーバに接続します。
- シェル コマンド プロンプトで pg_dump コマンドを実行して、データベースのバックアップを作成します。
pg_dump -U postgres -F c > /data/spdbbu11012.dump
pg_dump アプリケーションの詳細については、http://www.postgresql.org/docs/9.0/static/app-pgdump.html で PostgreSQL のマニュアルをご参照ください。
ターゲット ArcGIS Server on Amazon Web Services インスタンスへのバックアップ ファイルの移動
ダンプ ファイルをターゲット インスタンスに転送するには、いくつかの方法があります。データの移動に利用できる方法については、「Amazon へのデータの転送方法」をご参照ください。必要な場合は、postgresql.conf ファイルも同じ方法を使用して移動できます。
ダンプ ファイルは EBS(Elastic Block Store)ボリュームに配置してください。
ダンプ ファイルをターゲット ArcGIS Server on Amazon Web Services インスタンスに移動したら、PostgreSQL データベース クラスタを準備します。
ターゲット PostgreSQL データベース クラスタでの復元の準備
ダンプ ファイルを復元するデータベースが必要です。また、ソース データベースでデータを所有しているログイン ロールが、ターゲット データベース クラスタに存在している必要があります。
構成ファイルの配置
カスタマイズした postgresql.conf ファイルを使用している場合は、ターゲット インスタンスでデフォルトの postgresql.conf ファイルのバックアップ コピーを作成し、カスタマイズしたファイルをマウントされているドライブの /data に配置します。
空のデータベースの作成
作成するデータベースの名前は、ダンプ ファイルを作成したソース PostgreSQL データベース クラスタのデータベースと同じにする必要があります。データベース名は、データベース クラスタ内で一意である必要があります。したがって、 ArcGIS Server on Amazon Web Services インスタンスの間でデータベースを移動する場合は、次のいずれかを満たす必要があります。
- デフォルト データベース(egdb または geodata)のいずれかをソース データベースにすることはできません。
または
- 転送したバックアップ ファイルを復元する前に、同じ名前のデフォルト データベースを PostgreSQL データベース クラスタから削除する必要があります。
- ターゲット ArcGIS Server on Amazon Web Services インスタンスにルート ユーザとしてログインします。
- コマンド シェルを開き、psql に sde ユーザとしてログインします。
- ダンプ ファイルを復元するデータベースを作成します。
次の情報に注意してください。
- ターゲット データベースの名前、所有者、およびエンコーディングは、ソース データベースと同じにする必要があります。
- ソース データベースでデフォルト以外のデータベース テンプレート(PostGIS データベース テンプレートなど)を使用している場合は、ターゲット データベースでも同じテンプレートを使用します。
- 新しいデータベースは既存の表領域に格納するか、このデータベース専用に新しい表領域を作成できます。新しい表領域を使用する場合は、データベースを作成する前に作成しておく必要があります。
CREATE DATABASE <dbname> WITH OWNER = sde TEMPLATE = template0 ENCODING = '<encoding of db>' TABLESPACE = LC_COLLATE = '' LC_CTYPE = '' CONNECTION LIMIT = -1;
ログインおよびグループ ロールの作成
ターゲット データベース クラスタには、ソース データベースでデータを所有している各ユーザのログイン ロールが含まれている必要があります。
データベースを ArcGIS Server on Amazon Web Services インスタンス間で移動している場合、デフォルトのログイン ロールを使用しているときは、ターゲット データベース クラスタに新しいロールを作成する必要はありません。ただし、ソース データベースのデータがデフォルト以外のログイン ロールによって所有されている場合は、ターゲット PostgreSQL データベース クラスタに同じ名前のログイン ロールを作成する必要があります。同様に、ターゲット データベースでグループ ログインを使用する場合は、これらを作成し直してログイン ロールに付与する必要があります。
グループおよびログイン ロールの作成とグループへのログインの追加については、PostgreSQL のマニュアルをご参照ください。
データベースの復元
データベースを復元するには、PostgreSQL の pg_restore アプリケーションを使用します。
pg_restore コマンドは 2 回実行する必要があります。最初の実行で sde_spatial_references システム テーブルを含むパブリック スキーマを復元し、2 回目の実行で残りのデータを復元します。この手順を実行しなければ、空間データは復元されません。
- 復元先の ArcGIS Server on Amazon Web Services インスタンス(ダンプ ファイルを移動したインスタンス)に接続します。
- コマンド シェルを開き、psql に sde ユーザとしてログインします。
- コマンド シェル プロンプトで pg_restore コマンドを実行し、パブリック スキーマをデータベースに復元します。
pg_restore コマンドを実行するには、sde ユーザが PostgreSQL のスーパーユーザである必要があります。
pg_restore -U sde -n public -d spdb /data/spdbbu11012.dump Password:
- もう一度 pg_restore コマンドを実行し、データベース全体を復元します。
pg_restore -U sde -d spdb /data/spdbbu11012.dump Password:
pg_restore アプリケーションの詳細については、http://www.postgresql.org/docs/9.0/static/app-pgrestore.html で PostgreSQL のマニュアルをご参照ください。
データベースをターゲット PostgreSQL データベース クラスタに復元した後、新しいデータベースのスキーマとテーブルが適切であることを確認します。確認するには、この情報を格納している PostgreSQL カタログ ビューにクエリを実行します。たとえば、pg_tables カタログ ビューにクエリを実行して、データベース内のすべてのテーブルと、それらが格納されているスキーマを表示できます。
データベースの変数の設定
次に、収集しておいたカスタム データベース変数の情報を使用して、新しいデータベースに変数を設定します。
次の手順では、search_path 変数を追加および設定する方法を説明しています。その他のデータベース変数にカスタム値を設定する場合も、同様の基本手順を使用します。
- psql から新しいデータベースに sde ユーザとして接続します。
- psql プロンプトで、データベースの検索パスを sde スキーマを含むように設定します。
SET search_path TO "$user",public,sde;