‘Appendix’

概念

次の概念は、pgBackRest、PostgreSQL、およびこのユーザーガイドに関連するものとして定義されています。

バックアップ

バックアップは、ハードウェア障害からの回復、ポイントインタイムリカバリの実行、または新しいスタンバイの起動のために復元できるデータベースクラスターの一貫したコピーです。

完全バックアップ : pgBackRestはデータベースクラスターのコンテンツ全体をバックアップにコピーします。データベースクラスターの最初のバックアップは常に完全バックアップです。 pgBackRestは、完全バックアップを直接復元します。完全バックアップは、一貫性のために完全バックアップの外部のファイルに依存しません。

差分バックアップ : pgBackRestは、最後の完全バックアップ以降に変更されたデータベースクラスターファイルのみをコピーします。差分バックアップを復元するために、 pgBackRestは選択された差分バックアップ内のすべてのファイルと、以前の完全バックアップから変更されていない適切なファイルをコピーします。差分バックアップの利点は、完全バックアップよりも必要なディスク領域が少ないことですが、差分バックアップを復元するには、差分バックアップと完全バックアップが有効である必要があります。

インクリメンタルバックアップ : pgBackRestは、最後のバックアップ(インクリメンタルバックアップ、差分バックアップ、または完全バックアップ)以降に変更されたデータベースクラスターファイルのみをコピーします。増分バックアップには、前回のバックアップ以降に変更されたファイルのみが含まれるため、一般的には完全バックアップまたは差分バックアップよりもはるかに小さくなります。増分バックアップでは、増分バックアップを復元する前に他のバックアップが有効である必要があります。増分バックアップには最後のバックアップ以降に変更または追加されたファイルのみが含まれるため、増分バックアップを復元するには、以前のすべての増分バックアップ(以前の差分バックアップおよび以前の完全バックアップ)が有効である必要があります。差分バックアップが存在しない場合、増分バックアップを復元するには、以前のすべての増分バックアップ(以前の完全バックアップと完全バックアップ自分自身)が有効である必要があります。

復元する

復元とは、ライブデータベースクラスターとして起動されるシステムにバックアップをコピーする行為です。復元が正しく動作するには、バックアップファイルと1つ以上のWALセグメントが必要です。

ログ先行書き込み(WAL)

WALロギングは、コミットされた変更が失われないようにするためにPostgreSQLが使用するメカニズムです。トランザクションはWALにシーケンシャルに書き込まれ、これらの書き込みがディスクにフラッシュされると、トランザクションはコミットされたと見なされます。その後、バックグラウンドのライタプロセスがメインデータベースクラスターファイル (ヒープとも呼ばれます) に変更を書き込みます。クラッシュが発生した場合、データベースの一貫性を保つためにWALが再生されます。

WALは概念的には無限ですが、実際にはセグメントと呼ばれる個々の16MBのファイルに分割されます。 WALセグメントは命名規則0000000100000A1E000000FEに従います。最初の8桁の16進数はタイムラインを表し、次の16桁はログシーケンス番号(LSN)です。

暗号化

暗号化とは、適切なパスワード(パスフレーズとも呼ばれます)を入力しない限り認識できない形式にデータを変換するプロセスです。リポジトリ内に保存されているデータへの不正アクセスを防ぐために、pgBackRestはユーザーが指定したパスワードで認証した後にリポジトリを暗号化します。


構成リファレンス

プロジェクトのドキュメントには、コマンドと構成キーの完全なリストがあります。

pgBackRest全体をコマンドラインパラメーターで使用できますが、複数のオプションを即座に構成する場合、複雑なインストールでは構成ファイルの方が実用的です。構成ファイルのデフォルトの場所は/etc/pgbackrest/pgbackrest.conf です。構成ファイルがその場所に存在しない場合、代わりに古い/etc/pgbackrest.conf ファイルがロードされます(存在する場合)。

コマンドラインオプションでシークレットを指定しないように、構成ファイルを使用することもお勧めします。

グローバル

構成ファイルのglobalセクションを使用して、デフォルト値を設定します。

グローバルセクションでは、特定のコマンドを呼び出すときに使用される値を定義することもできます。たとえば、次の構成設定は archive-push コマンドの圧縮レベルを指定します。

[global:archive-push]
compress-level=3

スタンザ

スタンザ は、データベースクラスターの場所、データベースクラスターのバックアップの方法、使用可能なアーカイブオプションなどを定義するデータベースクラスター構成です。 ほとんどのデータベースサーバーには1つのデータベースクラスターのみがあるため、スタンザ;一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにスタンザがあります。

スタンザ名はプライマリとすべてのレプリカに使用されるため、mainやprodなどのローカルインスタンス名ではなく、appやdwなどの実際のファンクションを説明する名前を選択することをお勧めします。

スタンザレベルの設定は、グローバル構成設定をオーバーライドします。

コマンドライン引数と環境変数

オプションをコマンドライン引数または環境変数として構成することもできます。

  • コマンドラインで非ブール引数を使用するには、オプションの前に2つのダッシュを付けます。

  • コマンドラインでブールオプションをfalseに設定するには、 --no- プレフィックスを使用します。

  • 環境変数を設定するには、オプション名を大文字にし、先頭にPGBACKREST_を付け、ダッシュをアンダースコアに置き換えます。

次の表は、 pgbackrest.conf ファイル、コマンドライン引数、および環境変数を使用してオプションを指定する方法を示しています。

Configuration File

Command Line Argument

Environment Variable

pg1-host=1.2.3.4

--pg1-host=1.2.3.4

PGBACKREST_PG1_HOST=1.2.3.4

compress=y

--compress

PGBACKREST_COMPRESS=y

delta=n

--no-delta

PGBACKREST_DELTA=n

オプションの優先順位

すべてのオプションの優先順位(高いものから低いもの)は次のとおりです。

  • コマンドライン引数

  • 環境変数

  • [stanza:command]

  • [stanza]

  • [global:command]

  • [global]

  • デフォルト(内部)

スタンザでの複数のデータベースホストの構成

各スタンザは複数のデータベースホストを構成できます。そのため、ホスト2のすべてのpg1-* 構成オプションをpg2-* で、ホスト3の場合でpg3-* などを構成することもできます。これは、これらのデータベースクラスターが互いにリンクされていることを前提としています(