本文へ移動

これはセクションの複数ページ印刷用ビューです。 .

このページの通常のビューに戻る.

コマンドリファレンス

バックアップ、リストア、アーカイブ、管理操作の全オプションを網羅したpgBackRestのコマンドリファレンス。

はじめに

コマンドは、pgBackRestのさまざまな機能を実行するために使用します。ここでは、各コマンドのオプションを網羅しています。複数のコマンドに適用されるオプションも、該当する各コマンドのページに記載しています。pgbackrest.confで設定できるオプションもすべて含まれます。

pgbackrest.confに設定した非ブール型のオプションは、コマンドラインでreset-接頭辞を使用するとデフォルト値に戻せます。この機能を使うと、リポジトリホスト上で直接バックアップをリストアできます。通常、pgBackRestはデータベースホストがリモートにあることを認識し、リモートでのリストアはできないためエラーになります。コマンドラインに--reset-pg1-hostを追加すると、リモートのデータベースホストを無視してローカルにリストアします。データベースホストで使用していたパスではなく、特定のパスにリストアするには、--pg1-pathに新しい値を指定する必要がある場合があります。

コマンドラインでno-接頭辞を使用すると、ブール型のオプションを偽に設定できます。

すべてのオプションは、PGBACKREST_接頭辞に、-を_に置き換えた大文字のオプション名を続けることで、環境変数に設定できます。たとえば、pg1-pathはPGBACKREST_PG1_PATH、stanzaはPGBACKREST_STANZAになります。ブール型のオプションは、PGBACKREST_COMPRESS="n"のように設定ファイルと同じ形式で表し、reset-*形式は使用できません。コマンドラインや設定ファイルで複数回指定できるオプションは、PGBACKREST_DB_INCLUDE="db1:db2"のように値をコロンで区切って表せます。

コマンドラインのオプションは環境変数のオプションより優先され、環境変数のオプションは設定ファイルのオプションより優先されます。

オプションの型については、構成の概要 を参照してください。

コマンド

コマンド 概要
annotate バックアップの作成後に注釈を追加、変更、削除します。
archive-get リストア、PITR、レプリカのリカバリーに使用する、アーカイブ済みWALセグメントを取得します。
archive-push PostgreSQLからWALセグメントを受け取り、設定したリポジトリに送信します。
backup 対象リポジトリにバックアップを作成します。デフォルトでは最も優先度の高いリポジトリを使用します。
check stanzaのバックアップ・アーカイブ設定と、WALアーカイブの正常性を検証します。
expire 設定した保持ポリシーに基づき、バックアップとアーカイブ済みWALを期限切れとして削除します。
help 全般、コマンド、オプションの各レベルでヘルプを表示します。
info stanzaとバックアップの状態・メタデータをテキストまたはJSON形式で表示します。
repo-get 管理、調査、テストのため、catと同様にリポジトリ内のファイルを読み取ります。
repo-ls 管理、調査、テストのため、lsと同様にリポジトリ内のファイル・パスを一覧表示します。
restore バックアップからリストアします。デフォルトでは最新のバックアップを使用し、ポイントインタイムリカバリーも指定できます。
server SSHを使わずにリモートホストにアクセスするため、pgBackRestのTLSサーバーを実行します。
server-ping pgBackRestのTLSサーバーにpingを送信し、接続を受け付けていることを確認します。
stanza-create 設定したすべてのリポジトリにstanzaのメタデータを作成します。
stanza-delete stanzaのすべてのバックアップとアーカイブを完全に削除します。
stanza-upgrade PostgreSQLのメジャーバージョンアップグレード後にstanzaのメタデータを更新します。
start stopによって停止したpgBackRestプロセスの実行を再び許可します。
stop 新しいpgBackRestプロセスの実行を禁止し、指定に応じて実行中のプロセスを強制停止します。
verify リポジトリ内のバックアップとアーカイブデータが有効であることを検証します。
version インストールされているpgBackRestのバージョンを表示します。

1 - 注釈コマンド(annotate)

pgBackRestのannotateコマンドのオプションと動作のリファレンス。

backupコマンドで付けた注釈は、後からannotateコマンドで追加、変更、削除できます。

コマンドオプション

バックアップ注釈オプション(--annotation)

ユーザー定義のキー/値ペアでバックアップに注釈を付けます。

バックアップに情報を示すキー/値ペアを付加できます。このオプションを複数回指定して、複数の注釈を付けられます。

注釈は、--setでバックアップを指定した場合にinfoコマンドのテキスト出力に表示されます。JSON出力には常に表示されます。

example: --annotation=source="Sunday backup for website database"

バックアップセットオプション(--set)

注釈を付けるバックアップセットです。

注釈の対象となるバックアップセットです。

example: --set=20150131-153358F_20150131-153401I

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

ロックパスオプション(--lock-path)

ロックファイルを保存するパスです。

ロックパスは、pgBackRestが競合する処理の同時実行を防ぐためのロックファイルを作成する場所です。

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

リポジトリオプション

リポジトリ指定オプション(--repo)

リポジトリを指定します。

コマンドの操作対象となるリポジトリを指定します。

たとえば、このオプションを使用すると、pgBackRestに選択させずに、特定のリポジトリからリストアできます。

allowed: [1, 256]
example: --repo=1

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

2 - アーカイブ取得コマンド(archive-get)

pgBackRestのarchive-getコマンドのオプションと動作のリファレンス。

このコマンドは、PostgreSQLがバックアップのリストアやPITRを実行する際、またはレプリカを最新の状態に保つためにストリーミングの代わりとして使用します。WALセグメントは、PostgreSQLのリカバリーやレプリカの維持に必要です。

複数のリポジトリが設定されている場合、WALは優先度順(例:repo1、repo2など)にリポジトリから取得します。一般に、より高速または低コストのストレージを高い優先度にする方が適切です。--repoオプションでリポジトリを指定した場合は、そのリポジトリだけを検索します。

archive-getコマンドは、リストア時にpgBackRestがPostgreSQLで使用するように設定し、生成します。例は、ポイントインタイムリカバリー を参照してください。

コマンドオプション

非同期アーカイブオプション(--archive-async)

WALセグメントを非同期に送信/取得します。

archive-pushコマンドとarchive-getコマンドの非同期処理を有効にします。

非同期処理では接続の再利用と並列処理が可能なため、効率が向上します。詳細はspool-path、archive-get-queue-max、archive-push-queue-maxの各オプションを参照してください。

default: n
example: --archive-async

アーカイブ取得キューの最大サイズオプション(--archive-get-queue-max)

pgBackRestのarchive-getキューの最大サイズです。

archive-asyncが有効な場合のarchive-getキューの最大サイズを指定します。キューはspool-pathに格納され、PostgreSQLへのWALの提供を高速化するために使用されます。

default: 128MiB
allowed: [0B, 4PiB]
example: --archive-get-queue-max=1GiB

欠落WALセグメントの再試行オプション(--archive-missing-retry)

欠落したWALセグメントの取得を再試行します。

非同期モードのarchive-getコマンドが以前に欠落を報告したWALセグメントの取得を再試行します。これにより、以前のリストアでスプールパスに残された通知が使用され、一貫性が確保される前にリカバリーが失敗する事態を防ぎます。

このオプションを無効にすると、PostgreSQLはアーカイブ内のWALの末尾に到達したことをより確実に認識し、プライマリーからのストリーミングに切り替えられます。再試行が有効な場合は、WALが継続的にアーカイブされると、PostgreSQLはストリーミングに切り替えずにアーカイブからのWAL取得を続けます。

このオプションを無効にする場合は、stanzaのスプールパスが空であることを必ず確認してください。リストア時にスプールパスが設定されていれば、restoreコマンドが自動的に空にします。それ以外の場合は、ユーザーがスプールパスを空にする必要があります。

default: y
example: --no-archive-missing-retry

アーカイブタイムアウトオプション(--archive-timeout)

アーカイブのタイムアウトです。

各WALセグメントがpgBackRestのアーカイブリポジトリに到達するまで待機する最大時間を秒単位で設定します。このタイムアウトは、バックアップの一貫性に必要なWALセグメントのアーカイブを待つ際に、checkコマンドとbackupコマンドに適用されます。

default: 1m
allowed: [100ms, 1d]
example: --archive-timeout=30

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

pgBackRestコマンドオプション(--cmd)

pgBackRestコマンドです。

pgBackRestは、たとえばrestoreコマンドがrestore_command設定を生成する際に、コマンド文字列を生成することがあります。この場合、cmdオプションを指定しない限り、pgBackRestプロセスの実行に使用したコマンドが使われます。

注意:

pgBackRestコマンドをラッパー経由で実行すると、予測できない動作を引き起こす可能性があるため、推奨しません。

default: [path of executed pgbackrest binary]
example: --cmd=/var/lib/pgsql/bin/pgbackrest_wrapper.sh

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

ロックパスオプション(--lock-path)

ロックファイルを保存するパスです。

ロックパスは、pgBackRestが競合する処理の同時実行を防ぐためのロックファイルを作成する場所です。

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

最大プロセス数オプション(--process-max)

圧縮/転送に使用する最大プロセス数です。

各プロセスが圧縮と転送を実行することでコマンドを高速化しますが、データベースのパフォーマンスに影響するほどprocess-maxを高く設定しないでください。

default: 1
allowed: [1, 999]
example: --process-max=4

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

スプールパスオプション(--spool-path)

一時的なデータを保存するパスです。

このパスは、非同期のarchive-pushコマンドとarchive-getコマンドのデータを保存するために使用します。

非同期のarchive-pushコマンドは、アーカイブへのWALの保存が成功すると確認応答を(失敗時にはエラーを)スプールパスに書き込み、フォアグラウンドプロセスがPostgreSQLに速やかに通知できるようにします。確認応答ファイルは非常に小さく、成功時は0バイト、エラー時も数百バイトです。

非同期のarchive-getコマンドは、PostgreSQLの要求時にWALをすぐに提供できるよう、スプールパスにWALをキューイングします。スプールパスがpg_xlog/pg_walと同じファイルシステム上にあると、PostgreSQLへのファイル移動が最も効率的です。ただし、スプールパスをpg_xlog/pg_walディレクトリの内部に配置すると、pg_rewindなどのPostgreSQLユーティリティーに問題が生じる可能性があるため、推奨しません。

スプールパスに保存されたデータは再起動後も保持でき、保持することが望ましいため、厳密には一時データではありません。ただし、スプールパス内のデータが失われても問題はありません。pgBackRestは、archive-pushでは各WALセグメントが安全にアーカイブされていることを再確認し、archive-getではキューを再構築するだけです。

スプールパスは、NFSやCIFSなどのリモートファイルシステムではなく、ローカルのPosix互換ファイルシステム上に置くことを想定しています。

default: /var/spool/pgbackrest
example: --spool-path=/backup/db/spool

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

メンテナー向けオプション

PostgreSQLバージョン強制指定オプション(--pg-version-force)

PostgreSQLのバージョンを強制指定します。

pg_controlまたはWALヘッダーを読み取って自動検出したバージョンの代わりに、指定したPostgreSQLバージョンを使用します。これは主に、これらの値がリリース版とは異なるPostgreSQLのフォークや開発版で役立ちます。PostgreSQLがserver_version_numで報告するバージョンは、強制指定したバージョンと一致する必要があります。

警告:

このオプションは慎重に使用してください。pg_controlとWALヘッダーは引き続き、指定バージョンで想定される形式、つまり公式のオープンソース版PostgreSQLの形式で読み取られます。フォークや開発版が、pgBackRestの依存するフィールドの形式を変更していると、予期しない動作が生じます。一般に、このオプションが想定どおりに動作するのは、フォークが独自の構造体メンバーをすべて標準のPostgreSQLメンバーの後ろに追加している場合に限られます。

example: --pg-version-force=15

リポジトリオプション

リポジトリ指定オプション(--repo)

リポジトリを指定します。

コマンドの操作対象となるリポジトリを指定します。

たとえば、このオプションを使用すると、pgBackRestに選択させずに、特定のリポジトリからリストアできます。

allowed: [1, 256]
example: --repo=1

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ対象時刻オプション(--repo-target-time)

リポジトリの対象時刻です。

対象時刻は、コマンドがバージョン管理されたストレージ上のリポジトリを読み取る際の時点を定義します。これにより、ある時点の状態のリポジトリを読み取り、ユーザーの誤操作やマルウェアによって削除または破損したデータをリカバリーできます。

S3、GCS、Azureはストレージのバージョン管理をサポートしますが、通常はデフォルトで有効になっていません。バージョン管理の有効化に加え、S3ではオブジェクトロック、GCSやAzureでは論理削除を有効にすると役立つ場合があります。

repo-target-timeオプションを指定する場合は、repoオプションも指定する必要があります。すべてのリポジトリ種類がバージョン管理をサポートするとは限らず、一般にリカバリーでは単一のリポジトリを対象とするのが妥当です。

ストレージのタイムスタンプとの比較は、指定したタイムスタンプ以下(<=)で行い、タイムスタンプにミリ秒を指定しても切り捨てられます。

example: --repo-target-time=2024-08-08 12:12:12+00

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

stanzaオプション

PostgreSQLパスオプション(--pg-path)

PostgreSQLのデータディレクトリです。

PostgreSQLが報告するdata_directoryと同じ値を設定してください。この値はさまざまな場所から読み取れますが、リストアやオフラインバックアップ時にそれらを利用できない場合に備えて、設定しておくことが賢明です。

pg-pathオプションは、オンラインバックアップのたびにPostgreSQLが報告する値と照合されるため、常に最新の値であるはずです。

example: --pg1-path=/data/db

非推奨の名前:db-path

3 - アーカイブ送信コマンド(archive-push)

pgBackRestのarchive-pushコマンドのオプションと動作のリファレンス。

PostgreSQLからWALセグメントを受け取り、インデックス付きのrepo-pathオプションで定義された各リポジトリにアーカイブします(リポジトリの設定については、リポジトリ セクションを参照)。WALセグメントは、archive-asyncの値に応じて、直ちにアーカイブに送信されるか、ローカルに保存されます。複数のリポジトリが設定されている場合、archive-pushはできる限り多くのリポジトリへの送信を試みます。

archive-pushは、PostgreSQLに設定して呼び出すことを想定しています。例は、アーカイブの設定 を参照してください。

コマンドオプション

非同期アーカイブオプション(--archive-async)

WALセグメントを非同期に送信/取得します。

archive-pushコマンドとarchive-getコマンドの非同期処理を有効にします。

非同期処理では接続の再利用と並列処理が可能なため、効率が向上します。詳細はspool-path、archive-get-queue-max、archive-push-queue-maxの各オプションを参照してください。

default: n
example: --archive-async

アーカイブ確認オプション(--archive-check)

バックアップの完了前に、WALセグメントがアーカイブに存在することを確認します。

バックアップの一貫性を確保するために必要なすべてのWALセグメントが、WALアーカイブに存在することを確認します。別のアーカイブ方法を使用していない限り、デフォルトのままにしておくことを推奨します。

archive-copyが有効な場合は、このオプションを有効にする必要があります。

default: y
example: --no-archive-check

アーカイブモード確認オプション(--archive-mode-check)

PostgreSQLのarchive_mode設定を確認します。

このオプションはデフォルトで有効で、PostgreSQLのarchive_mode=alwaysを禁止します。

スタンバイサーバーから送信されたWALセグメントは、プライマリーから送信されたWALセグメントと論理的には同じでも、チェックサムが異なる場合があります。競合を避けるため、複数のソースからのアーカイブを無効にすることを推奨します。

注意:

このオプションを無効にする場合は、archive-pushコマンドを通じてリポジトリに書き込むアーカイバーが1つだけであることを必ず確認してください。

default: y
example: --no-archive-mode-check

アーカイブ送信バッチサイズオプション(--archive-push-batch-size)

非同期処理の1回の実行で送信するWALの最大量です。

非同期モードでは、archive-pushプロセスは準備ができているすべてのWALセグメントを1回の実行で送信します。archive-push-queue-maxは各実行の開始時にのみ確認されるため、非常に多くのセグメントを処理する実行では、再確認までの間にキューが上限を大幅に超えて増大することがあります。

このオプションは1回の実行で処理するWALの量を制限します。プロセスは終了後、次のarchive-pushによって再び起動され、その際にキューが再確認されます。値を小さくするとキューの確認頻度が高くなりますが、非同期プロセスの起動頻度も高くなります。値はWALセグメント単位で切り捨てられますが、常に少なくとも1つのセグメントは処理されます。

default: 16GiB
allowed: [1MiB, 4PiB]
example: --archive-push-batch-size=1GiB

アーカイブ送信キューの最大サイズオプション(--archive-push-queue-max)

PostgreSQLのアーカイブキューの最大サイズです。

上限に達すると、次の処理が行われます。

  • pgBackRestはWALのアーカイブが成功したことをPostgreSQLに通知した後、そのWALを破棄します。
  • PostgreSQLのログに警告が出力されます。

この場合、アーカイブログの連続性が失われ、その時点より後へのPITRはできなくなります。完全なリストア機能を取り戻すには、新しいバックアップが必要です。

非同期モードでは、キューの上限を再び超えるまでの間にWALが断続的に送信されることを防ぐため、キュー全体を破棄します。

非同期モードでは、この上限は各archive-push実行の開始時にのみ確認されるため、1回の実行中にキューが上限を超えて増大することがあります。キューをより頻繁に確認するには、archive-push-batch-sizeを小さくしてください。

この機能は、ログボリュームが満杯になってPostgreSQLが完全に停止することを防ぐためのものです。PostgreSQLを停止させるよりは、バックアップを失う方を選びます。

allowed: [0B, 4PiB]
example: --archive-push-queue-max=1TiB

非推奨の名前:archive-queue-max

アーカイブタイムアウトオプション(--archive-timeout)

アーカイブのタイムアウトです。

各WALセグメントがpgBackRestのアーカイブリポジトリに到達するまで待機する最大時間を秒単位で設定します。このタイムアウトは、バックアップの一貫性に必要なWALセグメントのアーカイブを待つ際に、checkコマンドとbackupコマンドに適用されます。

default: 1m
allowed: [100ms, 1d]
example: --archive-timeout=30

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

pgBackRestコマンドオプション(--cmd)

pgBackRestコマンドです。

pgBackRestは、たとえばrestoreコマンドがrestore_command設定を生成する際に、コマンド文字列を生成することがあります。この場合、cmdオプションを指定しない限り、pgBackRestプロセスの実行に使用したコマンドが使われます。

注意:

pgBackRestコマンドをラッパー経由で実行すると、予測できない動作を引き起こす可能性があるため、推奨しません。

default: [path of executed pgbackrest binary]
example: --cmd=/var/lib/pgsql/bin/pgbackrest_wrapper.sh

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

圧縮オプション(--compress)

ファイル圧縮を使用します。

バックアップファイルは、コマンドラインの圧縮ツールと互換性があります。

このオプションは現在非推奨です。代わりにcompress-typeオプションを使用してください。

default: y
example: --no-compress

圧縮レベルオプション(--compress-level)

ファイルの圧縮レベルです。

compress-typeがnoneでない場合、またはcompress=y(非推奨)の場合に、ファイル圧縮に使用するレベルを設定します。

default (depending on compress-type):
    bz2 - 9
    gz - 6
    lz4 - 1
    zst - 3

allow range (depending on compress-type):
    bz2 - [1, 9]
    gz - [-1, 9]
    lz4 - [-5, 12]
    zst - [-7, 22]

example: --compress-level=9

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

圧縮形式オプション(--compress-type)

ファイルの圧縮形式です。

次の圧縮形式をサポートします。

  • none - 圧縮なし
  • bz2 - bzip2圧縮形式
  • gz - gzip圧縮形式
  • lz4 - lz4圧縮形式(一部のプラットフォームでは利用不可)
  • zst - Zstandard圧縮形式(一部のプラットフォームでは利用不可)
