バックアップ ファイルを使用した EGDB インスタンスへのジオデータベースの移動
PostgreSQL の既存の ArcSDE ジオデータベースを、EGDB(エンタープライズ ジオデータベース)インスタンス間で移動したり、ローカル サーバから EGDB インスタンスに移動することができます。
そのためには、移動元ジオデータベースのバックアップの作成、移動先 EGDB インスタンスへのバックアップ ファイルの転送、および移動先 PostgreSQL データベース クラスタでのデータベースとログイン ロールの作成を行った後、データベースの復元を実行します。
変数のカスタム設定の確認
データベースの内容を新しいデータベース クラスタに移動するときに、ダンプ ファイルを復元する空のデータベースを作成します。したがって、復元を行う前に、移動元データベースのカスタム設定を新しいデータベースに追加する必要があります。
たとえば、ArcGIS アプリケーションでは、データベースの search_path 変数に sde スキーマを含めるように設定する必要があります。この変数に加え、移動元データベースで設定されているすべての変数を、新しいデータベースに追加する必要があります。このためには、移動元データベースで設定されている内容を確認しておく必要があります。
これらの設定は pgAdmin III で確認できます。
- pgAdmin III を使用して、移動元データベース クラスタに接続します。
- [オブジェクトブラウザ] ウィンドウで [データベース] ノードを展開します。
- 移動元データベースを右クリックし、[プロパティ] をクリックします。
[データベース] ダイアログ ボックスが表示されます。
- [変数] タブをクリックし、設定されているカスタム データベース変数を確認します。
- これらの変数とその設定値を記録します。この情報は、新しいデータベースにこれらの変数を作成し直す際に使用します。
移動元ジオデータベースのバックアップの作成
データベースのバックアップを作成して、データ ファイルを EGDB インスタンスに転送できます。
PostgreSQL の pg_dump アプリケーションを使用して、ダンプ ファイルを作成します。
- 移動元ジオデータベースが格納されているサーバに接続します。
- MS-DOS プロンプトで pg_dump コマンドを実行して、データベースのバックアップを作成します。
pg_dump -U postgres -F c > d:\backups\spdb.dump
pg_dump アプリケーションの詳細については、PostgreSQL のドキュメント(http://www.postgresql.org/docs/8.3/static/app-pgdump.html)をご参照ください。
EGDB インスタンスへのバックアップ ファイルの移動
ダンプ ファイルは、いくつかの方法で移動先 EGDB インスタンスに転送できます。データを移動する方法については、「Amazon へのデータの転送方法」をご参照ください。
ダンプ ファイルは EBS(Elastic Block Storage)ボリュームに配置してください。
ダンプ ファイルを移動先の EGDB インスタンスに転送したら、続いて PostgreSQL データベース クラスタを準備します。
移動先 PostgreSQL データベース クラスタでの復元の準備
ダンプ ファイルの復元先となるデータベースが必要です。また、移動元データベースでデータを所有しているすべてのログイン ロールも、移動先のデータベース クラスタに存在している必要があります。
空のデータベースの作成
作成するデータベースには、移動元 PostgreSQL データベース クラスタでダンプ ファイルを作成したデータベースと同じ名前を付ける必要があります。データベースの名前は、データベース クラスタ内で一意でなければなりません。つまり、EGDB インスタンス間でデータベースを移動する場合は、以下のいずれかに注意してください。
- デフォルトの sdegdb データベースを移動元データベースにすることはできません。
または
- 転送したバックアップ ファイルから復元を行う前に、移動先 PostgreSQL データベース クラスタからデフォルトの sdegdb データベースを削除する必要があります。
- pgAdmin III を起動します([スタート] → [すべてのプログラム] → [PostgreSQL 8.3] → [pgAdmin III] の順にクリックします)。
- 移動先 PostgreSQL データベース クラスタに、postgres スーパー ユーザとしてログインします。
- [オブジェクトブラウザ] ウィンドウでデータベース クラスタを展開します。
- [データベース] を右クリックし、[新しいデータベース] をクリックします。
[新しいデータベース] ダイアログ ボックスが表示されます。
- 移動先データベースを作成するために必要な情報を入力します。以下の情報に注意してください。
- 移動先データベースの名前、所有者、およびエンコーディングは、移動元データベースの情報と同じにする必要があります。
- 移動元データベースでデフォルト以外のデータベース テンプレート(PostGIS データベース テンプレートなど)を使用している場合は、移動先データベースでもそのテンプレートを使用します。
- 新しいデータベースを既存の表領域に格納するか、このデータベース用に新しい表領域を作成できます。新しい表領域を使用する場合は、[新しいデータベース] ダイアログ ボックスで [キャンセル] をクリックし、EBS ドライブに表領域を作成します。続いて、もう一度 [新しいデータベース] ダイアログ ボックスを開き、移動先データベースを作成します。
以下に、データベースを作成するために入力する情報の例を示します。
- [OK] をクリックして、データベースを作成します。
pgAdmin III の [オブジェクトブラウザ] ウィンドウのデータベース リストに、新しいデータベースが表示されます。
データベースでの変数の設定
次に、前の手順で収集したカスタム データベース変数の情報を使用して、新しいデータベースに変数を設定します。
以下の手順では、search_path 変数を追加する方法を説明します。その他のデータベース変数のカスタム値を設定するには、同じ基本手順を使用します。
- [オブジェクトブラウザ] ウィンドウでデータベースを右クリックし、[プロパティ] をクリックします。
- [変数] タブをクリックします。
- [変数名] ドロップダウン リストで [search_path] を選択します。
- [変数値] テキスト ボックスに「"$user",public,sde」と入力します。
- [追加/変更] をクリックします。
[変数] リストは以下のようになります。
必要なその他の変数を、[変数名] ドロップダウン リストで選択し、値を設定して [追加/変更] をクリックし、すべて追加します。
ログイン ロールの作成
移動先データベース クラスタには、移動元データベースでデータを所有している各ユーザのログイン ロールが含まれている必要があります。
EGDB インスタンス間でデータベースを移動するときにデフォルトのログイン ロールを使用していれば、移動先データベース クラスタに新しいロールを作成する必要はありません。ただし、移動元データベースのデータをデフォルト以外のログイン ロールが所有している場合は、移動先 PostgreSQL データベース クラスタに同じ名前のログイン ロールを作成する必要があります。
- [オブジェクトブラウザ] ウィンドウで [ログインロール] を右クリックします。
- [新しいログインロール] をクリックします。
- ログイン ロールを作成するために必要な情報を入力します。以下の情報に注意してください。
- ロールの名前は、移動元データベースのロールと一致している必要があります。
- ロールには、少なくともデータベース オブジェクトを作成する権限が必要です。
- [OK] をクリックして、ログイン ロールを作成します。
- 移動元データベースでデータを所有しているログイン ロールごとに、手順 1 ~ 4 を繰り返します。
データベースの復元
PostgreSQL の pg_restore アプリケーションを使用して、データベースを復元します。
- 移動元ジオデータベースが格納されているサーバに接続します。
- MS-DOS プロンプトで pg_restore コマンドを実行し、データベースのパブリック スキーマを復元します。
pg_restore コマンドは、PostgreSQL のスーパー ユーザが実行する必要があります。
pg_restore -U sde -n public -d spdb d:\backups\spdb.dump Password:
- もう一度 pg_restore コマンドを実行し、データベース全体を復元します。
pg_restore -U sde -d spdb d:\backups\spdb.dump Password:
pg_restore アプリケーションの詳細については、PostgreSQL のドキュメント(http://www.postgresql.org/docs/8.3/static/app-pgrestore.html)をご参照ください。
移動先の PostgreSQL データベース クラスタにデータベースを復元した後、スキーマとテーブルが新しいデータベースに正しく作成されていることを確認します。このためには、pgAdmin III でデータベース クラスタに接続し、新しいデータベースを右クリックして [リフレッシュ] をクリックし、データベースを展開してスキーマとその内容を確認します。