Standard または Advancedのライセンスで利用可能。
pg_dump コマンドを使用して作成したアーカイブ ファイルからデータベースを復元するには、pg_restore コマンドを使用します。 必ず、テスト データベースでバックアップおよび復旧モデルをテストしてください。
注意:
ジオデータベース、または ST_Geometry がインストールされたデータベースを復元する場合、最初に public スキーマと sde スキーマ、次にその他のスキーマという順序でスキーマを復元する必要があります。 これに従わないと、一部のフィーチャクラスが復元されないことがあり、復元されたフィーチャクラスには、空間インデックスが作成されません。
構文のオプションなど一般的な復元方法については、PostgreSQL のドキュメントをご参照ください。 また、PostGIS がインストールされていて、ジオメトリまたはジオグラフィ格納を使用する場合は、データベースのバックアップ作成と復元に関する PostGIS のドキュメントを必ずお読みください。 PostGIS のバージョンによって手順が異なることがあります。
- データベース名は、PostgreSQL データベース クラスターにおいて一意である必要があります。そのため、同じデータベース クラスターに復元する場合、既存のデータベースを削除する必要があります。
dropdb –U sde mypgdb
- 新しいデータベース クラスターに復元する場合、psql にサイン インし、sde ログイン ロールを再作成してから、それにスーパーユーザー権限を付与します。
CREATE ROLE sde LOGIN ENCRYPTED PASSWORD '0shallpass' SUPERUSER INHERIT;
- 新しいデータベース クラスターに復元する場合、すべてのデータ所有者のログイン ロールを再作成します。
このとき、編集者および読み取り専用のログイン ロールを作成することもできますが、それらのログイン ロールはデータベースの復元には不要です。
以下のサンプル スクリプトを実行して、データ所有者、編集者、および読み取り専用のログイン ロールを作成し、それらのログイン ロールをグループ化して適切なグループに追加します。
--Re-create dataowners group and login roles. CREATE ROLE dataowners NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; CREATE ROLE owner1 LOGIN ENCRYPTED PASSWORD 'pw.4.owner1' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; GRANT dataowners TO owner1; CREATE ROLE owner2 LOGIN ENCRYPTED PASSWORD 'pw.4.owner2' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; GRANT dataowners TO owner2; --Re-create editors group and login roles. CREATE ROLE editors NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; CREATE ROLE editor1 LOGIN ENCRYPTED PASSWORD 'pw.4editor1' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; GRANT editors TO editor1; CREATE ROLE editor2 LOGIN ENCRYPTED PASSWORD 'pw.4editor2' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; GRANT editors TO editor2; --Re-create readers group and login roles. CREATE ROLE readers NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; CREATE ROLE reader1 LOGIN ENCRYPTED PASSWORD 'pw.4reader1' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; GRANT readers TO reader1; CREATE ROLE reader2 LOGIN ENCRYPTED PASSWORD 'pw.4reader2' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; GRANT readers TO reader2;
- 新しいデータベース クラスターに復元し、ジオデータベースで ST_Geometry 空間タイプが使用されている場合、st_geometry ライブラリを PostgreSQL の lib ディレクトリに配置します。
st_geometry ライブラリの配置の詳細については、「Linux での PostgreSQL のジオデータベースの作成」または「Windows での PostgreSQL のジオデータベースの作成」をご参照ください。
- データベースを再作成します。
これを行うには、コマンド ラインまたは psql ステートメントで createdb ステートメントを使用します。
注意:
新しいデータベースには、必ず復元対象のデータベースと同じプロパティ (名前、エンコーディング、所有者など) が設定されるようにします。
次の例では、createdb コマンド ライン ツールを使用し、UTF8 エンコーディングを指定して mypgdb という名前のデータベースを作成しています。このデータベースは sde ログイン ロールが所有し、テーブルスペース tblspgdb に置かれます。
createdb –U sde –E UTF8 –D tblspgdb -O sde mypgdb
- sde ログイン ロールが所有する sde スキーマを新しいデータベースに作成します。 sde スキーマに対する使用権限を、ジオデータベースにアクセスするすべてのログイン ロールまたはグループに付与します。
CREATE SCHEMA sde AUTHORIZATION sde; GRANT USAGE ON SCHEMA sde TO dataowners; GRANT USAGE ON SCHEMA sde TO editors; GRANT USAGE ON SCHEMA sde TO readers;
- sde スキーマを含むように新しいデータベースの検索パスを変更します。
ALTER DATABASE mypgdb SET SEARCH_PATH="$user",public,sde;
- コマンド ラインで pg_restore コマンドを使用して、public スキーマと sde スキーマおよびそれらのデータを復元します。
スーパーユーザー権限を持つログイン (postgres ユーザーなど) を使用してコマンドを実行します。
たとえば、mypgdb31oct.dump というデータベースのバックアップ ファイルの public スキーマと sde スキーマをデータベース mypgdb に復元するには、次を実行します。
pg_restore -U sde -d mypgdb -n public -n sde mypgdb31oct.dump
- 最後に、残りのスキーマとそのデータを復元します。
pg_restore –U sde –d mypgdb mypgdb31oct.dump
- データベースの復元が完了したら、ArcGIS Pro からデータベースに接続し、すべてのデータが復元されたことを確認します。