WAL archiving

WAL archiving#

WALアーカイブは、 PostgreSQL WALアーカイブ をフィードするプロセスです

KubernetesのEDB Postgresで。

重要

KubernetesのEDB Postgresは、現在オブジェクトストアのWALアーカイブのみをサポートしています。このようなWALアーカイブは、オブジェクトストアのバックアップとボリュームスナップショットのバックアップの両方に役立ちます。

WALアーカイブは、Cluster リソースの.spec.backup.barmanObjectStore スタンザで定義されています。 Backup on object stores にあるものと同じ手順を進めて、WALアーカイブを設定してください。

注釈

BarmanObjectStoreConfiguration を参照してください。

オプションの完全なリストについては、barman-cloud APIで 。

必要に応じて、WALファイルがアップロードされたらすぐに圧縮および/または暗号化することを選択できます。

apiVersion: postgresql.k8s.enterprisedb.io/v1
kind: Cluster
[...]
spec:
  backup:
    barmanObjectStore:
      [...]
      wal:
        compression: gzip
        encryption: AES256

バケットに暗号化を直接構成できます。クラスター構成でオーバーライドしない限り、オペレーターはそれを使用します。

PostgreSQLは、シークエンシャル アーカイブスキームを実装しており、アーカイブされるすべてのWALセグメントに対してarchive_command がシークエンシャルに実行されます。

重要

デフォルトでは、Kubernetes用EDB Postgresは`archive_timeout` を`5min` に設定して、ワークロードが低い場合でもWALファイルが少なくとも5分ごとに閉じてアーカイブされ、目標リカバリポイントの決定論的な時間ベースの値を提供します リリース候補の目的 。 archive_timeout の値を変更する場合でも、私たちの経験から、オペレーターが設定したデフォルト値がほとんどのユースケースに適していることが示唆されています。

PostgreSQLインスタンスとオブジェクトストア間の帯域幅で複数のWALファイルを並列してアーカイブできる場合、次の例のようにインスタンスマネージャーの並列WALアーカイブ機能を使用できます。

apiVersion: postgresql.k8s.enterprisedb.io/v1
kind: Cluster
[...]
spec:
  backup:
    barmanObjectStore:
      [...]
      wal:
        compression: gzip
        maxParallel: 8
        encryption: AES256

前の例では、インスタンスマネージャーは、PostgreSQLによって要求されたものを含む最大8つの準備ができているWALを並列アーカイブすることにより、WALアーカイブプロセスを最適化します。

PostgreSQLが、最適化としてインスタンスマネージャーによって既にアーカイブされたWALのアーカイブを要求する場合、そのアーカイブ要求はポジティブなステータスで却下されるだけです。