default: gz
example: --compress-type=none

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

ロックパスオプション(--lock-path)

ロックファイルを保存するパスです。

ロックパスは、pgBackRestが競合する処理の同時実行を防ぐためのロックファイルを作成する場所です。

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

最大プロセス数オプション(--process-max)

圧縮/転送に使用する最大プロセス数です。

各プロセスが圧縮と転送を実行することでコマンドを高速化しますが、データベースのパフォーマンスに影響するほどprocess-maxを高く設定しないでください。

default: 1
allowed: [1, 999]
example: --process-max=4

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

スプールパスオプション(--spool-path)

一時的なデータを保存するパスです。

このパスは、非同期のarchive-pushコマンドとarchive-getコマンドのデータを保存するために使用します。

非同期のarchive-pushコマンドは、アーカイブへのWALの保存が成功すると確認応答を(失敗時にはエラーを)スプールパスに書き込み、フォアグラウンドプロセスがPostgreSQLに速やかに通知できるようにします。確認応答ファイルは非常に小さく、成功時は0バイト、エラー時も数百バイトです。

非同期のarchive-getコマンドは、PostgreSQLの要求時にWALをすぐに提供できるよう、スプールパスにWALをキューイングします。スプールパスがpg_xlog/pg_walと同じファイルシステム上にあると、PostgreSQLへのファイル移動が最も効率的です。ただし、スプールパスをpg_xlog/pg_walディレクトリの内部に配置すると、pg_rewindなどのPostgreSQLユーティリティーに問題が生じる可能性があるため、推奨しません。

スプールパスに保存されたデータは再起動後も保持でき、保持することが望ましいため、厳密には一時データではありません。ただし、スプールパス内のデータが失われても問題はありません。pgBackRestは、archive-pushでは各WALセグメントが安全にアーカイブされていることを再確認し、archive-getではキューを再構築するだけです。

スプールパスは、NFSやCIFSなどのリモートファイルシステムではなく、ローカルのPosix互換ファイルシステム上に置くことを想定しています。

default: /var/spool/pgbackrest
example: --spool-path=/backup/db/spool

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

メンテナー向けオプション

WALヘッダー確認オプション(--archive-header-check)

WALヘッダー内のPostgreSQLバージョン/識別子を確認します。

このオプションはデフォルトで有効で、WALヘッダーをPostgreSQLのバージョンおよびシステム識別子と照合し、WALが正しいstanzaにコピーされることを確認します。これは、pg_controlとstanzaの照合、およびWALのコピー元がpg_controlの存在するPostgreSQLデータディレクトリと同じであることの確認に加えて実行されます。

したがって、この確認の無効化は比較的安全ですが、WALが暗号化されている場合など、必要な場合に限って行ってください。

default: y
example: --no-archive-header-check

PostgreSQLバージョン強制指定オプション(--pg-version-force)

PostgreSQLのバージョンを強制指定します。

pg_controlまたはWALヘッダーを読み取って自動検出したバージョンの代わりに、指定したPostgreSQLバージョンを使用します。これは主に、これらの値がリリース版とは異なるPostgreSQLのフォークや開発版で役立ちます。PostgreSQLがserver_version_numで報告するバージョンは、強制指定したバージョンと一致する必要があります。

警告:

このオプションは慎重に使用してください。pg_controlとWALヘッダーは引き続き、指定バージョンで想定される形式、つまり公式のオープンソース版PostgreSQLの形式で読み取られます。フォークや開発版が、pgBackRestの依存するフィールドの形式を変更していると、予期しない動作が生じます。一般に、このオプションが想定どおりに動作するのは、フォークが独自の構造体メンバーをすべて標準のPostgreSQLメンバーの後ろに追加している場合に限られます。

example: --pg-version-force=15

リポジトリオプション

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

stanzaオプション

PostgreSQLパスオプション(--pg-path)

PostgreSQLのデータディレクトリです。

PostgreSQLが報告するdata_directoryと同じ値を設定してください。この値はさまざまな場所から読み取れますが、リストアやオフラインバックアップ時にそれらを利用できない場合に備えて、設定しておくことが賢明です。

pg-pathオプションは、オンラインバックアップのたびにPostgreSQLが報告する値と照合されるため、常に最新の値であるはずです。

example: --pg1-path=/data/db

非推奨の名前:db-path

4 - バックアップコマンド(backup)

pgBackRestのbackupコマンドのオプションと動作のリファレンス。

複数のリポジトリが設定されている場合、--repoオプションを指定しない限り、pgBackRestは最も優先度の高いリポジトリ(例:repo1)にバックアップします。

pgBackRestにはスケジューラーが組み込まれていないため、cronなどのスケジュール機構から実行することを推奨します。

詳細と例は、バックアップの実行 を参照してください。

コマンドオプション

バックアップ注釈オプション(--annotation)

ユーザー定義のキー/値ペアでバックアップに注釈を付けます。

バックアップに情報を示すキー/値ペアを付加できます。このオプションを複数回指定して、複数の注釈を付けられます。

注釈は、--setでバックアップを指定した場合にinfoコマンドのテキスト出力に表示されます。JSON出力には常に表示されます。

example: --annotation=source="Sunday backup for website database"

アーカイブ確認オプション(--archive-check)

バックアップの完了前に、WALセグメントがアーカイブに存在することを確認します。

バックアップの一貫性を確保するために必要なすべてのWALセグメントが、WALアーカイブに存在することを確認します。別のアーカイブ方法を使用していない限り、デフォルトのままにしておくことを推奨します。

archive-copyが有効な場合は、このオプションを有効にする必要があります。

default: y
example: --no-archive-check

アーカイブコピーオプション(--archive-copy)

一貫性の確保に必要なWALセグメントをバックアップにコピーします。

この念には念を入れたオプションは、一貫性に必要なWALセグメントをバックアップに直接格納することで、WALセグメントのアーカイブの破損に備えます。WALセグメントは引き続きアーカイブにも格納されるため、このオプションは追加の容量を使用します。

このオプションを使用する場合は、archive-pushコマンドとbackupコマンドで同じcompress-type(例:lz4)を使用することを推奨します。異なる場合、WALセグメントはバックアップで使用するcompress-typeで再圧縮する必要があり、バックアップ中に生成されたWALの量によっては、かなりの負荷がかかります。

リストア時にはWALセグメントがpg_xlog/pg_wal内に存在し、PostgreSQLはrestore_commandの呼び出しよりも優先してこれらを使用します。

archive-copyが有効な場合は、archive-checkオプションを有効にする必要があります。

default: n
example: --archive-copy

アーカイブモード確認オプション(--archive-mode-check)

PostgreSQLのarchive_mode設定を確認します。

このオプションはデフォルトで有効で、PostgreSQLのarchive_mode=alwaysを禁止します。

スタンバイサーバーから送信されたWALセグメントは、プライマリーから送信されたWALセグメントと論理的には同じでも、チェックサムが異なる場合があります。競合を避けるため、複数のソースからのアーカイブを無効にすることを推奨します。

注意:

このオプションを無効にする場合は、archive-pushコマンドを通じてリポジトリに書き込むアーカイバーが1つだけであることを必ず確認してください。

default: y
example: --no-archive-mode-check

アーカイブタイムアウトオプション(--archive-timeout)

アーカイブのタイムアウトです。

各WALセグメントがpgBackRestのアーカイブリポジトリに到達するまで待機する最大時間を秒単位で設定します。このタイムアウトは、バックアップの一貫性に必要なWALセグメントのアーカイブを待つ際に、checkコマンドとbackupコマンドに適用されます。

default: 1m
allowed: [100ms, 1d]
example: --archive-timeout=30

スタンバイからのバックアップオプション(--backup-standby)

スタンバイクラスターからバックアップします。

プライマリークラスターの負荷を軽減するには、スタンバイからのバックアップを有効にします。このオプションでは、プライマリーとスタンバイの両方のホストを設定する必要があります。

次のモードをサポートします。

  • y - バックアップにスタンバイを必須とします。
  • prefer - スタンバイが利用可能ならスタンバイから、そうでなければプライマリーからバックアップします。
  • n - プライマリーからのみバックアップします。
default: n
example: --backup-standby=y

ページチェックサムオプション(--checksum-page)

データページのチェックサムを検証します。

クラスターのバックアップ中に、pgBackRestがすべてのデータページのチェックサムを検証するようにします。クラスターでデータページのチェックサムが有効になっている場合、このオプションは自動的に有効になります。

チェックサムの検証に失敗しても、バックアップは中止されません。代わりに、ログ(デフォルト設定ではコンソールにも)に警告を出力し、無効なページの一覧をバックアップマニフェストに保存します。

example: --no-checksum-page

パス/ファイルの除外オプション(--exclude)

パス/ファイルをバックアップから除外します。

すべての除外指定は$PGDATAを基準とします。除外指定が/で終わる場合は、指定ディレクトリ内のファイルのみを除外します。たとえば、--exclude=junk/は$PGDATA/junkディレクトリ内のすべてのファイルを除外しますが、ディレクトリ自体は含めます。除外指定が/で終わらない場合は、ファイルが除外指定に完全一致するか、除外指定の末尾に/を付けたものに一致すれば除外します。たとえば、--exclude=junkは$PGDATA/junkディレクトリとその中のすべてのファイルを除外します。

この機能は慎重に使用してください。重要なものを容易に除外できてしまい、バックアップの一貫性を損なう危険があります。必ずリストアをテストしてください!

除外されたすべてのファイルは、除外ルールとともにinfoレベルでログに記録されます。除外されたファイルの一覧を必ず確認し、意図しないものが除外されていないことを確かめてください。

注記: 差分リストアでは除外指定は考慮されません。バックアップで除外されたファイル/ディレクトリは、差分リストア時に削除されます。

このオプションを、バックアップからPostgreSQLのログを除外するために使用しないでください。PostgreSQLのlog_directory設定でログをPGDATAディレクトリの外に移動すれば、リストア後もログを保持できるという利点があります。

コマンドラインまたは設定ファイルで複数の除外指定が可能です。

example: --exclude=junk/

自動期限切れ処理オプション(--expire-auto)

バックアップの成功後にexpireコマンドを自動実行します。

この設定はデフォルトで有効です。無効にすると、すべてのバックアップとアーカイブが無期限に保持され、リポジトリの空き容量がなくなる可能性があるため、注意してください。これを防ぐには、expireコマンドを定期的に実行する必要があります。

バックアップの成功後にexpireを自動実行する場合は、backupコマンドの設定を使用するため、expireコマンドのセクション(例:[global:expire])だけに設定したオプションは適用されません。expire専用の設定を適用するには、このオプションを無効にし、expireコマンドを個別に実行してください。

default: y
example: --expire-auto

強制オプション(--force)

オフラインバックアップを強制します。

--no-start-stopと併用すると、pgBackRestがPostgreSQLは稼働中だと判断してもバックアップを実行します。不正なバックアップになる可能性が高いため、このオプションは細心の注意を払って使用してください。

このような状況でも、バックアップが望ましい場合があります。たとえば、サーバーがクラッシュし、データベースクラスターのボリュームを読み取り専用でしかマウントできない場合、postmaster.pidが存在していてもバックアップを取得しておくのがよいでしょう。この場合、以前のバックアップに戻してWALを再生する方が望ましいものの、アーカイブされなかったWALセグメントに非常に重要なトランザクションが含まれている可能性があります。

default: n
example: --force

マニフェスト保存しきい値オプション(--manifest-save-threshold)

バックアップ中のマニフェスト保存しきい値です。

バックアップ中にマニフェストを保存する頻度を定義します。マニフェストにはチェックサムが保存され、再開機能を効率的に動作させられるため、その保存は重要です。実際に使用するしきい値は、バックアップサイズの1%とmanifest-save-thresholdのうち大きい方です。

default: 1GiB
allowed: [1B, 1TiB]
example: --manifest-save-threshold=8GiB

オンラインオプション(--online)

オンラインバックアップを実行します。

–no-onlineを指定すると、pgBackRestはデータベースクラスターでバックアップの開始/停止関数を実行しません。この方法を使用する際はPostgreSQLを停止しておいてください。停止していなければpgBackRestはエラーを出力します。

このオプションは、オフラインバックアップを可能にするためのものです。pg_xlog/pg_walディレクトリはそのままコピーされ、バックアップではarchive-checkが自動的に無効になります。

default: y
example: --no-online

再開オプション(--resume)

失敗したバックアップの再開を許可します。

再開機能を有効にするかどうかを定義します。同じ種類のバックアップが以前に失敗した場合、再開によってバックアップの実行に必要な時間を大幅に短縮できます。ただし、処理が複雑になるため、この機能を必要としない環境では無効にする方が望ましい場合があります。

default: y
example: --no-resume

高速開始オプション(--start-fast)

チェックポイントを強制し、バックアップを速やかに開始します。

バックアップ開始関数のfastパラメーターにyを渡してチェックポイントを強制し、バックアップを直ちに開始します。そうしない場合、バックアップは次の通常のチェックポイントの後に開始します。

default: n
example: --start-fast

種類オプション(--type)

バックアップの種類です。

次のバックアップ種類をサポートします。

  • full - データベースクラスターのすべてのファイルをコピーし、以前のバックアップへの依存関係を持ちません。
  • incr - 最後に成功したバックアップからの増分です。
  • diff - 増分バックアップと似ていますが、常に最後のフルバックアップを基にします。
default: incr
example: --type=full

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

pgBackRestコマンドオプション(--cmd)

pgBackRestコマンドです。

pgBackRestは、たとえばrestoreコマンドがrestore_command設定を生成する際に、コマンド文字列を生成することがあります。この場合、cmdオプションを指定しない限り、pgBackRestプロセスの実行に使用したコマンドが使われます。

注意:

pgBackRestコマンドをラッパー経由で実行すると、予測できない動作を引き起こす可能性があるため、推奨しません。

default: [path of executed pgbackrest binary]
example: --cmd=/var/lib/pgsql/bin/pgbackrest_wrapper.sh

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

圧縮オプション(--compress)

ファイル圧縮を使用します。

バックアップファイルは、コマンドラインの圧縮ツールと互換性があります。

このオプションは現在非推奨です。代わりにcompress-typeオプションを使用してください。

default: y
example: --no-compress

圧縮レベルオプション(--compress-level)

ファイルの圧縮レベルです。

compress-typeがnoneでない場合、またはcompress=y(非推奨)の場合に、ファイル圧縮に使用するレベルを設定します。

default (depending on compress-type):
    bz2 - 9
    gz - 6
    lz4 - 1
    zst - 3

allow range (depending on compress-type):
    bz2 - [1, 9]
    gz - [-1, 9]
    lz4 - [-5, 12]
    zst - [-7, 22]

example: --compress-level=9

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

圧縮形式オプション(--compress-type)

ファイルの圧縮形式です。

次の圧縮形式をサポートします。

  • none - 圧縮なし
  • bz2 - bzip2圧縮形式
  • gz - gzip圧縮形式
  • lz4 - lz4圧縮形式(一部のプラットフォームでは利用不可)
  • zst - Zstandard圧縮形式(一部のプラットフォームでは利用不可)
default: gz
example: --compress-type=none

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

データベースタイムアウトオプション(--db-timeout)

データベースクエリーのタイムアウトです。

データベースに対するクエリーのタイムアウトを秒単位で設定します。これには、それぞれかなりの時間がかかる可能性があるバックアップの開始/停止関数も含まれます。そのため、これらの関数が速やかに戻ることがわかっている場合(つまり、start-fast=yを設定し、バックアップ中にデータベースクラスターが多数のWALセグメントを生成しないことがわかっている場合)を除き、タイムアウトは長めにしておくことを推奨します。

注記: db-timeoutオプションは、protocol-timeoutオプションより小さくする必要があります。

default: 30m
allowed: [100ms, 7d]
example: --db-timeout=600

差分処理オプション(--delta)

チェックサムを使用してリストアまたはバックアップします。

リストア時には、デフォルトでPostgreSQLのデータディレクトリとテーブルスペースディレクトリが存在し、空であることを想定します。このオプションは、チェックサムを使用して差分リストアを実行します。

バックアップ時には、このオプションによってタイムスタンプの代わりにチェックサムを使用し、ファイルをコピーするかどうかを判定します。

default: n
example: --delta

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

ロックパスオプション(--lock-path)

ロックファイルを保存するパスです。

ロックパスは、pgBackRestが競合する処理の同時実行を防ぐためのロックファイルを作成する場所です。

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

最大プロセス数オプション(--process-max)

圧縮/転送に使用する最大プロセス数です。

各プロセスが圧縮と転送を実行することでコマンドを高速化しますが、データベースのパフォーマンスに影響するほどprocess-maxを高く設定しないでください。

default: 1
allowed: [1, 999]
example: --process-max=4

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

メンテナー向けオプション

ページヘッダー確認オプション(--page-header-check)

PostgreSQLのページヘッダーを確認します。

このオプションはデフォルトで有効で、ページヘッダーの確認を追加します。

ページが暗号化されている場合など、必要な場合を除き、このオプションの無効化は避けてください。

default: y
example: --no-page-header-check

PostgreSQLバージョン強制指定オプション(--pg-version-force)

PostgreSQLのバージョンを強制指定します。

pg_controlまたはWALヘッダーを読み取って自動検出したバージョンの代わりに、指定したPostgreSQLバージョンを使用します。これは主に、これらの値がリリース版とは異なるPostgreSQLのフォークや開発版で役立ちます。PostgreSQLがserver_version_numで報告するバージョンは、強制指定したバージョンと一致する必要があります。

警告:

このオプションは慎重に使用してください。pg_controlとWALヘッダーは引き続き、指定バージョンで想定される形式、つまり公式のオープンソース版PostgreSQLの形式で読み取られます。フォークや開発版が、pgBackRestの依存するフィールドの形式を変更していると、予期しない動作が生じます。一般に、このオプションが想定どおりに動作するのは、フォークが独自の構造体メンバーをすべて標準のPostgreSQLメンバーの後ろに追加している場合に限られます。

example: --pg-version-force=15

リポジトリオプション

リポジトリ指定オプション(--repo)

リポジトリを指定します。

コマンドの操作対象となるリポジトリを指定します。

たとえば、このオプションを使用すると、pgBackRestに選択させずに、特定のリポジトリからリストアできます。

allowed: [1, 256]
example: --repo=1

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

ブロック増分バックアップオプション(--repo-block)

ブロック増分バックアップを有効にします。

ブロック増分バックアップは、ファイルを個別にバックアップ可能なブロックに分割することで、より細かな単位でのバックアップを可能にします。リポジトリの容量を節約し、リポジトリからファイル全体を読み取らずに個々のブロックを取得できるため、差分リストアのパフォーマンスが向上する可能性があります。

注記: repo-blockを有効にする前に、repo-bundleオプションを有効にする必要があります。

ファイルのブロックサイズは、ファイルのサイズと古さに基づいて決まります。一般に、古いファイルや大きいファイルには、より大きなブロックサイズが使われます。ファイルが十分に古い場合は、ブロック増分バックアップの対象になりません。

ブロック増分バックアップは、フルバックアップを含むすべてのバックアップ種類で有効にすると最も効率的です。フルバックアップは少し大きくなりますが、後続の差分バックアップと増分バックアップは、フルバックアップが生成したブロックマップを使用して容量を節約できます。

default: n
example: --repo1-block

リポジトリバンドルオプション(--repo-bundle)

リポジトリ内でファイルをまとめます。

小さいファイルをバンドル(結合)し、リポジトリに書き込むファイルの総数を減らします。ファイル数を減らすと、一般に書き込みが効率化され、S3などのオブジェクトストアで特に効果があります。また、長さ0のファイルはマニフェスト以外には保存しないため、時間と容量を節約できます。

