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

5.12.3 整合性のあるリストアポイントの設定

データベースを、ある決めた時点にリカバリしたい場合に備え、リカバリによってデータを戻したい時点にリストアポイントを作成することができます。

リストアポイントを使用して、過去の時点にリカバリする可能性がある場合、ここで説明する考慮が必要です。

例えば、中央管理ノード経由で、データノード1とデータノード2の両方を更新するトランザクションを実行したケースを考えます。このトランザクションは、内部的にデータノード1でcommitされ、データノード2でcommitするという順序で動作したとします。ここで、データノード1でcommitされたが、データノード2ではcommitされていない状態にリカバリしてしまうと、トランザクションが不整合な状態となってしまいます。

過去の時点にリカバリする可能性がある場合、中央管理ノードで関数pgx_create_consistent_restore_point()を実行して、整合性のあるリストアポイントを作成してください。整合性のあるリストアポイントを作成すると、内部で新たな2相コミットを抑止し、全ノードで整合性のある状態を作ります。リカバリ時にはpgx_rcvallコマンドに整合性のあるリストアポイントを指定することで、全ノードで整合性のある状態にリカバリすることができます。

# SELECT pgx_create_consistent_restore_point('batch_20200503_1');

なお、整合性のあるリストアポイントは、下記のケースでも内部的に作成されます。

また、内部的に、prefixがpostgres_scaleout_fdw_crpの論理デコードのメッセージがWALに出力されます。

なお、整合性のあるリストアポイントを作成する際には、各ノードに通信を行うため、実行するユーザーには、各ノードへのユーザーマッピングが必要になります。