ページの先頭行へ戻る
Enterprise Postgres 14 SP1 リファレンス
FUJITSU Software

3.5 pgx_rcvall

名前

pgx_rcvall -- データディレクトリ、テーブル空間および設定ファイルのリカバリ

概要

pgx_rcvall [option…]

説明

pgx_dmpallコマンドでバックアップしたデータとアーカイブ済みWALを使用して、データディレクトリ、テーブル空間および設定ファイルをリカバリします。復旧時点を示すオプションのいずれも指定しない場合、すべてのアーカイブ済みWALを適用して、最新状態にデータをリカバリします。

オプション

-B backupdir

バックアップ格納ディレクトリを指定します。データディレクトリが破壊されている場合、本オプションを省略することはできません。

-D datadir

データディレクトリを指定します。省略時は、環境変数 PGDATA が有効となります。

-e target_time

指定した日時の時点にデータをリカバリする場合に指定します。

target_time

データを復旧する日時を指定します。指定形式は以下のとおりです。

"YYYY-MM-DD HH:MM:SS"
-l

pgx_dmpallコマンドで取得したバックアップ格納ディレクトリ内のバックアップデータの情報を一覧で表示します。pgx_dmpallコマンドにバックアップ用コピーコマンド(-Yオプション)を使用して実行した場合、コピーコマンドでバックアップした対象資源の一覧が追加で表示されます。-p、-eまたは-nオプションと同時に指定することはできません。

-n restore_point

指定したリストアポイントの時点にデータをリカバリする場合に指定します。リストアポイントはSQL関数pg_create_restore_pointにより作成します。同じ名前を持つ複数のリストアポイントを作成した場合、バックアップ取得以降の最初のリストアポイントがリカバリに使用されます。指定したリストアポイントが存在しない場合、リカバリが失敗します。-eおよび-pオプションと同時に指定することはできません。

-p

最後のバックアップが完了した時点にデータをリカバリする場合に指定します。-eおよび-nオプションと同時に指定することはできません。

-x

-eオプションに指定した時刻にコミットしたトランザクションをリカバリに含めない場合に指定します。

-Y copy_command_file
--copy-command=copy_command_file

リカバリ用コピーコマンドのファイルパス名を1024バイト未満の長さで指定します。本プションは-lオプションと同時に指定することはできません。

--keystore-passphrase

キーストアをオープンするためのパスフレーズの入力を促します。

--view-results-of-copying

pgx_dmpallコマンドで実行したコピーコマンドによって書き出されたバックアップ情報ファイルの内容を表示します。-l、-p、-e、-nまたは-Yオプションと同時に指定することはできません。

環境

PGDATA

データディレクトリを指定します。-Dオプションを使用して上書きすることができます。

PGPORT

データベースへ接続するためのポート番号を指定します。

PGUSER

データベースのスーパーユーザーのユーザー名を指定します。 このコマンドを実行している実効ユーザーの名前がデフォルトです。

診断

0: 正常終了

0以外: 異常終了

バックアップデータの情報

Date

pgx_dmpallコマンドによりバックアップデータを作成した年月日

Dir

バックアップデータが格納されている、バックアップ格納ディレクトリ内のディレクトリ名

ディレクトリの命名形式:日時形式(YYYY-MM-DD_HH-MM-SS)

Status

pgx_dmpallコマンドで取得したバックアップデータの状態

COMPLETE : 完了

INCOMPLETE : 未完了

Resources backed up by the copy command

pgx_dmpallコマンドでコピーコマンドによりバックアップした資源の一覧

コピーコマンドでバックアップした資源が存在する場合に、見出しおよび半角カンマ区切りでデータベースクラスタ('pg_data')またはテーブル空間名の一覧が表示されます。

注釈

このコマンドは、-lオプション指定での実行以外は、データベースサーバの停止時にのみ実行できます。

このコマンドは、PostgreSQLユーザーアカウントで実行してください。

リカバリに使用するバックアップデータは、リカバリの対象となるデータディレクトリから取得したものを使用してください。

このコマンドを実行する前に、データベースへ接続を行うすべてのアプリケーションを切断してください。また、リカバリ実行中はデータベースへの接続は行わないようにしてください。

設定ファイルは、pgx_dmpallコマンド(-cオプションを含む)で、最後に取得した設定ファイルの状態に復旧されます。

このコマンドでは、リカバリの終了判定の際に、データベースへ接続します。このため、複数のインスタンスが存在する環境では、リカバリ対象のインスタンスに接続するよう、環境変数PGPORTでポート番号を設定してください

pgx_rcvallとpgx_dmpallを実行するときのOSの時間帯設定を、postgresql.confのtimezoneパラメータで指定されている時間帯に一致させるようにしてください。さもないと、-eまたは-pオプションを指定した場合に、データが意図しない時刻に復旧されてしまうことがあります。

過去の時点に復旧した場合、その復旧時点を起点とする新たな時系列(データベース更新の歴史)が始まります。リカバリが完了したときには、その復旧時点が新たな時系列における最新地点です。以後、最新状態にリカバリする場合には、この新たな時系列上のデータベース更新が再実行されます。

有効なリストアポイントは、バックアップを取得した時系列上で作成したものです。つまり、過去の時点に復旧した場合、以降に設定したリストアポイントは利用できません。したがって、望みの過去データを復元できたら、バックアップを取得してください。

pgx_dmpallコマンドにバックアップ用コピーコマンド(-Yオプション)を使用して実行した場合、本コマンドは、リカバリ用コピーコマンド(-Yオプション)を使用して実行する必要があります。ただし、コピーコマンドでバックアップした対象資源(データベースクラスタまたはテーブル空間)はバックアップディレクトリで記録されているため、本コマンド実行時には対象資源を指定する必要はありません。コピーコマンドでバックアップを取得した対象資源については、-lオプションを使用することで確認できます。

以下は、データディレクトリ、テーブル空間、および設定ファイルを復旧する例です。

    $ pgx_rcvall -B /home/pgsql/Backupdir

以下は、“2022年2月1日 10時0分0秒”の時点にデータディレクトリ、およびテーブル空間を復旧する例です。設定ファイルは、最後に取得した時点に復旧されます。

    $ pgx_rcvall -B /home/pgsql/Backupdir -e "2022-02-01 10:00:00"

以下は、リストアポイント”before_match_20220210_1”の時点にデータディレクトリ、およびテーブル空間を復旧する例です。設定ファイルは、最後に取得した時点に復旧されます。

    $ pgx_rcvall -B /home/pgsql/Backupdir -n before_match_20220210_1

以下は、バックアップ格納ディレクトリに取得されているバックアップデータの情報を一覧で表示させる例です。

    $ pgx_rcvall -l

関連項目

pgx_dmpall