default: n
example: --repo1-bundle

リポジトリバンドル対象サイズ上限オプション(--repo-bundle-limit)

ファイルをバンドルする際のサイズ上限です。

バンドルに含めるファイルのサイズ上限です。このサイズより大きいファイルは個別に保存します。

バンドルされたファイルはバックアップの再開時に再利用できないため、このオプションは再開可能なファイルを制御します。つまり、値を大きくすると再開可能なファイルが少なくなります。

default: 2MiB
allowed: [8KiB, 1PiB]
example: --repo1-bundle-limit=10MiB

リポジトリバンドルサイズオプション(--repo-bundle-size)

ファイルバンドルの目標サイズです。

1つのバンドルに追加するファイルの目標サイズを定義します。非圧縮のバンドルサイズは最大でrepo-bundle-size+repo-bundle-limitになるため、このオプションにファイルシステムの最大許容サイズを設定しないでください。

再試行時にはバンドル全体を処理し直す必要があるため、一般に、このオプションを大きくしすぎるのは適切ではありません。

default: 20MiB
allowed: [1MiB, 1PiB]
example: --repo1-bundle-size=10MiB

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリ内のバックアップ間でファイルをハードリンクします。

差分バックアップと増分バックアップのファイルを、それらのフルバックアップにハードリンクすることを有効にします。これにより、ファイルシステム上では各バックアップがフルバックアップであるように見えます。ただし、ハードリンクされたファイルを変更すると、セット内のすべてのバックアップに影響する可能性があるため、注意してください。

default: n
example: --repo1-hardlink

非推奨の名前:hardlink

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

アーカイブ保持オプション(--repo-retention-archive)

連続したWALを何回分のバックアップに相当する期間保持するかを指定します。

注記: バックアップの一貫性を確保するために必要なWALセグメントは、このオプションの設定にかかわらず、そのバックアップが期限切れになるまで常に保持されます。

この値が未設定で、repo-retention-full-typeがcount(デフォルト)の場合、期限切れ処理の対象アーカイブを決める値は、repo-retention-archive-typeがfull(またはdiff)なら、それに対応するrepo-retention-full(またはrepo-retention-diff)の値がデフォルトになります。これにより、すでに期限切れになったバックアップのWALだけが期限切れになります。repo-retention-full-typeがtimeの場合は、repo-retention-fullの設定を満たして保持された最も古いフルバックアップより前のアーカイブを削除することがデフォルトになります。

repo-retention-archive-typeをincrに設定した場合は、このオプションを設定する必要があります。ディスク容量に余裕がない場合は、この設定をrepo-retention-archive-typeと組み合わせ、WALセグメントを積極的に期限切れにできます。ただし、WALが期限切れになったバックアップからPITRを実行できなくなるため、推奨しません。

allowed: [1, 9999999]
example: --repo1-retention-archive=2

非推奨の名前:retention-archive

アーカイブ保持種別オプション(--repo-retention-archive-type)

WALの保持に使用するバックアップの種類です。

fullに設定すると、pgBackRestはrepo-retention-archiveで定義した数のフルバックアップに対応するアーカイブログを保持します。diff(差分)に設定すると、repo-retention-archiveで定義した数のフルバックアップと差分バックアップに対応するアーカイブログを保持します。つまり、最後に取得したバックアップがフルバックアップであれば、repo-retentionの計算では差分バックアップとして数えます。incr(増分)に設定すると、repo-retention-archiveで定義した数のフルバックアップ、差分バックアップ、増分バックアップに対応するアーカイブログを保持します。この設定はデフォルトから変更しないことを推奨します。デフォルトでは、フルバックアップの期限切れに伴ってのみWALを期限切れにします。

default: full
example: --repo1-retention-archive-type=diff

非推奨の名前:retention-archive-type

差分バックアップ保持オプション(--repo-retention-diff)

保持する差分バックアップの数です。

差分バックアップが期限切れになると、それに関連するすべての増分バックアップも期限切れになります。未定義の場合は、依存するフルバックアップが期限切れになるまで、すべての差分バックアップを保持します。

期限切れ処理では、フルバックアップも差分バックアップの数に含まれます。このため、ほとんどの場合、保持が必要な差分バックアップの数はわずかに少なくなります。

allowed: [1, 9999999]
example: --repo1-retention-diff=3

非推奨の名前:retention-diff

フルバックアップ保持オプション(--repo-retention-full)

フルバックアップの保持数/保持期間です。

フルバックアップが期限切れになると、それに関連するすべての差分バックアップと増分バックアップも期限切れになります。このオプションが未定義の場合は警告を出力します。無期限の保持が必要な場合は、最大値を設定してください。

allowed: [1, 9999999]
example: --repo1-retention-full=2

非推奨の名前:retention-full

フルバックアップ保持種別オプション(--repo-retention-full-type)

フルバックアップの保持種別です。

repo-retention-full設定が、保持する期間(日数)とフルバックアップの数のどちらを表すかを決定します。

timeに設定すると、repo-retention-full以上の日数が経過したバックアップが少なくともほかに1つ存在する場合に、repo-retention-fullより古いフルバックアップをリポジトリから削除します。たとえば、repo-retention-fullが30(日)で、25日前と35日前の2つのフルバックアップがある場合、どちらも期限切れにはなりません。35日前のバックアップを期限切れにすると25日前のバックアップだけが残り、古いバックアップを期限切れにする前に少なくとも30日前のバックアップを1つ確保するという30日間の保持ポリシーに違反するためです。repo-retention-archive-typeとrepo-retention-archiveを明示的に設定していない限り、残っている最も古いフルバックアップより前のアーカイブ済みWALは自動的に期限切れになります。

countに設定すると、repo-retention-fullを超えるフルバックアップを期限切れにします。たとえば、repo-retention-fullが4で、5つ目のフルバックアップが完了すると、数を4に保つために最も古いフルバックアップを期限切れにします。

保持の計算に含めるには、バックアップが正常に完了している必要があります。たとえば、repo-retention-full-typeがcountで、repo-retention-fullが2の場合、最も古いバックアップを期限切れにするには、完了したフルバックアップが3つ必要です。

default: count
example: --repo1-retention-full-type=time

バックアップ履歴保持オプション(--repo-retention-history)

バックアップ履歴マニフェストを保持する日数です。

バックアップが完了すると、バックアップマニフェストのコピーをbackup.historyパスに保存します。これらのファイルは、バックアップやWALの増加量を経時的に測定するなどのデータ分析に役立つため、デフォルトでは期限切れになりません。

バックアップ履歴マニフェストを保持する日数を定義するには、repo-retention-historyを設定します。期限切れになっていないバックアップは、常にバックアップ履歴に保持されます。期限切れになっていないバックアップの履歴だけを保持するには、repo-retention-history=0を指定します。

フルバックアップの履歴マニフェストが期限切れになると、そのフルバックアップに関連するすべての差分バックアップと増分バックアップの履歴マニフェストも期限切れになります。

allowed: [0, 9999999]
example: --repo1-retention-history=365

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ内にシンボリックリンクを作成します。

latestとテーブルスペースのシンボリックリンクの作成を有効にします。これらのシンボリックリンクは、スナップショットを使ってリポジトリ内でその場でリカバリーする場合に最も役立ちますが、そのような利用は一般的ではありません。

大多数のユーザーには役立たないと考えられる機能ですが、従来の動作を維持するため、デフォルトで有効になっています。ただし、シンボリックリンクをサポートしないPosixに似たストレージでは、無効にすると役立つ場合があります。

default: y
example: --no-repo1-symlink

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

stanzaオプション

PostgreSQLデータベースオプション(--pg-database)

PostgreSQLのデータベースです。

PostgreSQLへの接続に使用するデータベース名です。通常はデフォルトが最適ですが、このデータベースが存在しない環境もあります。

従来の動作を維持するため、環境変数PGDATABASEの設定は無視されます。

default: postgres
example: --pg1-database=backupdb

PostgreSQLホストオプション(--pg-host)

リモート操作時のPostgreSQLホストです。

PostgreSQLホストとリポジトリホストが異なる場合のバックアップに使用します。

example: --pg1-host=db.domain.com

非推奨の名前:db-host

PostgreSQLホスト認証局ファイルオプション(--pg-host-ca-file)

PostgreSQLホストの認証局ファイルです。

PostgreSQLホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --pg1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

PostgreSQLホスト認証局パスオプション(--pg-host-ca-path)

PostgreSQLホストの認証局パスです。

PostgreSQLホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --pg1-host-ca-path=/etc/pki/tls/certs

PostgreSQLホスト証明書ファイルオプション(--pg-host-cert-file)

PostgreSQLホストの証明書ファイルです。

クライアントの身元を証明するためにPostgreSQLホストに送信します。

example: --pg1-host-cert-file=/path/to/client.crt

PostgreSQLホストコマンドオプション(--pg-host-cmd)

PostgreSQLホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとPostgreSQLホストで異なる場合にのみ必要です。未定義の場合、PostgreSQLホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --pg1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:db-cmd

PostgreSQLホスト設定オプション(--pg-host-config)

pgBackRestデータベースホストの設定ファイルです。

PostgreSQLホスト上の設定ファイルの場所を設定します。PostgreSQLホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --pg1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:db-config

PostgreSQLホスト追加設定パスオプション(--pg-host-config-include-path)

pgBackRestデータベースホストの追加設定パスです。

PostgreSQLホスト上の追加設定パスの場所を設定します。PostgreSQLホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --pg1-host-config-include-path=/conf/pgbackrest/conf.d

PostgreSQLホスト設定パスオプション(--pg-host-config-path)

pgBackRestデータベースホストの設定パスです。

PostgreSQLホスト上の設定パスの場所を設定します。PostgreSQLホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --pg1-host-config-path=/conf/pgbackrest

PostgreSQLホストキーファイルオプション(--pg-host-key-file)

PostgreSQLホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --pg1-host-key-file=/path/to/client.key

PostgreSQLホストポートオプション(--pg-host-port)

pg-hostが設定されている場合のPostgreSQLホストのポートです。

PostgreSQLホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: pg-host-type=sshの場合、pg-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on pg-host-type):
    tls - 8432

allowed: [0, 65535]
example: --pg1-host-port=25

非推奨の名前:db-ssh-port

PostgreSQLホストプロトコル種別オプション(--pg-host-type)

PostgreSQLホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --pg1-host-type=tls

PostgreSQLホストユーザーオプション(--pg-host-user)

pg-hostが設定されている場合のPostgreSQLホストへのログインユーザーです。

このユーザーはリモートのpgBackRestプロセスも所有し、PostgreSQLへの接続を開始します。正しく動作させるには、PostgreSQLデータベースクラスターの所有者を使用してください。通常はデフォルトのpostgresです。

default: postgres
example: --pg1-host-user=db_owner

非推奨の名前:db-user

PostgreSQLパスオプション(--pg-path)

PostgreSQLのデータディレクトリです。

PostgreSQLが報告するdata_directoryと同じ値を設定してください。この値はさまざまな場所から読み取れますが、リストアやオフラインバックアップ時にそれらを利用できない場合に備えて、設定しておくことが賢明です。

pg-pathオプションは、オンラインバックアップのたびにPostgreSQLが報告する値と照合されるため、常に最新の値であるはずです。

example: --pg1-path=/data/db

非推奨の名前:db-path

PostgreSQLポートオプション(--pg-port)

PostgreSQLのポートです。

PostgreSQLが使用しているポートです。ほとんどのPostgreSQLクラスターはデフォルトのポートを使用するため、通常は指定する必要がありません。

default: 5432
allowed: [0, 65535]
example: --pg1-port=6543

非推奨の名前:db-port

PostgreSQLソケットパスオプション(--pg-socket-path)

PostgreSQLのunixソケットパスです。

PostgreSQLの起動時に指定したunixソケットディレクトリです。pgBackRestはOSの標準の場所を自動検索するため、postgresql.confのunix_socket_directories設定でソケットディレクトリを明示的に変更した場合を除き、通常はこの設定を指定する必要がありません。

example: --pg1-socket-path=/var/run/postgresql

非推奨の名前:db-socket-path

PostgreSQLデータベースユーザーオプション(--pg-user)

PostgreSQLのデータベースユーザーです。

PostgreSQLへの接続に使用するデータベースユーザー名です。未指定の場合、pgBackRestはローカルのOSユーザーまたはPGUSERで接続します。

example: --pg1-user=backupuser

5 - 確認コマンド(check)

pgBackRestのcheckコマンドのオプションと動作のリファレンス。

checkコマンドは、指定したstanzaのアーカイブとバックアップに対し、pgBackRestとarchive_command設定が正しく構成されていることを検証します。コマンドを実行するホストに設定されたすべてのリポジトリとデータベースの確認を試みます。必要なWALセグメントがアーカイブに到達せず、バックアップが不完全になるような設定ミス、特にアーカイブの設定ミスを検出します。このコマンドは、PostgreSQLホストまたはリポジトリホストで実行できます。スタンバイホストでも実行できますが、スタンバイではpg_switch_xlog()/pg_switch_wal()を実行できないため、リポジトリの設定のみをテストします。

PostgreSQLにWALセグメントのアーカイブを強制するため、pg_create_restore_point('pgBackRest Archive Check')とpg_switch_xlog()/pg_switch_wal()を呼び出します。

コマンドオプション

アーカイブ確認オプション(--archive-check)

バックアップの完了前に、WALセグメントがアーカイブに存在することを確認します。

バックアップの一貫性を確保するために必要なすべてのWALセグメントが、WALアーカイブに存在することを確認します。別のアーカイブ方法を使用していない限り、デフォルトのままにしておくことを推奨します。

archive-copyが有効な場合は、このオプションを有効にする必要があります。

default: y
example: --no-archive-check

アーカイブモード確認オプション(--archive-mode-check)

PostgreSQLのarchive_mode設定を確認します。

このオプションはデフォルトで有効で、PostgreSQLのarchive_mode=alwaysを禁止します。

スタンバイサーバーから送信されたWALセグメントは、プライマリーから送信されたWALセグメントと論理的には同じでも、チェックサムが異なる場合があります。競合を避けるため、複数のソースからのアーカイブを無効にすることを推奨します。

注意:

このオプションを無効にする場合は、archive-pushコマンドを通じてリポジトリに書き込むアーカイバーが1つだけであることを必ず確認してください。

default: y
example: --no-archive-mode-check

アーカイブタイムアウトオプション(--archive-timeout)

アーカイブのタイムアウトです。

各WALセグメントがpgBackRestのアーカイブリポジトリに到達するまで待機する最大時間を秒単位で設定します。このタイムアウトは、バックアップの一貫性に必要なWALセグメントのアーカイブを待つ際に、checkコマンドとbackupコマンドに適用されます。

default: 1m
allowed: [100ms, 1d]
example: --archive-timeout=30

スタンバイからのバックアップオプション(--backup-standby)

スタンバイクラスターからバックアップします。

プライマリークラスターの負荷を軽減するには、スタンバイからのバックアップを有効にします。このオプションでは、プライマリーとスタンバイの両方のホストを設定する必要があります。

次のモードをサポートします。

  • y - バックアップにスタンバイを必須とします。
  • prefer - スタンバイが利用可能ならスタンバイから、そうでなければプライマリーからバックアップします。
  • n - プライマリーからのみバックアップします。
default: n
example: --backup-standby=y

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

データベースタイムアウトオプション(--db-timeout)

データベースクエリーのタイムアウトです。

データベースに対するクエリーのタイムアウトを秒単位で設定します。これには、それぞれかなりの時間がかかる可能性があるバックアップの開始/停止関数も含まれます。そのため、これらの関数が速やかに戻ることがわかっている場合(つまり、start-fast=yを設定し、バックアップ中にデータベースクラスターが多数のWALセグメントを生成しないことがわかっている場合)を除き、タイムアウトは長めにしておくことを推奨します。

注記: db-timeoutオプションは、protocol-timeoutオプションより小さくする必要があります。

default: 30m
allowed: [100ms, 7d]
example: --db-timeout=600

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

メンテナー向けオプション

PostgreSQLバージョン強制指定オプション(--pg-version-force)

PostgreSQLのバージョンを強制指定します。

pg_controlまたはWALヘッダーを読み取って自動検出したバージョンの代わりに、指定したPostgreSQLバージョンを使用します。これは主に、これらの値がリリース版とは異なるPostgreSQLのフォークや開発版で役立ちます。PostgreSQLがserver_version_numで報告するバージョンは、強制指定したバージョンと一致する必要があります。

警告:

このオプションは慎重に使用してください。pg_controlとWALヘッダーは引き続き、指定バージョンで想定される形式、つまり公式のオープンソース版PostgreSQLの形式で読み取られます。フォークや開発版が、pgBackRestの依存するフィールドの形式を変更していると、予期しない動作が生じます。一般に、このオプションが想定どおりに動作するのは、フォークが独自の構造体メンバーをすべて標準のPostgreSQLメンバーの後ろに追加している場合に限られます。

example: --pg-version-force=15

リポジトリオプション

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

stanzaオプション

PostgreSQLデータベースオプション(--pg-database)

PostgreSQLのデータベースです。

PostgreSQLへの接続に使用するデータベース名です。通常はデフォルトが最適ですが、このデータベースが存在しない環境もあります。

従来の動作を維持するため、環境変数PGDATABASEの設定は無視されます。

default: postgres
example: --pg1-database=backupdb

PostgreSQLホストオプション(--pg-host)

リモート操作時のPostgreSQLホストです。

PostgreSQLホストとリポジトリホストが異なる場合のバックアップに使用します。

example: --pg1-host=db.domain.com

非推奨の名前:db-host

PostgreSQLホスト認証局ファイルオプション(--pg-host-ca-file)

PostgreSQLホストの認証局ファイルです。

PostgreSQLホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --pg1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

PostgreSQLホスト認証局パスオプション(--pg-host-ca-path)

PostgreSQLホストの認証局パスです。

PostgreSQLホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --pg1-host-ca-path=/etc/pki/tls/certs

PostgreSQLホスト証明書ファイルオプション(--pg-host-cert-file)

PostgreSQLホストの証明書ファイルです。

クライアントの身元を証明するためにPostgreSQLホストに送信します。

example: --pg1-host-cert-file=/path/to/client.crt

PostgreSQLホストコマンドオプション(--pg-host-cmd)

PostgreSQLホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとPostgreSQLホストで異なる場合にのみ必要です。未定義の場合、PostgreSQLホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --pg1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:db-cmd

PostgreSQLホスト設定オプション(--pg-host-config)

pgBackRestデータベースホストの設定ファイルです。

PostgreSQLホスト上の設定ファイルの場所を設定します。PostgreSQLホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --pg1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:db-config

PostgreSQLホスト追加設定パスオプション(--pg-host-config-include-path)

pgBackRestデータベースホストの追加設定パスです。

PostgreSQLホスト上の追加設定パスの場所を設定します。PostgreSQLホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --pg1-host-config-include-path=/conf/pgbackrest/conf.d

PostgreSQLホスト設定パスオプション(--pg-host-config-path)

pgBackRestデータベースホストの設定パスです。

PostgreSQLホスト上の設定パスの場所を設定します。PostgreSQLホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --pg1-host-config-path=/conf/pgbackrest

PostgreSQLホストキーファイルオプション(--pg-host-key-file)

PostgreSQLホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --pg1-host-key-file=/path/to/client.key

PostgreSQLホストポートオプション(--pg-host-port)

pg-hostが設定されている場合のPostgreSQLホストのポートです。

PostgreSQLホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: pg-host-type=sshの場合、pg-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on pg-host-type):
    tls - 8432

allowed: [0, 65535]
example: --pg1-host-port=25

非推奨の名前:db-ssh-port

PostgreSQLホストプロトコル種別オプション(--pg-host-type)

PostgreSQLホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --pg1-host-type=tls

PostgreSQLホストユーザーオプション(--pg-host-user)

pg-hostが設定されている場合のPostgreSQLホストへのログインユーザーです。

このユーザーはリモートのpgBackRestプロセスも所有し、PostgreSQLへの接続を開始します。正しく動作させるには、PostgreSQLデータベースクラスターの所有者を使用してください。通常はデフォルトのpostgresです。

default: postgres
example: --pg1-host-user=db_owner

非推奨の名前:db-user

PostgreSQLパスオプション(--pg-path)

PostgreSQLのデータディレクトリです。

PostgreSQLが報告するdata_directoryと同じ値を設定してください。この値はさまざまな場所から読み取れますが、リストアやオフラインバックアップ時にそれらを利用できない場合に備えて、設定しておくことが賢明です。

pg-pathオプションは、オンラインバックアップのたびにPostgreSQLが報告する値と照合されるため、常に最新の値であるはずです。

example: --pg1-path=/data/db

非推奨の名前:db-path

PostgreSQLポートオプション(--pg-port)

PostgreSQLのポートです。

PostgreSQLが使用しているポートです。ほとんどのPostgreSQLクラスターはデフォルトのポートを使用するため、通常は指定する必要がありません。

default: 5432
allowed: [0, 65535]
example: --pg1-port=6543

非推奨の名前:db-port

PostgreSQLソケットパスオプション(--pg-socket-path)

PostgreSQLのunixソケットパスです。

PostgreSQLの起動時に指定したunixソケットディレクトリです。pgBackRestはOSの標準の場所を自動検索するため、postgresql.confのunix_socket_directories設定でソケットディレクトリを明示的に変更した場合を除き、通常はこの設定を指定する必要がありません。

example: --pg1-socket-path=/var/run/postgresql

非推奨の名前:db-socket-path

PostgreSQLデータベースユーザーオプション(--pg-user)

PostgreSQLのデータベースユーザーです。

PostgreSQLへの接続に使用するデータベースユーザー名です。未指定の場合、pgBackRestはローカルのOSユーザーまたはPGUSERで接続します。

example: --pg1-user=backupuser

6 - 期限切れ処理コマンド(expire)

pgBackRestのexpireコマンドのオプションと動作のリファレンス。

pgBackRestは、保持数または保持期間という保持種別に基づいてフルバックアップをローテーションします。保持数を指定した場合、期限切れ処理ではバックアップの作成時期ではなく、保持すべき数を基準にします。差分バックアップは数に基づきますが、依存するフルバックアップが期限切れになると必ず期限切れになります。増分バックアップが保持設定によって単独で期限切れになることはなく、関連するフルバックアップまたは差分バックアップとともに期限切れになります。詳細と例は、フルバックアップの保持 と差分バックアップの保持 の各セクションを参照してください。

アーカイブ済みWALは、デフォルトでは期限切れになっていないバックアップのために保持されます。推奨はしませんが、この保持スケジュールはretention-archiveオプションでリポジトリごとに変更できます。詳細と例は、アーカイブの保持 セクションを参照してください。

expireコマンドは、バックアップが成功するたびに自動実行され、ユーザーが実行することもできます。ユーザーが実行した場合は、設定された各リポジトリの保持設定に従って期限切れ処理を行います。--repoオプションを指定した場合は、そのリポジトリだけで期限切れ処理を行います。ユーザーは--setオプションで特定のバックアップセットに期限切れ処理を限定することもできます。この場合、--repoオプションを指定しない限り、すべてのリポジトリを検索し、セットの条件に一致するものを期限切れにします。expireコマンドを実行するたびに、アーカイブの保持スケジュールも確認し、処理を実行します。

コマンドオプション

指定セグメントより前のアーカイブ削除オプション(--archive-expire-before)

指定したWALセグメントより前のWALアーカイブを削除します。

指定したセグメントより前のWALセグメントのうち、保持されるバックアップに必要ないものだけを削除します。対象は、保持する最も古いバックアップセットより前のセグメント、またはリポジトリにバックアップがない場合は任意のセグメントです。指定したセグメントとそれ以降はすべて保持します。これは、PostgreSQLがarchive_cleanup_commandに%rとして渡す値に対応します。

このオプションは、主にバックアップを保存しないアーカイブ専用リポジトリを想定しています。また、フルバックアップの保持条件がまだ満たされず、アーカイブの期限切れ処理が開始されていない場合に、最初のバックアップより前のWALアーカイブ容量を回収するためにも使用できます。

example: --archive-expire-before=000000010000000000000010

最古バックアップ削除オプション(--oldest)

削除可能な最も古いバックアップセットを期限切れにします。

削除可能な最も古いフルバックアップセットを期限切れにします(つまり、より新しいフルバックアップが少なくとも1つ残ります)。これは保持数を手動で1減らすことに相当しますが、自動で計算します。期限切れになるフルバックアップセットに関連するすべてのバックアップ(差分および増分)も期限切れになります。

このオプションを使用すると、同じ実行で期限切れバックアップのWALも削除できるように、アーカイブの保持設定も一時的に調整します。

--repo-retention-full-type=timeによる期間ベースのフルバックアップ保持を設定している場合、--oldestは今回の実行に限り、数に基づく期限切れ処理を使用します。

警告:

このオプションは--setと併用できません。

default: n
example: --oldest

バックアップセットオプション(--set)

期限切れにするバックアップセットです。

リポジトリに少なくとも1つのフルバックアップを残す必要があるという条件を除き、バックアップの保持規則にかかわらず、指定したバックアップセット(指定したバックアップラベルと、それに依存するバックアップがあればそのすべて)を期限切れにします。

警告:

このオプションは細心の注意を払って使用してください。指定したバックアップセットのすべてのバックアップと、バックアップの一貫性確保に不要なアーカイブを、pgBackRestリポジトリから恒久的に削除します。この処理により、PITRができなくなる可能性があります。--repo-retention-fullや--repo-retention-archiveオプションが設定されている場合は、アーカイブが意図せず期限切れになることを防ぐため、臨時の期限切れ処理を行う間、これらのオプションの値を最大値に上書きすることを推奨します。

example: --set=20150131-153358F_20150131-153401I

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

試行実行オプション(--dry-run)

コマンドを試行実行します。

--dry-runはコマンドライン専用のオプションです。実際には変更を加えずに、コマンドがどのような変更を行うかを確認したい場合に指定できます。

default: n
example: --dry-run

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

ロックパスオプション(--lock-path)

ロックファイルを保存するパスです。

ロックパスは、pgBackRestが競合する処理の同時実行を防ぐためのロックファイルを作成する場所です。

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

リポジトリオプション

リポジトリ指定オプション(--repo)

リポジトリを指定します。

コマンドの操作対象となるリポジトリを指定します。

たとえば、このオプションを使用すると、pgBackRestに選択させずに、特定のリポジトリからリストアできます。

allowed: [1, 256]
example: --repo=1

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

アーカイブ保持オプション(--repo-retention-archive)

連続したWALを何回分のバックアップに相当する期間保持するかを指定します。

注記: バックアップの一貫性を確保するために必要なWALセグメントは、このオプションの設定にかかわらず、そのバックアップが期限切れになるまで常に保持されます。

この値が未設定で、repo-retention-full-typeがcount(デフォルト)の場合、期限切れ処理の対象アーカイブを決める値は、repo-retention-archive-typeがfull(またはdiff)なら、それに対応するrepo-retention-full(またはrepo-retention-diff)の値がデフォルトになります。これにより、すでに期限切れになったバックアップのWALだけが期限切れになります。repo-retention-full-typeがtimeの場合は、repo-retention-fullの設定を満たして保持された最も古いフルバックアップより前のアーカイブを削除することがデフォルトになります。

repo-retention-archive-typeをincrに設定した場合は、このオプションを設定する必要があります。ディスク容量に余裕がない場合は、この設定をrepo-retention-archive-typeと組み合わせ、WALセグメントを積極的に期限切れにできます。ただし、WALが期限切れになったバックアップからPITRを実行できなくなるため、推奨しません。

allowed: [1, 9999999]
example: --repo1-retention-archive=2

非推奨の名前:retention-archive

アーカイブ保持種別オプション(--repo-retention-archive-type)

WALの保持に使用するバックアップの種類です。

fullに設定すると、pgBackRestはrepo-retention-archiveで定義した数のフルバックアップに対応するアーカイブログを保持します。diff(差分)に設定すると、repo-retention-archiveで定義した数のフルバックアップと差分バックアップに対応するアーカイブログを保持します。つまり、最後に取得したバックアップがフルバックアップであれば、repo-retentionの計算では差分バックアップとして数えます。incr(増分)に設定すると、repo-retention-archiveで定義した数のフルバックアップ、差分バックアップ、増分バックアップに対応するアーカイブログを保持します。この設定はデフォルトから変更しないことを推奨します。デフォルトでは、フルバックアップの期限切れに伴ってのみWALを期限切れにします。

default: full
example: --repo1-retention-archive-type=diff

非推奨の名前:retention-archive-type

差分バックアップ保持オプション(--repo-retention-diff)

保持する差分バックアップの数です。

差分バックアップが期限切れになると、それに関連するすべての増分バックアップも期限切れになります。未定義の場合は、依存するフルバックアップが期限切れになるまで、すべての差分バックアップを保持します。

期限切れ処理では、フルバックアップも差分バックアップの数に含まれます。このため、ほとんどの場合、保持が必要な差分バックアップの数はわずかに少なくなります。

allowed: [1, 9999999]
example: --repo1-retention-diff=3

非推奨の名前:retention-diff

フルバックアップ保持オプション(--repo-retention-full)

フルバックアップの保持数/保持期間です。

フルバックアップが期限切れになると、それに関連するすべての差分バックアップと増分バックアップも期限切れになります。このオプションが未定義の場合は警告を出力します。無期限の保持が必要な場合は、最大値を設定してください。

allowed: [1, 9999999]
example: --repo1-retention-full=2

非推奨の名前:retention-full

フルバックアップ保持種別オプション(--repo-retention-full-type)

フルバックアップの保持種別です。

repo-retention-full設定が、保持する期間(日数)とフルバックアップの数のどちらを表すかを決定します。

timeに設定すると、repo-retention-full以上の日数が経過したバックアップが少なくともほかに1つ存在する場合に、repo-retention-fullより古いフルバックアップをリポジトリから削除します。たとえば、repo-retention-fullが30(日)で、25日前と35日前の2つのフルバックアップがある場合、どちらも期限切れにはなりません。35日前のバックアップを期限切れにすると25日前のバックアップだけが残り、古いバックアップを期限切れにする前に少なくとも30日前のバックアップを1つ確保するという30日間の保持ポリシーに違反するためです。repo-retention-archive-typeとrepo-retention-archiveを明示的に設定していない限り、残っている最も古いフルバックアップより前のアーカイブ済みWALは自動的に期限切れになります。

countに設定すると、repo-retention-fullを超えるフルバックアップを期限切れにします。たとえば、repo-retention-fullが4で、5つ目のフルバックアップが完了すると、数を4に保つために最も古いフルバックアップを期限切れにします。

保持の計算に含めるには、バックアップが正常に完了している必要があります。たとえば、repo-retention-full-typeがcountで、repo-retention-fullが2の場合、最も古いバックアップを期限切れにするには、完了したフルバックアップが3つ必要です。

default: count
example: --repo1-retention-full-type=time

バックアップ履歴保持オプション(--repo-retention-history)

バックアップ履歴マニフェストを保持する日数です。

バックアップが完了すると、バックアップマニフェストのコピーをbackup.historyパスに保存します。これらのファイルは、バックアップやWALの増加量を経時的に測定するなどのデータ分析に役立つため、デフォルトでは期限切れになりません。

バックアップ履歴マニフェストを保持する日数を定義するには、repo-retention-historyを設定します。期限切れになっていないバックアップは、常にバックアップ履歴に保持されます。期限切れになっていないバックアップの履歴だけを保持するには、repo-retention-history=0を指定します。

フルバックアップの履歴マニフェストが期限切れになると、そのフルバックアップに関連するすべての差分バックアップと増分バックアップの履歴マニフェストも期限切れになります。

allowed: [0, 9999999]
example: --repo1-retention-history=365

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ内にシンボリックリンクを作成します。

latestとテーブルスペースのシンボリックリンクの作成を有効にします。これらのシンボリックリンクは、スナップショットを使ってリポジトリ内でその場でリカバリーする場合に最も役立ちますが、そのような利用は一般的ではありません。

大多数のユーザーには役立たないと考えられる機能ですが、従来の動作を維持するため、デフォルトで有効になっています。ただし、シンボリックリンクをサポートしないPosixに似たストレージでは、無効にすると役立つ場合があります。

default: y
example: --no-repo1-symlink

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

7 - ヘルプコマンド (help)

pgBackRestのhelpコマンドのオプションおよび動作に関するリファレンス。

3つのレベルのヘルプが用意されています。コマンドが指定されない場合は、一般のヘルプが表示されます。コマンドが指定された場合(例:pgbackrest help backup)、そのコマンドの詳細な説明と有効なオプションの一覧が表示されます。コマンドに加えてオプションが指定された場合(例:pgbackrest help backup type)、そのオプションがコマンドに適用される際の詳細な説明が表示されます。

コマンドオプション

ヘルプ表示オプション (--help)

ヘルプを表示します。

ヘルプを表示します。helpコマンドが指定されていなくても同様に機能し、--versionオプションを上書きします。

default: n
example: --help

バージョン表示オプション (--version)

バージョンを表示します。

バージョン情報を表示します。versionまたはhelpコマンドが指定されていなくても同様です。

default: n
example: --version

8 - 情報表示コマンド(info)

pgBackRestのinfoコマンドのオプションと動作のリファレンス。

infoコマンドは、単一のstanzaまたはすべてのstanzaを対象に動作します。デフォルトはテキスト出力で、要求したstanzaのバックアップについて、人が読みやすい要約を提供します。この形式は、どのリリースでも変更される可能性があります。

機械可読の出力には--output=jsonを使用します。JSON出力はテキスト出力よりはるかに多くの情報を含み、バグが見つからない限り形式は維持されます。

実行を高速化するには、--detail-level=progressを指定して出力を進行状況の情報だけに限定します。この場合、stanzaが利用可能かどうかの確認以外は、すべての確認を省略します。

stanzaごとに独立したセクションがあり、--stanzaオプションで単一のstanzaに出力を限定できます。stanzaの「status」は、stanzaの健全性を簡潔に示します。「ok」であれば、pgBackRestは正常に動作しています。複数のリポジトリがある場合、「mixed」は、1つ以上のリポジトリでstanzaが正常でないことを示し、その場合はリポジトリごとにstanzaの状態を詳しく表示します。リポジトリで既知のエラーコードに該当しないエラーが発生した場合は、エラーコード「other」を使用し、エラーの詳細をすべて表示します。「wal archive min/max」は、現在アーカイブに保存されている最小と最大のWALを示します。複数のリポジトリがある場合、--repoオプションを設定しない限り、すべてのリポジトリを対象に報告します。アーカイブの保持ポリシーなどの理由により、途中に欠落がある可能性があります。

ホスト上で該当するコマンドが実行中の場合、「status」の横に「backup/expire running」や「restore running」というメッセージが表示されます。テキスト出力にはリポジトリごとの進行状況も表示され、JSON出力には「repo」配列が含まれます。

バックアップは古い順に表示します。最も古いバックアップは常にフルバックアップ(ラベルの末尾のFで示します)ですが、最新のバックアップはフル、差分(末尾がD)、増分(末尾がI)のいずれの場合もあります。

「timestamp start/stop」は、バックアップが実行された期間を示します。「timestamp stop」は、ポイントインタイムリカバリーの際に使用するバックアップを決定するために使用できます。ポイントインタイムリカバリーの詳細は、ポイントインタイムリカバリー セクションを参照してください。

「wal start/stop」は、リストア時にデータベースの一貫性を確保するために必要なWALの範囲を示します。backupコマンドは、完了する前に、この範囲のWALがアーカイブに存在することを確認します。

「database size」は、データベース全体の非圧縮サイズです。「database backup size」は、実際にバックアップするデータベース内のデータ量です(フルバックアップでは同じ値になります)。

「repo」は、このバックアップが存在するリポジトリを示します。「backup set size」は、このバックアップからデータベースをリストアするために必要な、このバックアップと参照先バックアップのリポジトリ内のすべてのファイルを含みます。一方、「backup size」は、このバックアップのファイルだけを含みます(フルバックアップでは、これらも同じ値になります)。pgBackRestで圧縮が有効な場合、リポジトリのサイズには圧縮後のファイルサイズが反映されます。

「backup reference total」は、このバックアップのリストアに必要な追加のバックアップの一覧を要約します。参照先の完全な一覧を表示するには、--setオプションを使用します。

コマンドオプション

詳細度オプション(--detail-level)

出力の詳細度です。

次のレベルをサポートします。

  • progress - 現在のバックアップ/期限切れ処理の進行状況のみを出力します。このレベルは--setオプションと併用できません。
  • full - 完全な情報を出力します。
default: full
example: --detail-level=progress

出力オプション(--output)

出力形式です。

次の出力形式をサポートします。

  • text - 人が読みやすいバックアップ情報の要約。
  • json - JSON形式の、網羅的で機械可読なバックアップ情報。
default: text
example: --output=json

バックアップセットオプション(--set)

詳細を表示するバックアップセットです。

詳細には、このバックアップのリストアに必要な追加のバックアップの完全な一覧、バックアップセット内のデータベースの一覧(OID付き、テンプレートデータベースを除く)、テーブルスペース(OID付き)とデフォルトのリストア先、シンボリックリンクと--link-all指定時のリストア先が含まれます。

example: --set=20150131-153358F_20150131-153401I

種類オプション(--type)

バックアップの種類で絞り込みます。

次のバックアップ種類のいずれかを使用して、出力を絞り込みます。

  • full - フルバックアップのみを出力します。
  • diff - 差分バックアップのみを出力します。
  • incr - 増分バックアップのみを出力します。
example: --type=full

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

ロックパスオプション(--lock-path)

ロックファイルを保存するパスです。

ロックパスは、pgBackRestが競合する処理の同時実行を防ぐためのロックファイルを作成する場所です。

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

リポジトリオプション

リポジトリ指定オプション(--repo)

リポジトリを指定します。

コマンドの操作対象となるリポジトリを指定します。

たとえば、このオプションを使用すると、pgBackRestに選択させずに、特定のリポジトリからリストアできます。

allowed: [1, 256]
example: --repo=1

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ対象時刻オプション(--repo-target-time)

リポジトリの対象時刻です。

対象時刻は、コマンドがバージョン管理されたストレージ上のリポジトリを読み取る際の時点を定義します。これにより、ある時点の状態のリポジトリを読み取り、ユーザーの誤操作やマルウェアによって削除または破損したデータをリカバリーできます。

S3、GCS、Azureはストレージのバージョン管理をサポートしますが、通常はデフォルトで有効になっていません。バージョン管理の有効化に加え、S3ではオブジェクトロック、GCSやAzureでは論理削除を有効にすると役立つ場合があります。

repo-target-timeオプションを指定する場合は、repoオプションも指定する必要があります。すべてのリポジトリ種類がバージョン管理をサポートするとは限らず、一般にリカバリーでは単一のリポジトリを対象とするのが妥当です。

ストレージのタイムスタンプとの比較は、指定したタイムスタンプ以下(<=)で行い、タイムスタンプにミリ秒を指定しても切り捨てられます。

example: --repo-target-time=2024-08-08 12:12:12+00

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

9 - リポジトリ取得コマンド(repo-get)

pgBackRestのrepo-getコマンドのオプションと動作のリファレンス。

