WALアーカイブ
=============

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

CloudNativePGで。

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

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

..  Note::
   :ref:`BarmanObjectStoreConfiguration {postgresql-cnpg-io-v1-BarmanObjectStoreConfiguration} <BarmanObjectStoreConfiguration {postgresql-cnpg-io-v1-BarmanObjectStoreConfiguration}>` を参照してください。

オプションの完全なリストについては、APIリファレンスを参照してください。

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

.. code:: yaml

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

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

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

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

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

.. code:: yaml

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

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

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