他のバージョンの文書 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

pg_combinebackup

pg_combinebackup — 増分バックアップと依存するバックアップ群からフルバックアップを再構築する

概要

pg_combinebackup [option...] [backup_directory...]

説明

pg_combinebackupは、増分バックアップとそれが依存する以前のバックアップから、合成フルバックアップを再構築するために使用されます。

コマンドラインで、古いバックアップから最新のバックアップまで、必要なすべてのバックアップを指定します。 つまり、最初のバックアップディレクトリはフルバックアップへのパスでなければならず、最後のバックアップはリストアしたい最後の増分バックアップへのパスでなければなりません。 再構築されたバックアップは、-oオプションで指定された出力ディレクトリに書き込まれます。

pg_combinebackupは、指定したバックアップが正しいフルバックアップを再構築できる正当なバックアップチェーンを形成しているかどうかを検証します。 ただし、どのバックアップがどのバックアップに依存しているかを追跡するための機能は備えていません。 増分バックアップが依存する以前のバックアップを1つでも削除すると、その増分バックアップはリストアできなくなります。 さらに、pg_combinebackupは、バックアップが互いに正しい関係を持っているかどうかを検証するだけで、個々のバックアップが損なわれていないかどうかは検証しません。そのためにはpg_verifybackupを使用してください。

pg_combinebackupの出力は合成フルバックアップであるため、将来のpg_combinebackupの呼び出しの入力として使用できます。 再構築に使われたバックアップチェーンの代わりに合成フルバックアップをコマンドラインで指定します。

オプション

-d
--debug

stderrに大量のデバッグログを出力します。

-n
--dry-run

-n/--dry-runオプションは、ターゲットディレクトリや出力ファイルを実際には作成せずに、pg_combinebackupが何を行うかを報告します。 これは--debugと組み合わせて使用すると特に便利です。

-N
--no-sync

デフォルトでは、pg_combinebackupはすべてのファイルがディスクに安全に書き込まれるまで待機します。 このオプションを指定すると、pg_combinebackupは待機せずに返ります。 これは高速ですが、後続のオペレーティングシステムのクラッシュによって出力バックアップが破損する可能性があります。 通常、このオプションは試験用では有用ですが、実用のインストレーションを作成する際に使用すべきではありません。

-o outputdir
--output=outputdir

合成フルバックアップを書き込む出力ディレクトリを指定します。 現在、この引数は必須です。

-T olddir=newdir
--tablespace-mapping=olddir=newdir

バックアップ時にディレクトリolddir内のテーブル空間をnewdirに再配置します。 olddirはコマンドラインで指定された最終バックアップに存在するテーブル空間の絶対パスで、newdirは再構築されたバックアップでテーブル空間に使用される絶対パスです。 どちらかのパスに等号(=)が含まれる場合、その前にバックスラッシュを置きます。 このオプションは、複数のテーブル空間に対して複数回指定できます。

--clone

新しいデータディレクトリにファイルをコピーする代わりに、効率的なファイルクローニング(一部のシステムではreflinksとも呼ばれます)を使用します。これによりデータファイルをほぼ瞬時にコピーすることができます。

バックアップマニフェストが使用できない場合、または正しいタイプのチェックサムが含まれていない場合、ファイルコピーのためにクローニングが使われますが、ファイルはチェックサム計算のためにブロックごとに読み取られます。

ファイルのクローニングは、一部のオペレーティングシステムおよびファイルシステムでのみサポートされています。 選択されているけれどもサポートされていない場合、pg_combinebackupの実行はエラーになります。 現在、Linux(カーネル4.5以上)のBtrfsと、XFS(reflinkを有効にして作成されたファイルシステム)、および、macOSのAPFSでサポートされています。

--copy

通常のファイルコピーを行います。 これがデフォルトです(--copy-file-rangeおよび--cloneも参照してください。)

--copy-file-range

システムコールcopy_file_rangeを使用して、効率的なコピーを行います。 ファイルシステムによって、物理ディスクブロックを共有して--cloneと似た効果を得られるものもあれば、依然としてブロックをコピーするものの最適化されたパスを介して動作するものもあります。 現在、LinuxとFreeBSDでサポートされています。

バックアップマニフェストが利用できないか、正しいタイプのチェックサムを含んでいない場合、copy_file_rangeはファイルをコピーするために使用されますが、ファイルはチェックサム計算のためにブロックごとに読み取られます。

--manifest-checksums=algorithm

pg_basebackupと同様に、pg_combinebackupはバックアップマニフェストを出力ディレクトリに書き込みます。 このオプションは、バックアップマニフェストに含まれる各ファイルに適用されるチェックサムアルゴリズムを指定します。 現在利用可能なアルゴリズムは、NONECRC32CSHA224SHA256SHA384SHA512です。 デフォルトはCRC32Cです。

--no-manifest

バックアップマニフェストの生成を無効にします。 このオプションを指定しない場合、再構築されたバックアップのバックアップマニフェストが出力ディレクトリに書き込まれます。

--sync-method=method

デフォルトのfsyncに設定すると、pg_combinebackupはバックアップディレクトリ内の全てのファイルを再帰的にオープンして同期します。 plain形式を使用する場合、ファイルの検索はWALディレクトリと設定された各テーブル空間のシンボリックリンクをたどります。

Linuxでは、syncfsを代わりに使用して、バックアップディレクトリを含むファイルシステム全体を同期するようにオペレーティングシステムに要求できます。 plain形式を使用する場合、pg_combinebackupはWALファイルと各テーブル空間を含むファイルシステムも同期させます。 syncfsを使用する際に注意すべき注意事項については、recovery_init_sync_methodを参照してください。

このオプションは--no-syncが使われている場合は効果がありません。

-V
--version

pg_combinebackupのバージョンを出力して終了します。

-?
--help

pg_combinebackupコマンドライン引数についてのヘルプを表示して終了します。

制限事項

pg_combinebackupは出力ディレクトリを書き込む際にページチェックサムを再計算しません。 したがって、再構築に使用されたバックアップのいずれかがチェックサム無効で取得され、最終バックアップがチェックサム有効で取得された場合、結果のディレクトリは無効なチェックサムを持つページを含む可能性があります。

この問題を回避するには、pg_checksumsを使用してクラスタのチェックサム状態を変更した後に新しいフルバックアップを取ることをお勧めします。 別な方法としては、問題を修正するためにpg_combinebackupによって生成されたディレクトリのチェックサムを無効にした後、必要に応じて再度有効にすることができます。

環境

このユーティリティは、他のほとんどのPostgreSQLユーティリティと同様、libpqでサポートされる環境変数を使用します(32.15を参照してください)。

環境変数PG_COLORは診断メッセージで色を使うかどうかを指定します。 指定可能な値はalwaysautoneverです。

関連項目

pg_basebackup