unixのcatコマンドに似ていますが、サポートされているすべてのリポジトリ種類で動作します。このコマンドには完全修飾ファイル名が必要で、主に管理、調査、テストに使用します。通常のpgBackRest構成で必須のものではありません。

リポジトリが暗号化されている場合、repo-getはファイルを自動的に復号します。ファイルは自動的には展開しませんが、出力をgzip -dなどの適切な展開コマンドにパイプで渡せます。

複数のリポジトリが設定されている場合、--repoオプションを指定しない限り、コマンドはデフォルトで最も優先度の高いリポジトリ(例:repo1)を使用します。

コマンドオプション

欠落無視オプション(--ignore-missing)

ソースファイルの欠落を無視します。

ソースファイルが存在しない場合、エラーを送出せずに終了コード1で終了します。

default: n
example: --ignore-missing

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

生データオプション(--raw)

データを変換しません。

現在のコマンドでは、データの変換(暗号化、展開など)を行いません。

default: n
example: --raw

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

リポジトリオプション

リポジトリ指定オプション(--repo)

リポジトリを指定します。

コマンドの操作対象となるリポジトリを指定します。

たとえば、このオプションを使用すると、pgBackRestに選択させずに、特定のリポジトリからリストアできます。

allowed: [1, 256]
example: --repo=1

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ対象時刻オプション(--repo-target-time)

リポジトリの対象時刻です。

対象時刻は、コマンドがバージョン管理されたストレージ上のリポジトリを読み取る際の時点を定義します。これにより、ある時点の状態のリポジトリを読み取り、ユーザーの誤操作やマルウェアによって削除または破損したデータをリカバリーできます。

S3、GCS、Azureはストレージのバージョン管理をサポートしますが、通常はデフォルトで有効になっていません。バージョン管理の有効化に加え、S3ではオブジェクトロック、GCSやAzureでは論理削除を有効にすると役立つ場合があります。

repo-target-timeオプションを指定する場合は、repoオプションも指定する必要があります。すべてのリポジトリ種類がバージョン管理をサポートするとは限らず、一般にリカバリーでは単一のリポジトリを対象とするのが妥当です。

ストレージのタイムスタンプとの比較は、指定したタイムスタンプ以下(<=)で行い、タイムスタンプにミリ秒を指定しても切り捨てられます。

example: --repo-target-time=2024-08-08 12:12:12+00

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

10 - リポジトリ一覧コマンド(repo-ls)

pgBackRestのrepo-lsコマンドのオプションと動作のリファレンス。

unixのlsコマンドに似ていますが、サポートされているすべてのリポジトリ種類で動作します。このコマンドは、絶対パス、または--repo-pathオプションで定義したリポジトリパスからの相対パスを受け取ります。主に管理、調査、テストに使用し、通常のpgBackRest構成で必須のものではありません。

デフォルトのテキスト出力は、1行に1つのファイル名を表示します。--output=jsonを指定すると、JSON形式で出力できます。

複数のリポジトリが設定されている場合、--repoオプションを指定しない限り、コマンドはデフォルトで最も優先度の高いリポジトリ(例:repo1)を使用します。

コマンドオプション

出力フィルターオプション(--filter)

正規表現で出力を絞り込みます。

出力する前に、ファイル/パス名に対してフィルターを適用します。

example: --filter="(F|D|I)$"

出力オプション(--output)

出力形式です。

次の出力形式をサポートします。

  • text - 1行に1つのファイル/リンク/パス名を表示する単純な一覧。
  • json - JSON形式の詳細なファイル/リンク/パス情報。

JSON形式で使用できるフィールドは次のとおりです。

  • name - ファイル/リンク/パス名(再帰時は部分的なパスも含む)。
  • type - file、path、linkのいずれか。
  • size - バイト単位のサイズ(ファイルのみ)。
  • time - 最終更新時刻(ファイルのみ)。
  • destination - リンク先(リンクのみ)。
default: text
example: --output=json

サブパス再帰オプション(--recurse)

出力にすべてのサブパスを含めます。

すべてのサブパスと、それらのファイルを出力に含めます。

default: n
example: --recurse

出力並べ替えオプション(--sort)

出力を昇順、降順、または並べ替えなしにします。

次の並べ替え方式をサポートします。

  • asc - 昇順に並べ替えます。
  • desc - 降順に並べ替えます。
  • none - 並べ替えません。
default: asc
example: --sort=desc

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

リポジトリオプション

リポジトリ指定オプション(--repo)

リポジトリを指定します。

コマンドの操作対象となるリポジトリを指定します。

たとえば、このオプションを使用すると、pgBackRestに選択させずに、特定のリポジトリからリストアできます。

allowed: [1, 256]
example: --repo=1

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ対象時刻オプション(--repo-target-time)

リポジトリの対象時刻です。

対象時刻は、コマンドがバージョン管理されたストレージ上のリポジトリを読み取る際の時点を定義します。これにより、ある時点の状態のリポジトリを読み取り、ユーザーの誤操作やマルウェアによって削除または破損したデータをリカバリーできます。

S3、GCS、Azureはストレージのバージョン管理をサポートしますが、通常はデフォルトで有効になっていません。バージョン管理の有効化に加え、S3ではオブジェクトロック、GCSやAzureでは論理削除を有効にすると役立つ場合があります。

repo-target-timeオプションを指定する場合は、repoオプションも指定する必要があります。すべてのリポジトリ種類がバージョン管理をサポートするとは限らず、一般にリカバリーでは単一のリポジトリを対象とするのが妥当です。

ストレージのタイムスタンプとの比較は、指定したタイムスタンプ以下(<=)で行い、タイムスタンプにミリ秒を指定しても切り捨てられます。

example: --repo-target-time=2024-08-08 12:12:12+00

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

11 - リストアコマンド(restore)

pgBackRestのrestoreコマンドのオプションと動作のリファレンス。

restoreコマンドは、デフォルトではバックアップが存在する最初のリポジトリから最新のバックアップを自動選択します(クイックスタート - バックアップのリストア を参照)。リポジトリの確認順序はpgbackrest.confによって決まります(例:repo2より先にrepo1を確認します)。特定のリポジトリから選択するには、--repoオプション(例:--repo=1)を指定できます。最新以外のバックアップが必要な場合は、--setオプションを指定できます。

PITR に --type=time または --type=lsn を指定する場合は、--target オプションで対象の時刻または LSN を指定する必要があります。--set を指定しない場合、設定済みのリポジトリを順に調べ、終了時刻が対象時刻より前のバックアップ、または終了 LSN が対象 LSN 以下のバックアップを選択します。一致するバックアップが見つからない場合、--type=time と --type=lsn のどちらでも pgBackRest はエラーを返し、最新のバックアップにフォールバックしません。xid など、その他の PITR の種類では、対象が最新のバックアップより前であれば --set オプションを指定する必要があります。詳細と例については、ポイントインタイムリカバリ を参照してください。

PostgreSQLの推奨に従い、レプリケーションスロットは含めません。詳細は、PostgreSQLドキュメントのデータディレクトリのバックアップ を参照してください。

コマンドオプション

アーカイブモードオプション(--archive-mode)

リストアしたクラスターでアーカイブを維持または無効にします。

このオプションでは、リストアしたクラスターのアーカイブを維持または無効にできます。作業のためにクラスターを昇格させる必要があるものの、新しいプライマリーにする意図がない場合に役立ちます。この場合、そのクラスターからWALをリポジトリに送信するのは適切ではありません。

次のモードをサポートします。

  • off - archive_mode=offを設定してアーカイブを無効にします。
  • preserve - 現在のarchive_mode設定を維持します。

注記:このオプションはPostgreSQL < 12では利用できません。

default: preserve
example: --archive-mode=off

データベース除外オプション(--db-exclude)

指定したデータベースを除外してリストアします。

除外したデータベースは、容量を節約しつつPostgreSQLがリカバリーを実行できるように、ゼロで埋めたスパースファイルとしてリストアします。リカバリー後、これらのデータベースにはアクセスできませんが、drop databaseコマンドで削除できます。--db-excludeオプションを複数回指定して、除外するデータベースを複数指定できます。

--db-includeオプションと組み合わせた場合、--db-excludeは標準のシステムデータベース(template0、template1、postgres)にのみ適用されます。

example: --db-exclude=db_main

対象データベースオプション(--db-include)

指定したデータベースのみをリストアします。

この機能では、選択したデータベースのみをリストアできます。明示的に含めなかったデータベースは、容量を節約しつつPostgreSQLがリカバリーを実行できるように、ゼロで埋めたスパースファイルとしてリストアします。リカバリー後、含めなかったデータベースにはアクセスできませんが、drop databaseコマンドで削除できます。

注記: 組み込みデータベース(template0、template1、postgres)は、明示的に除外しない限り常にリストアします。

--db-includeオプションを複数回指定して、含めるデータベースを複数指定できます。

詳細と注意事項は、選択したデータベースのリストア を参照してください。

example: --db-include=db_main

強制オプション(--force)

リストアを強制します。

このオプションを単独で使用すると、PostgreSQLのデータパスとテーブルスペースのパスを完全に上書きします。--deltaと併用すると、チェックサムの代わりにタイムスタンプ/サイズを用いた差分処理を実行します。

default: n
example: --force

すべてのシンボリックリンクをリストアします。

デフォルトでは、シンボリックリンクされたディレクトリとファイルは、$PGDATA内の通常のディレクトリとファイルとしてリストアします。元のバックアップを取得したシステムとは異なるシステムで、元のリンク先にシンボリックリンクをリストアするのは安全でない可能性があるためです。このオプションは、バックアップを取得した元のシステムと同じ状態ですべてのシンボリックリンクをリストアします。

default: n
example: --link-all

シンボリックリンクのリンク先を変更します。

リストア時に、シンボリックリンクのリンク先ファイルまたはパスを変更できます。バックアップを生成した元のシステムとはストレージ構成が異なるシステムへのリストアに役立ちます。

example: --link-map=pg_xlog=/data/xlog

リカバリー設定オプション(--recovery-option)

postgresql.auto.confまたはrecovery.confのオプションを設定します。

postgresql.auto.confまたはrecovery.confのオプションの詳細は、サーバーの設定 を参照してください(使用しているPostgreSQLバージョンを必ず選択してください)。このオプションは複数回使用できます。

PostgreSQL >= 12では、オプションをpostgresql.auto.confに書き込みます。それ以外のすべてのバージョンでは、recovery.confに書き込みます。

注記: restore_commandオプションは自動生成されますが、このオプションで上書きできます。pgBackRestが処理するように設計されているため、独自のrestore_commandを指定する場合は注意してください。リカバリー対象のオプション(recovery_target_name、recovery_target_timeなど)はpgBackRestが自動生成するため、このオプションで設定しないでください。

pgBackRestはpostgresql.auto.confまたはrecovery.confファイルを書き込んだ後にPostgreSQLを起動しないため、手動で再起動する前に、いつでもpostgresql.auto.confまたはrecovery.confを編集/確認できます。

example: --recovery-option=primary_conninfo=db.mydomain.com

バックアップセットオプション(--set)

リストアするバックアップセットです。

リストア対象のバックアップセットです。latestは最新のバックアップをリストアします。それ以外の場合は、リストアするバックアップの名前を指定します。

default: latest
example: --set=20150131-153358F_20150131-153401I

テーブルスペースマッピングオプション(--tablespace-map)

テーブルスペースを指定したディレクトリにリストアします。

リストア時にテーブルスペースを新しい場所に移動します。レプリカ上でテーブルスペースの場所が異なる場合や、アップグレード後のシステムのマウントポイントが異なる場合に役立ちます。

テーブルスペースの場所はpg_tablespaceに保存されていないため、テーブルスペースを移動しても問題ありません。ただし、テーブルスペースをdata_directoryに移動することは推奨せず、問題が生じる可能性があります。テーブルスペースの移動については、http://www.databasesoup.com/2013/11/moving-tablespaces.html が参考になります。

example: --tablespace-map=ts_01=/db/ts_01

全テーブルスペースマッピングオプション(--tablespace-map-all)

すべてのテーブルスペースを指定したディレクトリにリストアします。

デフォルトでは、テーブルスペースを元の場所にリストアします。この動作はtablespace-mapオプションでテーブルスペースごとに変更できますが、すべてのテーブルスペースを一度に新しいディレクトリに再マッピングする方が望ましい場合もあります。バックアップを生成した元のシステムとストレージ構成が異なる可能性がある、開発環境やステージング環境で特に役立ちます。

指定したパスは、バックアップ内のすべてのテーブルスペースを作成する際の親パスになります。

注意:

バックアップの開始後に作成されたテーブルスペースはマッピングされません。テーブルスペースのマッピングが必要な場合は、テーブルスペースの作成後に新しいバックアップを取得してください。

example: --tablespace-map-all=/data/tablespace

リカバリー対象オプション(--target)

リカバリーの対象です。

--typeがlsn、name、xid、timeの場合のリカバリー対象を定義します。対象が最新のバックアップより前で、--typeがtimeでもlsnでもない場合は、--setオプションでバックアップセットを指定してください。

example: --target=2015-01-30 14:15:11 EST

対象到達時の動作オプション(--target-action)

リカバリー対象に到達したときの動作です。

PostgreSQL 10以降のデフォルトであるhot_standby=onの場合、このオプションは、対象に到達したとき、またはアーカイブ内のWALが尽きたときのクラスターの動作を一貫して制御します。

PostgreSQL >= 12でhot_standby=offの場合、pauseはshutdownと同じ動作になります。PostgreSQL < 12でhot_standby=offの場合、pauseはpromoteと同じ動作になります。

次の動作をサポートします。

  • pause - リカバリー対象に到達したら一時停止します。
  • promote - リカバリー対象に到達したら昇格し、タイムラインを切り替えます。
  • shutdown - リカバリー対象に到達したらサーバーを停止します。(PostgreSQL >= 9.5)
default: pause
example: --target-action=promote

リカバリー対象除外オプション(--target-exclusive)

リカバリー対象に到達する直前で停止します。

対象へのリカバリーで対象自体を除外するかどうかを定義します(デフォルトでは含めます)。--typeがlsn、time、xidの場合にのみ有効です。たとえば、--type=xidかつ--target=1007の場合に--target-exclusiveを使用すると、トランザクション1007の内容を除外します。詳細は、PostgreSQLドキュメントのrecovery_target_inclusiveオプションを参照してください。

default: n
example: --no-target-exclusive

対象タイムラインオプション(--target-timeline)

タイムラインに沿ってリカバリーします。

詳細は、PostgreSQLドキュメントのrecovery_target_timelineを参照してください。

example: --target-timeline=3

種類オプション(--type)

リカバリーの種類です。

次のリカバリー種類をサポートします。

  • default - アーカイブストリームの末尾までリカバリーします。
  • immediate - データベースの一貫性が確保されるまでだけリカバリーします。
  • lsn - --targetで指定したLSN(Log Sequence Number)までリカバリーします。このオプションはPostgreSQL >= 10でのみサポートします。
  • name - --targetで指定したリストアポイントまでリカバリーします。
  • xid - --targetで指定したトランザクションIDまでリカバリーします。
  • time - --targetで指定した時刻までリカバリーします。
  • preserve - 既存のpostgresql.auto.confまたはrecovery.confファイルを維持します。
  • standby - postgresql.auto.confまたはrecovery.confファイルにstandby_mode=onを追加し、クラスターをスタンバイモードで起動させます。
  • none - postgresql.auto.confもrecovery.confも書き込まないため、PostgreSQLはpg_xlog/pg_walに存在するWALセグメントを使用して一貫性の確保を試みます。必要なWALセグメントを用意するか、archive-copy設定でバックアップに含めてください。

警告:

リカバリーの終了時にタイムラインが増加しないため、type=noneでのリカバリーは避けてください。たとえば、PostgreSQLが重複するWALのアーカイブを試みて拒否され、ディスクが満杯になり、PostgreSQLのパニックに至る可能性があります。また、pg_rewindなどのツールが正しく動作しなかったり、破損を引き起こしたりする可能性があります。

オフラインバックアップのデフォルトのリストアtypeはnoneです。これは、wal_level=minimalではポイントインタイムリカバリーができないためです。wal_level > minimalであればオフラインバックアップからもポイントインタイムリカバリーが可能なため、typeを明示的に設定した場合はその設定に従います。

default: default
example: --type=xid

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: y
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

pgBackRestコマンドオプション(--cmd)

pgBackRestコマンドです。

pgBackRestは、たとえばrestoreコマンドがrestore_command設定を生成する際に、コマンド文字列を生成することがあります。この場合、cmdオプションを指定しない限り、pgBackRestプロセスの実行に使用したコマンドが使われます。

注意:

pgBackRestコマンドをラッパー経由で実行すると、予測できない動作を引き起こす可能性があるため、推奨しません。

default: [path of executed pgbackrest binary]
example: --cmd=/var/lib/pgsql/bin/pgbackrest_wrapper.sh

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

差分処理オプション(--delta)

チェックサムを使用してリストアまたはバックアップします。

リストア時には、デフォルトでPostgreSQLのデータディレクトリとテーブルスペースディレクトリが存在し、空であることを想定します。このオプションは、チェックサムを使用して差分リストアを実行します。

バックアップ時には、このオプションによってタイムスタンプの代わりにチェックサムを使用し、ファイルをコピーするかどうかを判定します。

default: n
example: --delta

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

ロックパスオプション(--lock-path)

ロックファイルを保存するパスです。

ロックパスは、pgBackRestが競合する処理の同時実行を防ぐためのロックファイルを作成する場所です。

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

最大プロセス数オプション(--process-max)

圧縮/転送に使用する最大プロセス数です。

各プロセスが圧縮と転送を実行することでコマンドを高速化しますが、データベースのパフォーマンスに影響するほどprocess-maxを高く設定しないでください。

default: 1
allowed: [1, 999]
example: --process-max=4

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

メンテナー向けオプション

PostgreSQLバージョン強制指定オプション(--pg-version-force)

PostgreSQLのバージョンを強制指定します。

pg_controlまたはWALヘッダーを読み取って自動検出したバージョンの代わりに、指定したPostgreSQLバージョンを使用します。これは主に、これらの値がリリース版とは異なるPostgreSQLのフォークや開発版で役立ちます。PostgreSQLがserver_version_numで報告するバージョンは、強制指定したバージョンと一致する必要があります。

警告:

このオプションは慎重に使用してください。pg_controlとWALヘッダーは引き続き、指定バージョンで想定される形式、つまり公式のオープンソース版PostgreSQLの形式で読み取られます。フォークや開発版が、pgBackRestの依存するフィールドの形式を変更していると、予期しない動作が生じます。一般に、このオプションが想定どおりに動作するのは、フォークが独自の構造体メンバーをすべて標準のPostgreSQLメンバーの後ろに追加している場合に限られます。

example: --pg-version-force=15

リポジトリオプション

リポジトリ指定オプション(--repo)

リポジトリを指定します。

コマンドの操作対象となるリポジトリを指定します。

たとえば、このオプションを使用すると、pgBackRestに選択させずに、特定のリポジトリからリストアできます。

allowed: [1, 256]
example: --repo=1

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ対象時刻オプション(--repo-target-time)

リポジトリの対象時刻です。

対象時刻は、コマンドがバージョン管理されたストレージ上のリポジトリを読み取る際の時点を定義します。これにより、ある時点の状態のリポジトリを読み取り、ユーザーの誤操作やマルウェアによって削除または破損したデータをリカバリーできます。

S3、GCS、Azureはストレージのバージョン管理をサポートしますが、通常はデフォルトで有効になっていません。バージョン管理の有効化に加え、S3ではオブジェクトロック、GCSやAzureでは論理削除を有効にすると役立つ場合があります。

repo-target-timeオプションを指定する場合は、repoオプションも指定する必要があります。すべてのリポジトリ種類がバージョン管理をサポートするとは限らず、一般にリカバリーでは単一のリポジトリを対象とするのが妥当です。

