ページの先頭行へ戻る
Enterprise Postgres 14 SP1 スケールアウト運用ガイド
FUJITSU Software

5.13.3 ノードのリカバリ

5.13.3.1 論理バックアップを使用したリカバリ

論理バックアップはpg_dumpコマンドまたはpg_dumpallコマンドで取得します。中央管理ノードとデータノードそれぞれに対して取得し、中央管理ノード、データノードの順番でリストアします。

シャードに紐付いたテーブル空間、レプリケーションテーブル、全ノード対象のオブジェクトは、中央管理ノード経由でリストアします。これらのデータベースオブジェクトをリストアする場合、中央管理ノードとデータノードの両方をセットアップしてからリストアしてください。

論理バックアップの注意事項

PGXNODEのバックアップとリストア

PGXNODEのバックアップを取得する場合、pg_dumpallコマンドまたはpg_dumpコマンドに--dump-pgxnodesオプションを指定してバックアップを取得してください。共有ユーザーマッピングをバックアップに出力する場合、--dump-shared-user-mappingsを追加で指定してください。

シャードのバックアップとリストア

シャードとシャードに紐付いたテーブル空間のバックアップを取得する場合、pg_dumpallコマンドを使用して、中央管理ノードとデータノード両方のバックアップを取得してください。

中央管理ノードに対しては--dump-shardsオプションを、データノードに対しては--no-shard-tablespacesオプションを指定してバックアップを取得してください。

以下に複数ノードで業務を実行中にバックアップを取得する手順を示します。

  1. シャードをバックアップに含める場合、中央管理ノードに対してpg_dumpall --dump-shardsを実行して中央管理ノードのバックアップを取得します。テーブル空間とシャードを含めない場合はこのオプションを指定せずにpg_dumpallコマンドを実行します。

  2. 中央管理ノードでpgx_scaleout_lock_for_backup()を実行します。

  3. pg_dumpallコマンドを使用して データノードのバックアップを取得します。

  4. 2.のセッションで実行中のpgx_scaleout_lock_for_backup()をキャンセルします。


以下にリストアの手順を示します。

  1. リストア先の中央管理ノードとデータノードを起動します。

  2. 中央管理ノード、データノード上にシャード表が存在する場合、削除します。

  3. 取得したバックアップを使用して中央管理ノードにリストアします。

  4. 取得したバックアップを使用してデータノードにリストアします。

レプリケーションテーブルのバックアップとリストア

レプリケーションテーブルのバックアップを取得する場合、中央管理ノードに対してpg_dumpallコマンドまたはpg_dumpコマンドを実行して、バックアップを取得してください。

レプリケーションオブジェクトをバックアップに出力する場合、--create-replication-objectオプションを指定してバックアップを取得してください。

なお、--create-replication-objectオプションによって出力されるpgx_create_replication_object()のsynchronous_commitにはonが設定されるので、synchronous_commitを変更する場合、リストア後にpgx_alter_replication_object()で変更してください。

以下にバックアップの取得手順を示します。

  1. 中央管理ノードに対してpg_dumpallコマンドまたはpg_dumpコマンドに --create-replication-objectを指定して、バックアップを取得します。


以下にリストアの手順を示します。

  1. リストア先の中央管理ノードとデータノードを起動します。

  2. PGXNODEを定義します。

  3. 中央管理ノード上にレプリケーションテーブル、レプリケーションオブジェクトが存在する場合はすべて削除します。

  4. 取得したバックアップを使用して中央管理ノードをリストアします。

全ノード対象のオブジェクトのバックアップとリストア

全ノード対象のオブジェクトのバックアップを取得する場合、中央管理ノードに対して--dump-set-pgx-ddl-target-nodeオプションを指定してバックアップを取得してください。

リストア先のノード上にすでにリストア対象の全ノード対象オブジェクトが定義されている場合、リストアする前に予めそのオブジェクトを削除してください。

また、全ノード対象として作成したロールまたはデータベースをリストアする場合、initdbスーパーユーザーでリストアしてください。

以下にバックアップの取得手順を示します。

  1. 中央管理ノードに対してpg_dumpallコマンドまたはpg_dumpコマンドに--dump-set-pgx-ddl-target-nodeオプションを指定して、バックアップを取得します。

  2. 中央管理ノードでpgx_scaleout_lock_for_backup()を実行します。

  3. pg_dumpallコマンドまたはpg_dumpコマンドを使用してデータノードのバックアップを取得します。

  4. 2.のセッションで実行中のpgx_scaleout_lock_for_backup()をキャンセルします。


以下にリストアの手順を示します。

  1. リストア先の中央管理ノードとデータノードを起動します。

  2. 取得したバックアップを使用して中央管理ノードにリストアします。

  3. 取得したバックアップを使用してデータノードにリストアします。

5.13.3.2 物理バックアップを使用したリカバリ

物理バックアップを使用したリカバリでは、下記の2つのケースがあります。

pgx_rcvallコマンドを使用せずにリカバリする場合は、下記の作業が必要です。