3.8.3. ベースバックアップの作成
pg_basebackup ユーティリティーを使用すると、バックアップと復元のために、データベースの整合性の取れたスナップショットを取得し、PostgreSQL ベースバックアップを作成できます。
ベースバックアッププロセスは、WAL アーカイブ領域に保存され、ベースバックアップに必要な最初の WAL セグメントファイルにちなんで名付けられたバックアップ履歴ファイルを作成します。
バックアップ履歴ファイルは、開始時間および終了時間、およびバックアップの WAL セグメントが含まれる小さなテキストファイルです。ラベル文字列を使用して関連するダンプファイルを特定した場合は、バックアップ履歴ファイルを使用して復元するダンプファイルを判断できます。
データを確実に復元できるようにするために、複数のバックアップセットを維持することを検討してください。
前提条件
-
postgresスーパーユーザー、データベース管理者特権を持つユーザー、または少なくともREPLICATION権限を持つその他のユーザーとしてログインしている。 - ベースバックアップ中およびベースバックアップ後に生成されたすべての WAL セグメントファイルを保持する必要があります。
手順
pg_basebackupユーティリティーを使用してベースバックアップを実行します。個々のファイル (プレーン形式) としてベースバックアップを作成するには、以下を実行します。
$ pg_basebackup -D <backup_directory> -Fpbackup_directory は、任意のバックアップの場所に置き換えます。
テーブルスペースを使用し、サーバーと同じホストでベースバックアップを実行する場合は、
--tablespace-mappingオプションも使用する必要があります。そうしないと、バックアップを同じ場所に書き込もうとすると、バックアップが失敗します。tarアーカイブ (tarおよび圧縮形式) としてベースバックアップを作成するには、以下を実行します。$ pg_basebackup -D <backup_directory> -Ft -zbackup_directory は、任意のバックアップの場所に置き換えます。
このようなデータを復元するには、ファイルを正しい場所に手動で抽出する必要があります。
pg_basebackup が接続するデータベースサーバーを指定するには、以下のコマンドラインオプションを使用します。
ホストを定義する
-hオプションデフォルトのホストは、ローカルホストまたは
PGHOST環境変数により指定されたホストです。ポートを定義する
-pオプションデフォルトのポートは、
PGPORT環境変数またはコンパイル済みデフォルトで示されます。
- ベースバックアッププロセスが完了すると、バックアップ履歴ファイルで指定されている、データベースクラスターのコピーとバックアップ中に使用された WAL セグメントファイルを安全にアーカイブします。
- ベースバックアップで使用されている WAL セグメントファイルよりも数値が小さい WAL セグメントを削除します。これらはベースバックアップよりも古く、復元には必要ないためです。