ストレージのタイムスタンプとの比較は、指定したタイムスタンプ以下(<=)で行い、タイムスタンプにミリ秒を指定しても切り捨てられます。

example: --repo-target-time=2024-08-08 12:12:12+00

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

stanzaオプション

PostgreSQLパスオプション(--pg-path)

PostgreSQLのデータディレクトリです。

PostgreSQLが報告するdata_directoryと同じ値を設定してください。この値はさまざまな場所から読み取れますが、リストアやオフラインバックアップ時にそれらを利用できない場合に備えて、設定しておくことが賢明です。

pg-pathオプションは、オンラインバックアップのたびにPostgreSQLが報告する値と照合されるため、常に最新の値であるはずです。

example: --pg1-path=/data/db

非推奨の名前:db-path

12 - サーバーコマンド(server)

pgBackRestのserverコマンドのオプションと動作のリファレンス。

pgBackRestサーバーは、SSHプロトコルを使用せずにリモートホストにアクセスできるようにします。

コマンドオプション

TLSサーバーアドレスオプション(--tls-server-address)

TLSサーバーのアドレスです。

サーバーがクライアントのリクエストを待ち受けるIPアドレスです。

default: localhost
example: --tls-server-address=*

TLSサーバー認可クライアントオプション(--tls-server-auth)

TLSサーバーで認可するクライアントです。

サーバーはクライアントの証明書を検証し、証明書のCN(Common Name)をtls-server-authオプションでサーバーに設定した一覧と照合することで、クライアントを認可します。

tls-server-authオプションにカンマ区切りの一覧を指定すると、クライアントのCNを必要な数のstanzaに対して認可できます。tls-server-auth=client-cn=*を指定すると、すべてのstanzaに対して認可できます。クライアントのCNにワイルドカードは指定できません。

example: --tls-server-auth=client-cn=stanza1,stanza2

TLSサーバー認証局オプション(--tls-server-ca-file)

TLSサーバーの認証局です。

クライアント証明書が信頼できる認証局によって署名されていることを確認します。

example: --tls-server-ca-file=/path/to/server.ca

TLSサーバー証明書オプション(--tls-server-cert-file)

TLSサーバーの証明書ファイルです。

サーバーの身元を示すためにクライアントに送信します。

example: --tls-server-cert-file=/path/to/server.crt

TLSサーバーキーオプション(--tls-server-key-file)

TLSサーバーのキーファイルです。

サーバー証明書が所有者によって送信されたことを証明します。

example: --tls-server-key-file=/path/to/server.key

TLSサーバーポートオプション(--tls-server-port)

TLSサーバーのポートです。

サーバーがクライアントのリクエストを待ち受けるポートです。

default: 8432
allowed: [1, 65535]
example: --tls-server-port=8000

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

13 - サーバー生存確認コマンド(server-ping)

pgBackRestのserver-pingコマンドのオプションと動作のリファレンス。

pgBackRest TLSサーバーにpingを送信し、接続を受け付けていることを確認します。認証は試みないため、生存確認のみを行います。

コマンドラインにホストを指定しない場合は、tls-server-hostオプションを使用します。

コマンドオプション

TLSサーバーアドレスオプション(--tls-server-address)

TLSサーバーのアドレスです。

サーバーがクライアントのリクエストを待ち受けるIPアドレスです。

default: localhost
example: --tls-server-address=*

TLSサーバーポートオプション(--tls-server-port)

TLSサーバーのポートです。

サーバーがクライアントのリクエストを待ち受けるポートです。

default: 8432
allowed: [1, 65535]
example: --tls-server-port=8000

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

14 - stanza作成コマンド(stanza-create)

pgBackRestのstanza-createコマンドのオプションと動作のリファレンス。

pgbackrest.confにstanzaを設定した後、stanza-createコマンドを実行する必要があります。複数のリポジトリが設定されている場合は、それぞれにstanzaを作成します。作成済みのstanzaはスキップするため、新しいリポジトリを設定した場合でも、stanza-createは常に安全に実行できます。

詳細と例は、stanzaの作成 を参照してください。

コマンドオプション

オンラインオプション(--online)

オンラインのクラスターで作成します。

–no-onlineを指定すると、stanzaの作成時にpgBackRestはPostgreSQLに接続しません。

default: y
example: --no-online

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

データベースタイムアウトオプション(--db-timeout)

データベースクエリーのタイムアウトです。

データベースに対するクエリーのタイムアウトを秒単位で設定します。これには、それぞれかなりの時間がかかる可能性があるバックアップの開始/停止関数も含まれます。そのため、これらの関数が速やかに戻ることがわかっている場合(つまり、start-fast=yを設定し、バックアップ中にデータベースクラスターが多数のWALセグメントを生成しないことがわかっている場合)を除き、タイムアウトは長めにしておくことを推奨します。

注記: db-timeoutオプションは、protocol-timeoutオプションより小さくする必要があります。

default: 30m
allowed: [100ms, 7d]
example: --db-timeout=600

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

ロックパスオプション(--lock-path)

ロックファイルを保存するパスです。

ロックパスは、pgBackRestが競合する処理の同時実行を防ぐためのロックファイルを作成する場所です。

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

メンテナー向けオプション

PostgreSQLバージョン強制指定オプション(--pg-version-force)

PostgreSQLのバージョンを強制指定します。

pg_controlまたはWALヘッダーを読み取って自動検出したバージョンの代わりに、指定したPostgreSQLバージョンを使用します。これは主に、これらの値がリリース版とは異なるPostgreSQLのフォークや開発版で役立ちます。PostgreSQLがserver_version_numで報告するバージョンは、強制指定したバージョンと一致する必要があります。

警告:

このオプションは慎重に使用してください。pg_controlとWALヘッダーは引き続き、指定バージョンで想定される形式、つまり公式のオープンソース版PostgreSQLの形式で読み取られます。フォークや開発版が、pgBackRestの依存するフィールドの形式を変更していると、予期しない動作が生じます。一般に、このオプションが想定どおりに動作するのは、フォークが独自の構造体メンバーをすべて標準のPostgreSQLメンバーの後ろに追加している場合に限られます。

example: --pg-version-force=15

リポジトリオプション

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

stanzaオプション

PostgreSQLデータベースオプション(--pg-database)

PostgreSQLのデータベースです。

PostgreSQLへの接続に使用するデータベース名です。通常はデフォルトが最適ですが、このデータベースが存在しない環境もあります。

従来の動作を維持するため、環境変数PGDATABASEの設定は無視されます。

default: postgres
example: --pg1-database=backupdb

PostgreSQLホストオプション(--pg-host)

リモート操作時のPostgreSQLホストです。

PostgreSQLホストとリポジトリホストが異なる場合のバックアップに使用します。

example: --pg1-host=db.domain.com

非推奨の名前:db-host

PostgreSQLホスト認証局ファイルオプション(--pg-host-ca-file)

PostgreSQLホストの認証局ファイルです。

PostgreSQLホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --pg1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

PostgreSQLホスト認証局パスオプション(--pg-host-ca-path)

PostgreSQLホストの認証局パスです。

PostgreSQLホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --pg1-host-ca-path=/etc/pki/tls/certs

PostgreSQLホスト証明書ファイルオプション(--pg-host-cert-file)

PostgreSQLホストの証明書ファイルです。

クライアントの身元を証明するためにPostgreSQLホストに送信します。

example: --pg1-host-cert-file=/path/to/client.crt

PostgreSQLホストコマンドオプション(--pg-host-cmd)

PostgreSQLホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとPostgreSQLホストで異なる場合にのみ必要です。未定義の場合、PostgreSQLホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --pg1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:db-cmd

PostgreSQLホスト設定オプション(--pg-host-config)

pgBackRestデータベースホストの設定ファイルです。

PostgreSQLホスト上の設定ファイルの場所を設定します。PostgreSQLホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --pg1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:db-config

PostgreSQLホスト追加設定パスオプション(--pg-host-config-include-path)

pgBackRestデータベースホストの追加設定パスです。

PostgreSQLホスト上の追加設定パスの場所を設定します。PostgreSQLホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --pg1-host-config-include-path=/conf/pgbackrest/conf.d

PostgreSQLホスト設定パスオプション(--pg-host-config-path)

pgBackRestデータベースホストの設定パスです。

PostgreSQLホスト上の設定パスの場所を設定します。PostgreSQLホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --pg1-host-config-path=/conf/pgbackrest

PostgreSQLホストキーファイルオプション(--pg-host-key-file)

PostgreSQLホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --pg1-host-key-file=/path/to/client.key

PostgreSQLホストポートオプション(--pg-host-port)

pg-hostが設定されている場合のPostgreSQLホストのポートです。

PostgreSQLホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: pg-host-type=sshの場合、pg-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on pg-host-type):
    tls - 8432

allowed: [0, 65535]
example: --pg1-host-port=25

非推奨の名前:db-ssh-port

PostgreSQLホストプロトコル種別オプション(--pg-host-type)

PostgreSQLホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --pg1-host-type=tls

PostgreSQLホストユーザーオプション(--pg-host-user)

pg-hostが設定されている場合のPostgreSQLホストへのログインユーザーです。

このユーザーはリモートのpgBackRestプロセスも所有し、PostgreSQLへの接続を開始します。正しく動作させるには、PostgreSQLデータベースクラスターの所有者を使用してください。通常はデフォルトのpostgresです。

default: postgres
example: --pg1-host-user=db_owner

非推奨の名前:db-user

PostgreSQLパスオプション(--pg-path)

PostgreSQLのデータディレクトリです。

PostgreSQLが報告するdata_directoryと同じ値を設定してください。この値はさまざまな場所から読み取れますが、リストアやオフラインバックアップ時にそれらを利用できない場合に備えて、設定しておくことが賢明です。

pg-pathオプションは、オンラインバックアップのたびにPostgreSQLが報告する値と照合されるため、常に最新の値であるはずです。

example: --pg1-path=/data/db

非推奨の名前:db-path

PostgreSQLポートオプション(--pg-port)

PostgreSQLのポートです。

PostgreSQLが使用しているポートです。ほとんどのPostgreSQLクラスターはデフォルトのポートを使用するため、通常は指定する必要がありません。

default: 5432
allowed: [0, 65535]
example: --pg1-port=6543

非推奨の名前:db-port

PostgreSQLソケットパスオプション(--pg-socket-path)

PostgreSQLのunixソケットパスです。

PostgreSQLの起動時に指定したunixソケットディレクトリです。pgBackRestはOSの標準の場所を自動検索するため、postgresql.confのunix_socket_directories設定でソケットディレクトリを明示的に変更した場合を除き、通常はこの設定を指定する必要がありません。

example: --pg1-socket-path=/var/run/postgresql

非推奨の名前:db-socket-path

PostgreSQLデータベースユーザーオプション(--pg-user)

PostgreSQLのデータベースユーザーです。

PostgreSQLへの接続に使用するデータベースユーザー名です。未指定の場合、pgBackRestはローカルのOSユーザーまたはPGUSERで接続します。

example: --pg1-user=backupuser

15 - stanza削除コマンド(stanza-delete)

pgBackRestのstanza-deleteコマンドのオプションと動作のリファレンス。

stanza-deleteコマンドは、stanzaに関連するリポジトリ内のデータを削除します。

警告:

このコマンドは慎重に使用してください。指定したstanzaのすべてのバックアップとアーカイブを、pgBackRestリポジトリから恒久的に削除します。

stanzaを削除する手順は次のとおりです。

  • stanzaに関連するPostgreSQLクラスターを停止します(または–forceでこの条件を無視します)。
  • stanza-deleteコマンドを実行するホストでstopコマンドを実行します。
  • stanza-deleteコマンドを実行します。

コマンドが正常に完了したら、ユーザーの責任で、すべてのpgBackRest設定ファイルや環境変数からstanzaを削除してください。

stanzaは、一度に1つのリポジトリからしか削除できません。複数のリポジトリからstanzaを削除するには、--repoオプションを指定し、各リポジトリに対してstanza-deleteコマンドを繰り返し実行します。

コマンドオプション

強制オプション(--force)

stanzaの削除を強制します。

stanzaのPostgreSQLがまだ稼働している場合、このオプションでリポジトリからのstanzaの削除を強制できます。

default: n
example: --no-force

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

データベースタイムアウトオプション(--db-timeout)

データベースクエリーのタイムアウトです。

データベースに対するクエリーのタイムアウトを秒単位で設定します。これには、それぞれかなりの時間がかかる可能性があるバックアップの開始/停止関数も含まれます。そのため、これらの関数が速やかに戻ることがわかっている場合(つまり、start-fast=yを設定し、バックアップ中にデータベースクラスターが多数のWALセグメントを生成しないことがわかっている場合)を除き、タイムアウトは長めにしておくことを推奨します。

注記: db-timeoutオプションは、protocol-timeoutオプションより小さくする必要があります。

default: 30m
allowed: [100ms, 7d]
example: --db-timeout=600

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

ロックパスオプション(--lock-path)

ロックファイルを保存するパスです。

ロックパスは、pgBackRestが競合する処理の同時実行を防ぐためのロックファイルを作成する場所です。

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

メンテナー向けオプション

PostgreSQLバージョン強制指定オプション(--pg-version-force)

PostgreSQLのバージョンを強制指定します。

pg_controlまたはWALヘッダーを読み取って自動検出したバージョンの代わりに、指定したPostgreSQLバージョンを使用します。これは主に、これらの値がリリース版とは異なるPostgreSQLのフォークや開発版で役立ちます。PostgreSQLがserver_version_numで報告するバージョンは、強制指定したバージョンと一致する必要があります。

警告:

このオプションは慎重に使用してください。pg_controlとWALヘッダーは引き続き、指定バージョンで想定される形式、つまり公式のオープンソース版PostgreSQLの形式で読み取られます。フォークや開発版が、pgBackRestの依存するフィールドの形式を変更していると、予期しない動作が生じます。一般に、このオプションが想定どおりに動作するのは、フォークが独自の構造体メンバーをすべて標準のPostgreSQLメンバーの後ろに追加している場合に限られます。

example: --pg-version-force=15

リポジトリオプション

リポジトリ指定オプション(--repo)

リポジトリを指定します。

コマンドの操作対象となるリポジトリを指定します。

たとえば、このオプションを使用すると、pgBackRestに選択させずに、特定のリポジトリからリストアできます。

allowed: [1, 256]
example: --repo=1

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

stanzaオプション

PostgreSQLデータベースオプション(--pg-database)

PostgreSQLのデータベースです。

PostgreSQLへの接続に使用するデータベース名です。通常はデフォルトが最適ですが、このデータベースが存在しない環境もあります。

従来の動作を維持するため、環境変数PGDATABASEの設定は無視されます。

default: postgres
example: --pg1-database=backupdb

PostgreSQLホストオプション(--pg-host)

リモート操作時のPostgreSQLホストです。

PostgreSQLホストとリポジトリホストが異なる場合のバックアップに使用します。

example: --pg1-host=db.domain.com

非推奨の名前:db-host

PostgreSQLホスト認証局ファイルオプション(--pg-host-ca-file)

PostgreSQLホストの認証局ファイルです。

PostgreSQLホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --pg1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

PostgreSQLホスト認証局パスオプション(--pg-host-ca-path)

PostgreSQLホストの認証局パスです。

PostgreSQLホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --pg1-host-ca-path=/etc/pki/tls/certs

PostgreSQLホスト証明書ファイルオプション(--pg-host-cert-file)

PostgreSQLホストの証明書ファイルです。

クライアントの身元を証明するためにPostgreSQLホストに送信します。

example: --pg1-host-cert-file=/path/to/client.crt

PostgreSQLホストコマンドオプション(--pg-host-cmd)

PostgreSQLホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとPostgreSQLホストで異なる場合にのみ必要です。未定義の場合、PostgreSQLホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --pg1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:db-cmd

PostgreSQLホスト設定オプション(--pg-host-config)

pgBackRestデータベースホストの設定ファイルです。

PostgreSQLホスト上の設定ファイルの場所を設定します。PostgreSQLホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --pg1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:db-config

PostgreSQLホスト追加設定パスオプション(--pg-host-config-include-path)

pgBackRestデータベースホストの追加設定パスです。

PostgreSQLホスト上の追加設定パスの場所を設定します。PostgreSQLホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --pg1-host-config-include-path=/conf/pgbackrest/conf.d

PostgreSQLホスト設定パスオプション(--pg-host-config-path)

pgBackRestデータベースホストの設定パスです。

PostgreSQLホスト上の設定パスの場所を設定します。PostgreSQLホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --pg1-host-config-path=/conf/pgbackrest

PostgreSQLホストキーファイルオプション(--pg-host-key-file)

PostgreSQLホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --pg1-host-key-file=/path/to/client.key

PostgreSQLホストポートオプション(--pg-host-port)

pg-hostが設定されている場合のPostgreSQLホストのポートです。

PostgreSQLホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: pg-host-type=sshの場合、pg-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on pg-host-type):
    tls - 8432

allowed: [0, 65535]
example: --pg1-host-port=25

非推奨の名前:db-ssh-port

PostgreSQLホストプロトコル種別オプション(--pg-host-type)

PostgreSQLホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --pg1-host-type=tls

PostgreSQLホストユーザーオプション(--pg-host-user)

pg-hostが設定されている場合のPostgreSQLホストへのログインユーザーです。

このユーザーはリモートのpgBackRestプロセスも所有し、PostgreSQLへの接続を開始します。正しく動作させるには、PostgreSQLデータベースクラスターの所有者を使用してください。通常はデフォルトのpostgresです。

default: postgres
example: --pg1-host-user=db_owner

非推奨の名前:db-user

PostgreSQLパスオプション(--pg-path)

PostgreSQLのデータディレクトリです。

PostgreSQLが報告するdata_directoryと同じ値を設定してください。この値はさまざまな場所から読み取れますが、リストアやオフラインバックアップ時にそれらを利用できない場合に備えて、設定しておくことが賢明です。

pg-pathオプションは、オンラインバックアップのたびにPostgreSQLが報告する値と照合されるため、常に最新の値であるはずです。

example: --pg1-path=/data/db

非推奨の名前:db-path

PostgreSQLポートオプション(--pg-port)

PostgreSQLのポートです。

PostgreSQLが使用しているポートです。ほとんどのPostgreSQLクラスターはデフォルトのポートを使用するため、通常は指定する必要がありません。

default: 5432
allowed: [0, 65535]
example: --pg1-port=6543

非推奨の名前:db-port

PostgreSQLソケットパスオプション(--pg-socket-path)

PostgreSQLのunixソケットパスです。

PostgreSQLの起動時に指定したunixソケットディレクトリです。pgBackRestはOSの標準の場所を自動検索するため、postgresql.confのunix_socket_directories設定でソケットディレクトリを明示的に変更した場合を除き、通常はこの設定を指定する必要がありません。

example: --pg1-socket-path=/var/run/postgresql

非推奨の名前:db-socket-path

PostgreSQLデータベースユーザーオプション(--pg-user)

PostgreSQLのデータベースユーザーです。

PostgreSQLへの接続に使用するデータベースユーザー名です。未指定の場合、pgBackRestはローカルのOSユーザーまたはPGUSERで接続します。

example: --pg1-user=backupuser

16 - stanzaアップグレードコマンド(stanza-upgrade)

pgBackRestのstanza-upgradeコマンドのオプションと動作のリファレンス。

PostgreSQLを新しいメジャーバージョンにアップグレードした直後に、すべてのpgBackRest設定のpg-pathを新しいデータベースの場所に設定し、stanza-upgradeコマンドを実行する必要があります。ホストに複数のリポジトリが設定されている場合は、それぞれのstanzaをアップグレードします。データベースがオフラインの場合は、--no-onlineオプションを使用してください。

