WAL archiving
=============

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

KubernetesのEDB Postgresで。

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

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

..  Note::
   `BarmanObjectStoreConfiguration <https://pkg.go.dev/github.com/cloudnative-pg/barman-cloud/pkg/api#BarmanObjectStoreConfiguration>`_ を参照してください。

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

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

.. code:: yaml

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

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

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

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

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

.. code:: yaml

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

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

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