Running pgBackRest Locally on the Database Host’¶
説明¶
pgBackRestはデータベースサーバーでローカルに実行され、リポジトリをリモートストレージ(NFS、S3、AzureまたはGCS互換のオブジェクトストア)に保存します。
*バックアップを取るノードでアクティブなcronタスク。
別のサーバーからバックアップを取得するようにcronタスクを手動で再構成します。
! Use case diagram
構成¶
グローバルセクション¶
[global] セクションには次が含まれます。
*リポジトリの場所;
*推奨設定;
*保持ポリシー。
このセクションの設定は、すべてのノード(プライマリとスタンバイ)で同じである必要があります。
マウントポイント¶
repo1-type を posix または cifs
に設定し、共有スペースにバックアップとアーカイブを保存するためのrepo1-path
の場所を指定します。
repo1-type=posix
repo1-path=/backup_space
S3互換のオブジェクトストア¶
repo1-type=s3
repo1-path=/repo1
repo1-s3-bucket=bucket-name
repo1-s3-endpoint=...
repo1-s3-key=accessKey1
repo1-s3-key-secret=***
repo1-s3-region=...
バックアップとアーカイブはbucket-name/repo1 に保存されます。
AWSインスタンスがIAMロールに関連付けられている場合、一時的な認証情報を自動的に取得できます。資格情報は、有効期限が切れてから5分以内に自動的に更新されます。
これを行うには、 repo1-s3-key とrepo1-s3-key-secret
を設定する代わりに、次を使用します。
repo1-s3-key-type=auto
repo1-s3-role=authrole
Web ID資格情報を自動的に取得するには、 repo1-s3-key-type=web-id
オプションを設定し、 AWS_ROLE_ARN
およびAWS_WEB_IDENTITY_TOKEN_FILE 環境変数を定義します。
repo1-s3-kms-key-id
オプションを設定して、指定したAWSキーマネージメントサービスキーを使用したサーバー側の暗号化を有効にします。
Azure互換のオブジェクトストア¶
repo1-type=azure
repo1-azure-key-type=shared
repo1-path=/repo1
repo1-azure-container=container-name
repo1-azure-account=pgbackrest
repo1-azure-key=***
Shared Access Signatureを使用するには、 repo1-azure-key-type
オプションを sas に設定し、 repo1-azure-key
オプションをSharedアクセス署名トークンに設定します。
GCS互換のオブジェクトストア¶
repo1-type=gcs
repo1-gcs-key-type=service
repo1-path=/repo1
repo1-gcs-bucket=bucket-name
repo1-gcs-key=/etc/pgbackrest/gcs-key.json
repo1-gcs-key は、 repo1-gcs-key-type オプションに応じて
トークン または サービス キーファイルです。
推奨設定¶
これらの設定を使用して、暗号化と並列操作を有効にし、コンソールとログファイルに十分な情報を表示します。
repo1-cipher-type=aes-256-cbc
repo1-cipher-pass=FIXME
process-max=FIXME
log-level-console=info
log-level-file=debug
start-fast=y
delta=y
暗号化パスフレーズと、圧縮の使用とファイル転送に使用するプロセスの最大数を調整します。
詳細については、 'Recommended Settings' ページを参照してください。
保持ポリシー¶
古いバックアップとアーカイブを削除できるようにするには、保持ポリシーを定義する必要があります。次の設定を使用して、最新の完全バックアップのみを保持します。
repo1-retention-full=1
その他のオプションと詳細については、 Retention Policy ページを参照してください。
スタンザセクション¶
[demo]
スタンザセクションはデータベースサーバーごとに異なり、次のものが含まれます。
PostgreSQL 構成ファイルの場所
pg1-path=/var/lib/pgsql/13/data
または EDBPostgresAdvancedServer
pg1-path=/var/lib/edb/as13/data
pg1-user=enterprisedb
pg1-port=5444
他のすべての PostgreSQL ノード
pg2-host=other_node_hostname_or_ip
pg2-path=/var/lib/pgsql/13/data
または EDBPostgresAdvancedServer
pg2-host=other_node_hostname_or_ip
pg2-host-user=enterprisedb
pg2-path=/var/lib/edb/as13/data
restoreコマンドの実行後にレプリケーション
primary_conninfoを設定する特定のリカバリオプション:
recovery-option=primary_conninfo=host=primary_vip user=replication_user ...
アーカイブの設定¶
pgBackRestを構成したら、各ノードでデータベースアーカイバープロセスを設定します。
# postgresql.conf
archive_mode = on
archive_command = pgbackrest --stanza=demo archive-push %p
archive_mode
パラメーターを変更するにはサービスの再起動が必要であり、
archive_command
を変更するには構成のリロードのみが必要であるため、新しいデータベースクラスターを開始するときに空のarchive_command
でarchive_mode を有効にすることをお勧めします。
- 単純な デモ スタンザ構成をセットアップするには、
Quick Start ページを参照してください。
システムユーザー(postgres またはenterprisedb
)のIDを想定し、プライマリサーバーからpgBackRestリポジトリを開始します。
$ pgbackrest --stanza=demo stanza-create
構成とアーカイブプロセスを確認します。
$ pgbackrest --stanza=demo check
バックアップと復元¶
これら2つのコマンドの詳細については、 クイックスタート の バックアップ および 復元 セクションを参照してください。
用語集¶
pgBackRest¶
デルタ log-level-console log-level-file pg-host-user pg-host pg-path pg-port pg-user process-max recovery-option repo-azure-account repo-azure-container repo-azure-key-type repo-azure-key repo-cipher-pass repo-cipher-type repo-path repo-retention-full repo-s3-bucket repo-s3-endpoint repo-s3-key-secret repo-s3-key-type repo-s3-key repo-s3-kms-key-id repo-s3-region repo-s3-role repo-type start-fast