コマンドオプション

オンラインオプション(--online)

オンラインのクラスターを更新します。

–no-onlineを指定すると、stanzaのアップグレード時にpgBackRestはPostgreSQLに接続しません。

default: y
example: --no-online

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

データベースタイムアウトオプション(--db-timeout)

データベースクエリーのタイムアウトです。

データベースに対するクエリーのタイムアウトを秒単位で設定します。これには、それぞれかなりの時間がかかる可能性があるバックアップの開始/停止関数も含まれます。そのため、これらの関数が速やかに戻ることがわかっている場合(つまり、start-fast=yを設定し、バックアップ中にデータベースクラスターが多数のWALセグメントを生成しないことがわかっている場合)を除き、タイムアウトは長めにしておくことを推奨します。

注記: db-timeoutオプションは、protocol-timeoutオプションより小さくする必要があります。

default: 30m
allowed: [100ms, 7d]
example: --db-timeout=600

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

ロックパスオプション(--lock-path)

ロックファイルを保存するパスです。

ロックパスは、pgBackRestが競合する処理の同時実行を防ぐためのロックファイルを作成する場所です。

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

メンテナー向けオプション

PostgreSQLバージョン強制指定オプション(--pg-version-force)

PostgreSQLのバージョンを強制指定します。

pg_controlまたはWALヘッダーを読み取って自動検出したバージョンの代わりに、指定したPostgreSQLバージョンを使用します。これは主に、これらの値がリリース版とは異なるPostgreSQLのフォークや開発版で役立ちます。PostgreSQLがserver_version_numで報告するバージョンは、強制指定したバージョンと一致する必要があります。

警告:

このオプションは慎重に使用してください。pg_controlとWALヘッダーは引き続き、指定バージョンで想定される形式、つまり公式のオープンソース版PostgreSQLの形式で読み取られます。フォークや開発版が、pgBackRestの依存するフィールドの形式を変更していると、予期しない動作が生じます。一般に、このオプションが想定どおりに動作するのは、フォークが独自の構造体メンバーをすべて標準のPostgreSQLメンバーの後ろに追加している場合に限られます。

example: --pg-version-force=15

リポジトリオプション

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

stanzaオプション

PostgreSQLデータベースオプション(--pg-database)

PostgreSQLのデータベースです。

PostgreSQLへの接続に使用するデータベース名です。通常はデフォルトが最適ですが、このデータベースが存在しない環境もあります。

従来の動作を維持するため、環境変数PGDATABASEの設定は無視されます。

default: postgres
example: --pg1-database=backupdb

PostgreSQLホストオプション(--pg-host)

リモート操作時のPostgreSQLホストです。

PostgreSQLホストとリポジトリホストが異なる場合のバックアップに使用します。

example: --pg1-host=db.domain.com

非推奨の名前:db-host

PostgreSQLホスト認証局ファイルオプション(--pg-host-ca-file)

PostgreSQLホストの認証局ファイルです。

PostgreSQLホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --pg1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

PostgreSQLホスト認証局パスオプション(--pg-host-ca-path)

PostgreSQLホストの認証局パスです。

PostgreSQLホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --pg1-host-ca-path=/etc/pki/tls/certs

PostgreSQLホスト証明書ファイルオプション(--pg-host-cert-file)

PostgreSQLホストの証明書ファイルです。

クライアントの身元を証明するためにPostgreSQLホストに送信します。

example: --pg1-host-cert-file=/path/to/client.crt

PostgreSQLホストコマンドオプション(--pg-host-cmd)

PostgreSQLホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとPostgreSQLホストで異なる場合にのみ必要です。未定義の場合、PostgreSQLホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --pg1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:db-cmd

PostgreSQLホスト設定オプション(--pg-host-config)

pgBackRestデータベースホストの設定ファイルです。

PostgreSQLホスト上の設定ファイルの場所を設定します。PostgreSQLホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --pg1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:db-config

PostgreSQLホスト追加設定パスオプション(--pg-host-config-include-path)

pgBackRestデータベースホストの追加設定パスです。

PostgreSQLホスト上の追加設定パスの場所を設定します。PostgreSQLホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --pg1-host-config-include-path=/conf/pgbackrest/conf.d

PostgreSQLホスト設定パスオプション(--pg-host-config-path)

pgBackRestデータベースホストの設定パスです。

PostgreSQLホスト上の設定パスの場所を設定します。PostgreSQLホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --pg1-host-config-path=/conf/pgbackrest

PostgreSQLホストキーファイルオプション(--pg-host-key-file)

PostgreSQLホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --pg1-host-key-file=/path/to/client.key

PostgreSQLホストポートオプション(--pg-host-port)

pg-hostが設定されている場合のPostgreSQLホストのポートです。

PostgreSQLホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: pg-host-type=sshの場合、pg-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on pg-host-type):
    tls - 8432

allowed: [0, 65535]
example: --pg1-host-port=25

非推奨の名前:db-ssh-port

PostgreSQLホストプロトコル種別オプション(--pg-host-type)

PostgreSQLホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --pg1-host-type=tls

PostgreSQLホストユーザーオプション(--pg-host-user)

pg-hostが設定されている場合のPostgreSQLホストへのログインユーザーです。

このユーザーはリモートのpgBackRestプロセスも所有し、PostgreSQLへの接続を開始します。正しく動作させるには、PostgreSQLデータベースクラスターの所有者を使用してください。通常はデフォルトのpostgresです。

default: postgres
example: --pg1-host-user=db_owner

非推奨の名前:db-user

PostgreSQLパスオプション(--pg-path)

PostgreSQLのデータディレクトリです。

PostgreSQLが報告するdata_directoryと同じ値を設定してください。この値はさまざまな場所から読み取れますが、リストアやオフラインバックアップ時にそれらを利用できない場合に備えて、設定しておくことが賢明です。

pg-pathオプションは、オンラインバックアップのたびにPostgreSQLが報告する値と照合されるため、常に最新の値であるはずです。

example: --pg1-path=/data/db

非推奨の名前:db-path

PostgreSQLポートオプション(--pg-port)

PostgreSQLのポートです。

PostgreSQLが使用しているポートです。ほとんどのPostgreSQLクラスターはデフォルトのポートを使用するため、通常は指定する必要がありません。

default: 5432
allowed: [0, 65535]
example: --pg1-port=6543

非推奨の名前:db-port

PostgreSQLソケットパスオプション(--pg-socket-path)

PostgreSQLのunixソケットパスです。

PostgreSQLの起動時に指定したunixソケットディレクトリです。pgBackRestはOSの標準の場所を自動検索するため、postgresql.confのunix_socket_directories設定でソケットディレクトリを明示的に変更した場合を除き、通常はこの設定を指定する必要がありません。

example: --pg1-socket-path=/var/run/postgresql

非推奨の名前:db-socket-path

PostgreSQLデータベースユーザーオプション(--pg-user)

PostgreSQLのデータベースユーザーです。

PostgreSQLへの接続に使用するデータベースユーザー名です。未指定の場合、pgBackRestはローカルのOSユーザーまたはPGUSERで接続します。

example: --pg1-user=backupuser

17 - 開始コマンド(start)

pgBackRestのstartコマンドのオプションと動作のリファレンス。

以前にstopコマンドでpgBackRestプロセスを停止した場合、startコマンドで再び開始可能にできます。このコマンドはpgBackRestプロセスを直ちに起動するのではなく、実行を許可します。詳細と例は、開始と停止 を参照してください。

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

ロックパスオプション(--lock-path)

ロックファイルを保存するパスです。

ロックパスは、pgBackRestが競合する処理の同時実行を防ぐためのロックファイルを作成する場所です。

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

18 - 停止コマンド(stop)

pgBackRestのstopコマンドのオプションと動作のリファレンス。

新しいpgBackRestプロセスの実行を許可しません。デフォルトでは、実行中のプロセスは正常に完了するまで継続できます。実行中のプロセスを終了するには、--forceオプションを使用します。

stopコマンドの完了後にpgBackRestプロセスを実行すると、エラーが返されます。詳細と例は、開始と停止 を参照してください。

コマンドオプション

強制オプション(--force)

すべてのpgBackRestプロセスを強制的に停止します。

このオプションは、実行中のすべてのpgBackRestプロセスにTERMシグナルを送信し、終了処理を行って直ちに停止させます。別のシステムで開始され、現在のシステム上でリモートプロセスが動作しているプロセスも停止します。たとえば、バックアップサーバーでバックアップを開始した後、データベースサーバーでstop --forceを実行すると、バックアップサーバー上のバックアッププロセスも停止します。

default: n
example: --force

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

ロックパスオプション(--lock-path)

ロックファイルを保存するパスです。

ロックパスは、pgBackRestが競合する処理の同時実行を防ぐためのロックファイルを作成する場所です。

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

19 - 検証コマンド(verify)

pgBackRestのverifyコマンドのオプションと動作のリファレンス。

verifyは、リポジトリ内のバックアップとアーカイブが有効かどうかを判定します。

コマンドオプション

出力オプション(--output)

出力の種類です。

次の出力形式をサポートします。

  • none - 検証結果を出力しません。
  • text - 検証情報をstdoutに出力します。
default: none
example: --output=text

バックアップセットオプション(--set)

検証するバックアップセットです。

指定したバックアップセットに関連するすべてのデータベースファイルとアーカイブファイルを検証します。

example: --set=20150131-153358F_20150131-153401I

詳細出力オプション(--verbose)

詳細な出力です。

verboseのデフォルトはfalseで、リポジトリ内のエラーに関する重要な情報を含む最小限の応答を返します。trueを指定すると、正常に検証された内容について、より多くの情報を表示します。

default: n
example: --verbose

一般オプション

rootでの実行許可オプション(--allow-root)

rootユーザーによるコマンドの実行を許可します。

デフォルトでは、ファイルの所有権を慎重に管理するように設計されたrestoreコマンドのみをrootユーザーで実行できます。ほかのコマンドをrootで実行すると、たとえばリポジトリ内にroot所有のファイルが作成され、PostgreSQLユーザーがアクセスできなくなって、後続のコマンドが失敗するおそれがあります。

それでもコマンドをrootで実行する場合は、このオプションを有効にします。ただし、リポジトリとPostgreSQLクラスターを所有するユーザーとしてpgBackRestを実行する方がはるかに適切です。

default: n
example: --allow-root

バッファーサイズオプション(--buffer-size)

I/O処理のバッファーサイズです。

コピー、圧縮、暗号化などの処理に使用するバッファーサイズです。使用するバッファーの数はオプションによって異なり、各処理で追加のメモリを使用する場合があります。たとえば、gz圧縮では256KiBのメモリを追加で使用する場合があります。

指定できる値は、16KiB、32KiB、64KiB、128KiB、256KiB、512KiB、1MiB、2MiB、4MiB、8MiB、16MiBです。

default: 1MiB
example: --buffer-size=2MiB

pgBackRestコマンドオプション(--cmd)

pgBackRestコマンドです。

pgBackRestは、たとえばrestoreコマンドがrestore_command設定を生成する際に、コマンド文字列を生成することがあります。この場合、cmdオプションを指定しない限り、pgBackRestプロセスの実行に使用したコマンドが使われます。

注意:

pgBackRestコマンドをラッパー経由で実行すると、予測できない動作を引き起こす可能性があるため、推奨しません。

default: [path of executed pgbackrest binary]
example: --cmd=/var/lib/pgsql/bin/pgbackrest_wrapper.sh

SSHクライアントコマンドオプション(--cmd-ssh)

SSHクライアントのコマンドです。

別のSSHクライアントを使用したい場合や、sshコマンドが$PATHに含まれていない場合に、使用するSSHクライアントコマンドを指定します。

default: ssh
example: --cmd-ssh=/usr/bin/ssh

ネットワーク圧縮レベルオプション(--compress-level-network)

ネットワークの圧縮レベルです。

compress-type=noneで、コマンドがリポジトリと同じホストで実行されない場合のネットワーク圧縮レベルを設定します。圧縮によってネットワークトラフィックを削減します。compress-typeがnoneでない場合は、ファイルを1回だけ圧縮するように、compress-level-network設定を無視して代わりにcompress-levelを使用します。

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

設定ファイルオプション(--config)

pgBackRestの設定ファイルです。

デフォルトとは異なる設定ファイルを指定するには、このオプションを使用します。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

追加設定パスオプション(--config-include-path)

追加のpgBackRest設定ファイルへのパスです。

指定した場所にある拡張子.confの設定ファイルをpgBackRest設定ファイルと連結し、1つの設定ファイルとして扱います。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

設定パスオプション(--config-path)

pgBackRest設定ファイルの基準パスです。

この設定は、--configと--config-include-pathの各オプションがコマンドラインで明示的に設定されていない場合に、それらのデフォルトの基準パスを上書きします。

たとえば、--config-path=/conf/pgbackrestだけを渡すと、--configのデフォルトは/conf/pgbackrest/pgbackrest.confに、--config-include-pathのデフォルトは/conf/pgbackrest/conf.dに設定されます。

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

I/Oタイムアウトオプション(--io-timeout)

I/Oのタイムアウトです。

接続および読み取り/書き込み処理に使用する、秒単位のタイムアウトです。

読み取り/書き込み処理全体がこのタイムアウト内に完了する必要はありませんが、わずか1バイトでも、何らかの進展が必要です。

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

固定umaskオプション(--neutral-umask)

固定のumaskを使用します。

umaskを0000に設定し、リポジトリ内のファイルやディレクトリが適切な権限で作成されるようにします。デフォルトのディレクトリ権限は0750、ファイル権限は0640です。

代わりに実行ユーザーのumaskを使用するには、設定ファイルにneutral-umask=n、またはコマンドラインに--no-neutral-umaskを指定します。

default: y
example: --no-neutral-umask

プロセス優先度設定オプション(--priority)

プロセスの優先度を設定します。

カーネルのスケジューラーがプロセスに与える優先度(niceness)を定義します。正の値は優先度を下げ、負の値は優先度を上げます。通常、プロセスには自身の優先度を上げる権限がありません。

allowed: [-20, 19]
example: --priority=19

最大プロセス数オプション(--process-max)

圧縮/転送に使用する最大プロセス数です。

各プロセスが圧縮と転送を実行することでコマンドを高速化しますが、データベースのパフォーマンスに影響するほどprocess-maxを高く設定しないでください。

default: 1
allowed: [1, 999]
example: --process-max=4

プロトコルタイムアウトオプション(--protocol-timeout)

プロトコルのタイムアウトです。

ローカルまたはリモートのプロセスが、プロトコル層で新しいメッセージの受信を待つタイムアウトを秒単位で設定します。これにより、プロセスがメッセージを無期限に待ち続けることを防ぎます。

注記: protocol-timeoutオプションは、db-timeoutオプションより大きくする必要があります。

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

キープアライブオプション(--sck-keep-alive)

キープアライブを有効にします。

ソケット接続でキープアライブメッセージを有効にします。

default: y
example: --no-sck-keep-alive

stanzaオプション(--stanza)

stanzaを定義します。

stanzaは、PostgreSQLデータベースクラスターの場所、バックアップ方法、アーカイブオプションなどを定義する設定です。ほとんどのデータベースサーバーにはPostgreSQLデータベースクラスターが1つだけ存在し、stanzaも1つになります。一方、バックアップサーバーには、バックアップが必要なデータベースクラスターごとにstanzaがあります。

stanzaにはプライマリークラスターにちなんだ名前を付けたくなりますが、クラスターに含まれるデータベースを表す名前の方が適しています。stanza名はプライマリーとすべてのレプリカで使用するため、mainやprodなどのローカルクラスター名よりも、appやdwなど、クラスターの実際の役割を表す名前を選ぶ方が適切です。

example: --stanza=main

キープアライブ回数オプション(--tcp-keep-alive-count)

キープアライブの回数です。

接続が切れたと判断するまでに、応答がなくても許容するTCPキープアライブメッセージの数を指定します。

このオプションは、TCP_KEEPCNTソケットオプションをサポートするシステムで利用できます。

allowed: [1, 32]
example: --tcp-keep-alive-count=3

キープアライブ待機時間オプション(--tcp-keep-alive-idle)

キープアライブの待機時間です。

ネットワーク通信がない状態で、オペレーティングシステムがTCPキープアライブメッセージを送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPIDLEソケットオプションをサポートするシステムで利用できます。

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

キープアライブ間隔オプション(--tcp-keep-alive-interval)

キープアライブの送信間隔です。

応答のないTCPキープアライブメッセージを再送信するまでの時間を秒単位で指定します。

このオプションは、TCP_KEEPINTVLソケットオプションをサポートするシステムで利用できます。

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

TLSv1.2暗号スイートオプション(--tls-cipher-12)

許可するTLSv1.2暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。特別なセキュリティー要件がなければ、例に示す値が妥当な選択です。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

TLSv1.3暗号スイートオプション(--tls-cipher-13)

許可するTLSv1.3暗号スイートです。

pgBackRestクライアントとサーバー間のすべてのTLS接続は暗号化されます。デフォルトでは、オブジェクトストア(例:S3)への接続も暗号化されます。

注記: どのトランスポート接続でも、セキュリティーの最低要件はTLSv1.2です。

必要に応じて、受け入れる暗号スイートを調整できます。未設定(デフォルト)の場合は、使用するOpenSSLライブラリのデフォルトが適用されます。

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

ログオプション

コンソールログレベルオプション(--log-level-console)

コンソールに出力するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: warn
example: --log-level-console=error

ファイルログレベルオプション(--log-level-file)

ファイルに記録するログのレベルです。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: info
example: --log-level-file=debug

標準エラーログレベルオプション(--log-level-stderr)

stderrに出力するログのレベルです。

stdout(log-level-consoleで指定)の代わりにstderrへ出力するログレベルを指定します。stderrにはタイムスタンプとプロセスを出力しません。

次のログレベルをサポートします。

  • off - ログを一切記録しません(非推奨)
  • error - エラーのみを記録します
  • warn - 警告とエラーを記録します
  • info - 情報、警告、エラーを記録します
  • detail - 詳細、情報、警告、エラーを記録します
  • debug - デバッグ、詳細、情報、警告、エラーを記録します
  • trace - トレース(非常に詳細なデバッグ)、デバッグ、情報、警告、エラーを記録します
default: off
example: --log-level-stderr=error

ログパスオプション(--log-path)

ログファイルを保存するパスです。

ログパスは、pgBackRestがログファイルを保存する場所です。log-level-file=offの場合、ログパスは不要です。

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

サブプロセスログオプション(--log-subprocess)

サブプロセスでのログ記録を有効にします。

このプロセスが作成するすべてのサブプロセスで、log-level-fileで指定したログレベルによるファイルへのログ記録を有効にします。

default: n
example: --log-subprocess

ログタイムスタンプオプション(--log-timestamp)

ログのタイムスタンプを有効にします。

コンソールとファイルのログでタイムスタンプを有効にします。このオプションは、ドキュメント生成などの特殊な状況では無効にします。

default: y
example: --no-log-timestamp

メンテナー向けオプション

PostgreSQLバージョン強制指定オプション(--pg-version-force)

PostgreSQLのバージョンを強制指定します。

pg_controlまたはWALヘッダーを読み取って自動検出したバージョンの代わりに、指定したPostgreSQLバージョンを使用します。これは主に、これらの値がリリース版とは異なるPostgreSQLのフォークや開発版で役立ちます。PostgreSQLがserver_version_numで報告するバージョンは、強制指定したバージョンと一致する必要があります。

警告:

このオプションは慎重に使用してください。pg_controlとWALヘッダーは引き続き、指定バージョンで想定される形式、つまり公式のオープンソース版PostgreSQLの形式で読み取られます。フォークや開発版が、pgBackRestの依存するフィールドの形式を変更していると、予期しない動作が生じます。一般に、このオプションが想定どおりに動作するのは、フォークが独自の構造体メンバーをすべて標準のPostgreSQLメンバーの後ろに追加している場合に限られます。

example: --pg-version-force=15

リポジトリオプション

リポジトリ指定オプション(--repo)

リポジトリを指定します。

コマンドの操作対象となるリポジトリを指定します。

たとえば、このオプションを使用すると、pgBackRestに選択させずに、特定のリポジトリからリストアできます。

allowed: [1, 256]
example: --repo=1

Azureリポジトリコンテナーオプション(--repo-azure-container)

Azureリポジトリのコンテナーです。

リポジトリの保存に使用するAzureコンテナーです。

repo-path=/を設定するとpgBackRestリポジトリをコンテナーのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAzureが生成するコンテンツもコンテナーに保存できるようにすることを推奨します。

example: --repo1-azure-container=pg-backup

Azureリポジトリキー種別オプション(--repo-azure-key-type)

Azureリポジトリのキー種別です。

認可には次の種別をサポートします。

  • shared - 共有キー
  • sas - 共有アクセス署名
  • auto - AzureマネージドIDを使用して自動的に認可
default: shared
example: --repo1-azure-key-type=sas

AzureリポジトリURI形式オプション(--repo-azure-uri-style)

AzureのURI形式です。

次のURI形式をサポートします。

  • host - account.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にアカウントを付加します。
default: host
example: --repo1-azure-uri-style=path

リポジトリ暗号方式オプション(--repo-cipher-type)

リポジトリの暗号化に使用する暗号方式です。

次の暗号方式をサポートします。

  • none - リポジトリを暗号化しません
  • aes-256-cbc - 鍵長256ビットのAdvanced Encryption Standard

リポジトリの種類(例:S3)が暗号化をサポートしていても、暗号化は常にクライアント側で実行されます。

default: none
example: --repo1-cipher-type=aes-256-cbc

GCSリポジトリバケットオプション(--repo-gcs-bucket)

GCSリポジトリのバケットです。

リポジトリの保存に使用するGCSバケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのGCSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-gcs-bucket=/pg-backup

GCSリポジトリエンドポイントオプション(--repo-gcs-endpoint)

GCSリポジトリのエンドポイントです。

ストレージサービスへの接続に使用するエンドポイントです。ローカルのGCSサーバーや別のエンドポイントを使用するように変更できます。

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

GCSリポジトリキー種別オプション(--repo-gcs-key-type)

GCSリポジトリのキー種別です。

認可には次の種別をサポートします。

  • auto - インスタンスのサービスアカウントを使用して認可します。
  • service - ローカルに保存したキーでサービスアカウントを使用します。
  • token - fakegcsなどを使用するローカルテスト用です。

repo-gcs-key-type=serviceの場合、認証トークンの更新時に認証情報を再読み込みします。

default: service
example: --repo1-gcs-key-type=auto

GCSリポジトリプロジェクトIDオプション(--repo-gcs-user-project)

GCSのプロジェクトIDです。

リクエストの課金先を決定するために使用するGCSプロジェクトIDです。

example: --repo1-gcs-user-project=my-project

リポジトリホストオプション(--repo-host)

リモート操作時のリポジトリホストです。

ローカルにマウントされたファイルシステムにバックアップおよびアーカイブする場合、この設定は不要です。

example: --repo1-host=repo1.domain.com

非推奨の名前:backup-host

リポジトリホスト認証局ファイルオプション(--repo-host-ca-file)

リポジトリホストの認証局ファイルです。

リポジトリホストへの接続に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

リポジトリホスト認証局パスオプション(--repo-host-ca-path)

リポジトリホストの認証局パスです。

リポジトリホストへの接続に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-host-ca-path=/etc/pki/tls/certs

リポジトリホスト証明書ファイルオプション(--repo-host-cert-file)

リポジトリホストの証明書ファイルです。

クライアントの身元を証明するためにリポジトリホストに送信します。

example: --repo1-host-cert-file=/path/to/client.crt

リポジトリホストコマンドオプション(--repo-host-cmd)

リポジトリホストのpgBackRestコマンドです。

pgBackRestコマンドのパスがローカルホストとリポジトリホストで異なる場合にのみ必要です。未定義の場合、リポジトリホストのコマンドにはローカルと同じコマンドを設定します。

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

非推奨の名前:backup-cmd

リポジトリホスト設定オプション(--repo-host-config)

pgBackRestリポジトリホストの設定ファイルです。

リポジトリホスト上の設定ファイルの場所を設定します。リポジトリホストの設定ファイルがローカルの設定ファイルと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

非推奨の名前:backup-config

リポジトリホスト追加設定パスオプション(--repo-host-config-include-path)

pgBackRestリポジトリホストの追加設定パスです。

リポジトリホスト上の追加設定パスの場所を設定します。リポジトリホストの追加設定パスがローカルの追加設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

リポジトリホスト設定パスオプション(--repo-host-config-path)

pgBackRestリポジトリホストの設定パスです。

リポジトリホスト上の設定パスの場所を設定します。リポジトリホストの設定パスがローカルの設定パスと異なる場所にある場合にのみ必要です。

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

リポジトリホストキーファイルオプション(--repo-host-key-file)

リポジトリホストのキーファイルです。

クライアント証明書が所有者によって送信されたことを証明します。

example: --repo1-host-key-file=/path/to/client.key

リポジトリホストポートオプション(--repo-host-port)

repo-hostが設定されている場合のリポジトリホストのポートです。

リポジトリホストのプロトコルにデフォルト以外のポートを指定するには、このオプションを使用します。

注記: repo-host-type=sshの場合、repo-host-portにデフォルト値はありません。この場合、ポートはcmd-sshで指定したコマンドの設定に従います。

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

非推奨の名前:backup-ssh-port

リポジトリホストプロトコル種別オプション(--repo-host-type)

リポジトリホストのプロトコル種別です。

次のプロトコル種別をサポートします。

  • ssh - Secure Shell。
  • tls - pgBackRest TLSサーバー。
default: ssh
example: --repo1-host-type=tls

リポジトリホストユーザーオプション(--repo-host-user)

repo-hostが設定されている場合のリポジトリホストのユーザーです。

リポジトリホスト上の操作に使用するユーザーを定義します。postgresユーザーではなく、pgbackrestなどの別のユーザーを使用することを推奨します。リポジトリホストでPostgreSQLを実行する場合は、postgresユーザーをpgbackrestグループに追加することで、リポジトリの内容を誤って破損させずに読み取り権限を与えられます。

default: pgbackrest
example: --repo1-host-user=repo-user

非推奨の名前:backup-user

リポジトリパスオプション(--repo-path)

バックアップとアーカイブを保存するパスです。

リポジトリは、pgBackRestがバックアップを保存し、WALセグメントをアーカイブする場所です。

必要な容量を事前に見積もるのは難しい場合があります。まずいくつかバックアップを取得し、各種類(full/incr/diff)のバックアップサイズを記録して、1日当たりに生成されるWALの量を測定するのが最善です。これにより、必要な容量のおおよその見当が付きます。ただし、データベースの変化に伴い、必要量も時間とともに変わる可能性があります。

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

S3リポジトリバケットオプション(--repo-s3-bucket)

S3リポジトリのバケットです。

リポジトリの保存に使用するS3バケットです。

repo-path=/を設定するとpgBackRestリポジトリをバケットのルートに保存できますが、通常は/repoなどの接頭辞を指定し、ログなどのAWSが生成するコンテンツもバケットに保存できるようにすることを推奨します。

example: --repo1-s3-bucket=pg-backup

S3リポジトリエンドポイントオプション(--repo-s3-endpoint)

S3リポジトリのエンドポイントです。

選択したリージョンに対して有効なAWSエンドポイントを使用してください。

独自の構成やテスト構成では、repo-storage-ca-file、repo-storage-ca-path、repo-storage-host、repo-storage-port、repo-storage-verify-tlsの各オプションが役立つ場合があります。

example: --repo1-s3-endpoint=s3.amazonaws.com

S3リポジトリキー種別オプション(--repo-s3-key-type)

S3リポジトリのキー種別です。

次の種別をサポートします。

  • shared - 共有キー
  • auto - 一時認証情報を自動取得
  • web-id - ウェブID認証情報を自動取得
  • pod-id - EKS Pod Identityの認証情報を自動取得
  • process - プロセスを実行して認証情報を取得
default: shared
example: --repo1-s3-key-type=auto

S3リポジトリKMSキーIDオプション(--repo-s3-kms-key-id)

S3リポジトリのKMSキーです。

指定したAWS Key Management Serviceのキーを使用して、S3のサーバー側暗号化を有効にします。

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

S3認証プロセスコマンドオプション(--repo-s3-process-cmd)

S3の認証プロセスコマンドです。

一時的なS3認証情報を取得するために実行するコマンド(および任意の引数)です。リストの最初の要素がコマンドで、残りの要素はパラメーターとして渡します。

プロセスは、AccessKeyId、SecretAccessKey、SessionToken、Expirationフィールドを含むJSONを出力する必要があります。認証情報は有効期限の前に自動更新されます。形式の詳細は、プロセス認証情報プロバイダー を参照してください。

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

S3リポジトリリージョンオプション(--repo-s3-region)

S3リポジトリのリージョンです。

バケットを作成したAWSリージョンです。

example: --repo1-s3-region=us-east-1

S3リポジトリのリクエスタ支払いオプション(--repo-s3-requester-pays)

S3リポジトリのリクエスタ支払いです。

S3のリクエスタ支払いを有効にします。

default: n
example: --no-repo1-s3-requester-pays

S3リポジトリロールオプション(--repo-s3-role)

S3リポジトリのロールです。

repo-s3-key-type=autoの場合に、一時認証情報の取得に使用するAWSロール名(完全なARNではありません)です。

example: --repo1-s3-role=authrole

S3リポジトリサービスオプション(--repo-s3-service)

S3の署名サービスです。

SigV4認証で使用するS3署名サービスです。標準のS3エンドポイントでは、デフォルトはs3です。S3 Outpostsエンドポイントを使用する場合は、s3-outpostsに設定します。

default: s3
example: --repo1-s3-service=s3-outposts

S3リポジトリSTSエンドポイントオプション(--repo-s3-sts-host)

S3リポジトリのSTSエンドポイントです。

repo-s3-key-type=web-idを設定した場合に、一時認証情報の取得に使用するSTSエンドポイントです。リージョン別STSを使用するには、リージョン別エンドポイント(例:sts.us-east-1.amazonaws.com)を設定します。GovCloudや中国リージョンで必要になる場合や、レイテンシーを低減するために使用する場合があります。

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

S3リポジトリURI形式オプション(--repo-s3-uri-style)

S3のURI形式です。

次のURI形式をサポートします。

  • host - bucket.endpointホストに接続します。
  • path - endpointホストに接続し、URIの先頭にバケットを付加します。
default: host
example: --repo1-s3-uri-style=path

SFTPリポジトリホストオプション(--repo-sftp-host)

SFTPリポジトリのホストです。

リポジトリが存在するSFTPホストです。

example: --repo1-sftp-host=sftprepo.domain

SFTPリポジトリホストフィンガープリントオプション(--repo-sftp-host-fingerprint)

SFTPリポジトリホストのフィンガープリントです。

SFTPリポジトリホストのフィンガープリントの生成方法は、repo-sftp-host-key-hash-typeと一致させてください。awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -bでフィンガープリントを生成します。sshホストキーは通常、/etc/sshディレクトリにあります。

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

SFTPホストキー確認方式オプション(--repo-sftp-host-key-check-type)

SFTPのホストキー確認方式です。

次のSFTPホストキー確認方式をサポートします。

  • strict - pgBackRestは~/.ssh/known_hostsファイルにホストキーを自動追加せず、ホストキーが変更されたホスト、または既知のホストファイルで見つからないホストへの接続を拒否します。このオプションでは、新しいホストをすべて手動で追加する必要があります。
  • accept-new - pgBackRestは新しいホストキーをユーザーの既知のホストファイルに自動追加しますが、ホストキーが変更されたホストへの接続は許可しません。
  • fingerprint - pgBackRestは、repo-sftp-host-fingerprintオプションで指定したフィンガープリントとホストキーを照合します。
  • none - ホストキーを確認しません。
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

SFTPリポジトリホストキーハッシュ種別オプション(--repo-sftp-host-key-hash-type)

SFTPリポジトリのホストキーハッシュ種別です。

SFTPリポジトリのホストキーハッシュ種別です。SSHの開始時に、リモートシステムのホストキーのダイジェスト計算に使用するハッシュ種別を指定します。新しいバージョンのlibssh2は、md5とsha1に加えてsha256もサポートします。

example: --repo1-sftp-host-key-hash-type=sha256

SFTPリポジトリホストポートオプション(--repo-sftp-host-port)

SFTPリポジトリホストのポートです。

SFTPリポジトリホストのポートです。

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

SFTPリポジトリホストユーザーオプション(--repo-sftp-host-user)

SFTPリポジトリホストのユーザーです。

リポジトリの保存に使用するホスト上のユーザーです。

example: --repo1-sftp-host-user=pg-backup

SFTP既知ホストファイルオプション(--repo-sftp-known-host)

SFTPの既知のホストファイルです。

認証時に一致するSFTPホストを探す既知のホストファイルです。未指定の場合、pgBackRestはデフォルトで~/.ssh/known_hosts、~/.ssh/known_hosts2、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2を検索します。1つ以上のファイルパスを設定した場合は、それらを検索して一致を確認します。ファイルパスは絶対パス、または先頭がチルダのパスである必要があります。repo-sftp-known-hostオプションを複数回指定することで、検索する既知のホストファイルを複数指定できます。既知のホストファイルによる確認を使用するには、repo-sftp-host-fingerprintを指定してはいけません。repo-sftp-host-check-typeオプションも参照してください。

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

SFTPリポジトリ秘密鍵ファイルオプション(--repo-sftp-private-key-file)

SFTPの秘密鍵ファイルです。

認証に使用するSFTP秘密鍵ファイルです。

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

SFTPリポジトリ公開鍵ファイルオプション(--repo-sftp-public-key-file)

SFTPの公開鍵ファイルです。

認証に使用するSFTP公開鍵ファイルです。OpenSSLに対してコンパイルした場合は任意ですが、別のライブラリに対してコンパイルした場合は必須です。

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

リポジトリストレージCAファイルオプション(--repo-storage-ca-file)

リポジトリストレージのCAファイルです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAファイルを使用します。

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

非推奨の名前:repo-azure-ca-file, repo-s3-ca-file

リポジトリストレージTLS CAパスオプション(--repo-storage-ca-path)

リポジトリストレージのCAパスです。

ストレージ(例:S3、Azure)の証明書に、システムのデフォルト以外のCAパスを使用します。

example: --repo1-storage-ca-path=/etc/pki/tls/certs

非推奨の名前:repo-azure-ca-path, repo-s3-ca-path

リポジトリストレージホストオプション(--repo-storage-host)

リポジトリストレージのホストです。

ストレージ(例:S3、Azure)のエンドポイントとは異なるホストに接続します。通常はテストに使用します。

example: --repo1-storage-host=127.0.0.1

非推奨の名前:repo-azure-host, repo-s3-host

リポジトリストレージポートオプション(--repo-storage-port)

リポジトリストレージのポートです。

ストレージ(例:S3、Azure)のエンドポイント(ホストを指定した場合はそのホスト)への接続に使用するポートです。

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

非推奨の名前:repo-azure-port, repo-s3-port

リポジトリストレージタグオプション(--repo-storage-tag)

リポジトリストレージのタグです。

リポジトリがオブジェクトストア(例:S3)の場合に、オブジェクトに付加するタグを指定します。このオプションを繰り返して、複数のタグを追加できます。

pgBackRestにはこれらのタグを変更する機能がないため、リポジトリ全体でタグを統一するには、stanza-createを実行する前に正しく設定してください。

example: --repo1-storage-tag=key1=value1

リポジトリストレージアップロードチャンクサイズオプション(--repo-storage-upload-chunk-size)

リポジトリストレージのアップロードチャンクサイズです。

S3などのオブジェクトストアでは、ファイルが大きすぎてメモリに格納できない場合に、チャンクに分けてアップロードできます。ファイルをメモリに格納できる場合でも、アップロードに使用するメモリ量を制限する方がメモリ効率は高くなります。

チャンクサイズを大きくすると、アップロードリクエストを最小限に抑え、チャンク分割せずに1回のリクエストでアップロードできるファイルが増えるため、一般にパフォーマンスが向上します。一方、メモリ使用量は増加します。チャンクバッファーはプロセスごとに割り当てる必要があるため、process-maxの値が大きいほど、全体のメモリ消費量も増えます。

有効なチャンクサイズは、ストレージの種類やプラットフォームによって異なります。たとえば、AWS S3の最小チャンクサイズは5MiBです。チャンクサイズの呼び方もストレージの種類によって異なるため、最小値/最大値を調べる際は、AWS S3では「part size」、GCSでは「chunk size」、Azureでは「block size」を使用してください。

ファイルが1GiB(PostgreSQLがデフォルトで作成する最大サイズ)より大きい場合、ファイルのアップロードを完了するために、許容される最大値までチャンクサイズを段階的に増やします。

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

リポジトリストレージ証明書検証オプション(--repo-storage-verify-tls)

リポジトリストレージの証明書を検証します。

このオプションでは、ストレージ(例:S3、Azure)サーバーのTLS証明書の検証を有効/無効にできます。無効化は、テストや自己署名証明書を使用する場合に限ってください。

default: y
example: --no-repo1-storage-verify-tls

非推奨の名前:repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

リポジトリ対象時刻オプション(--repo-target-time)

リポジトリの対象時刻です。

対象時刻は、コマンドがバージョン管理されたストレージ上のリポジトリを読み取る際の時点を定義します。これにより、ある時点の状態のリポジトリを読み取り、ユーザーの誤操作やマルウェアによって削除または破損したデータをリカバリーできます。

S3、GCS、Azureはストレージのバージョン管理をサポートしますが、通常はデフォルトで有効になっていません。バージョン管理の有効化に加え、S3ではオブジェクトロック、GCSやAzureでは論理削除を有効にすると役立つ場合があります。

repo-target-timeオプションを指定する場合は、repoオプションも指定する必要があります。すべてのリポジトリ種類がバージョン管理をサポートするとは限らず、一般にリカバリーでは単一のリポジトリを対象とするのが妥当です。

ストレージのタイムスタンプとの比較は、指定したタイムスタンプ以下(<=)で行い、タイムスタンプにミリ秒を指定しても切り捨てられます。

example: --repo-target-time=2024-08-08 12:12:12+00

リポジトリ種別オプション(--repo-type)

リポジトリに使用するストレージの種類です。

次のリポジトリ種類をサポートします。

  • azure - Azure Blob Storage Service
  • cifs - posixと同様ですが、リンクとディレクトリのfsyncを無効にします
  • gcs - Google Cloud Storage
  • posix - Posix準拠のファイルシステム
  • s3 - AWS Simple Storage Service
  • sftp - Secure File Transfer Protocol

NFSマウントをposixリポジトリとして使用する場合、PostgreSQLのドキュメントに記載されたものと同じ規則がpgBackRestにも適用されます。データベースクラスターの作成 - ファイルシステム を参照してください。

default: posix
example: --repo1-type=cifs

20 - バージョンコマンド (version)

pgBackRestのversionコマンドのオプションおよび動作に関するリファレンス。

pgBackRestのインストール済みバージョンを表示します。

コマンドオプション

出力オプション (--output)

出力形式です。

次の出力形式をサポートします。

  • text - インストールされたpgBackRestのバージョンをテキスト形式で表示します。
  • num - pgBackRestのインストール済みバージョンを整数で表示します。
default: text
example: --output=num