Installation
============

Barmanの公式パッケージは、
 `Barman downloads page <https://pgbarman.org/downloads/>`_ にリストされているリポジトリを介してEnterpriseDBによって配布されます。

これらのパッケージは、ターゲットオペレーティングシステムが提供するデフォルトのpython3バージョンを使用します。代替のpython3バージョンが必要な場合は、ソースからBarmanをインストールする必要があります。

..  IMPORTANT::
   Barmanをインストールすることをお勧めする方法は、GNU/Linuxディストリビューションで利用可能なパッケージを使用することです。

RPMパッケージを使用したRed Hat Enterprise LinuxRHELおよびRHELベースのシステムへのインストール
---------------------------------------------------------------------------------------------

Barmanは、RHEL8およびRHEL7システムと、RHEL派生のAlmaLinux、Oracle
Linux、およびRocky
Linuxの同一バージョンにRPMパッケージを使用してインストールできます。事前にExtra
Packages Enterprise
LinuxEPELリポジトリと `PostgreSQL Global Development Group RPM repository <https://yum.postgresql.org/>`_ をインストールする必要があります。

Barmanの公式RPMパッケージは、そのWebサイトにある手順に従って、
 `public RPM repository <https://rpm.2ndquadrant.com/>`_  を介してYumを介してEnterpriseDBによって配布されます。

次に、 ``root`` として次のように入力します。

.. code:: bash

   yum install barman

EDBおよびPGDGリポジトリで入手可能なBarmanパッケージに加えて、Fedoraプロジェクトによって公開されたBarman
RPMはEPELで見つけることができます。これらのRPMはBarman開発者によってメンテナンスされておらず、
PGDGおよびEDBリポジトリで使用可能なパッケージとは異なる構成レイアウトを使用します。

-  EDBおよびPGDGパッケージは、メイン構成ファイルとして\ ``/etc/barman.conf``
   を使用し、追加の構成ファイルとして\ ``/etc/barman.d`` を使用します。

-  Fedoraパッケージは、メイン構成ファイルとして\ ``/etc/barman/barman.conf``
   を使用し、追加の構成ファイルとして\ ``/etc/barman/conf.d``
   を使用します。

構成ファイルのレイアウトの違いは、EPELと非EPEL
Barmanパッケージ間のアップグレードが、構成ファイルが手動で更新されるまで既存のBarmanインストールを中断する可能性があることを意味します。したがって、
Barmanパッケージには単一のソースリポジトリを使用することをお勧めします。これは、
Barmanパッケージを取得したくないリポジトリの定義に次の行を追加することにより実現できます。

.. code:: ini

   exclude=barman *python* -barman

具体的には

-  EDBリポジトリからBarmanパッケージのみを使用するには、上記のexclude指示子を\ ``/etc/yum.repos.d/epel.repo``
   および\ ``/etc/yum.repos.d/pgdg-*.repo``
   のリポジトリ定義に追加します。

-  PGDGリポジトリからBarmanパッケージのみを使用するには、上記のexclude指示子を\ ``/etc/yum.repos.d/epel.repo``
   および\ ``/etc/yum.repos.d/enterprisedb*.repo``
   のリポジトリ定義に追加します。

-  EPELリポジトリからBarmanパッケージのみを使用するには、上記のexclude指示子を\ ``/etc/yum.repos.d/pgdg- *.repo``
   および\ ``/etc/yum.repos.d/enterprisedb* .repo``
   のリポジトリ定義に追加します。

パッケージを使用したDebian/Ubuntuへのインストール
-------------------------------------------------

Barmanは、パッケージを使用してDebianおよびUbuntu
Linuxシステムにインストールできます。

DebianおよびUbuntuの公式リポジトリで直接入手できますが、これらのリポジトリには、利用可能な最新バージョンが含まれていない場合があります。
Barmanの最新バージョンが必要な場合、推奨される方法は、次の両方のリポジトリをインストールすることです。

-  `Public APT repository <https://apt.2ndquadrant.com/>`_ 、 Barman開発者によって直接メンテナンス

-  `PostgreSQL Community APT repository <https://apt.postgresql.org/>`_  `APT section of the PostgreSQL Wiki <https://wiki.postgresql.org/wiki/Apt>`_ の指示に従って

..  NOTE::
   PostgreSQLコミュニティAPTリポジトリプロジェクトへのBarman開発者の直接参加のおかげで、常に最新のバージョンのBarmanにアクセスできます。

Barmanのインストールも同様に簡単です。 ``root``
ユーザーとしては、次のように入力するだけです。

.. code:: bash

   apt-get install barman

パッケージを使用したSLESへのインストール
----------------------------------------

Barmanは、
 `PGDG SLES repositories <https://zypp.postgresql.org/>`_ で入手可能なパッケージを使用してSLESシステムにインストールできます。
 `PGDG site <https://zypp.postgresql.org/howtozypp/>`_ 
で入手可能な手順に従って、必要なリポジトリをインストールします。

サポートされているSLESバージョンSLES 15 SP3。

必要なリポジトリがインストールされたら、 Barmanを\ ``root``
ユーザーとしてインストールできます。

.. code:: bash

   zypper install barman

ソースからのインストール
------------------------

..  WARNING::
   ソースからのBarmanの手動インストールは、専門のGNU/Linuxユーザーのみが実行する必要があります。この方法でBarmanをインストールするには、依存関係管理、`barman` ユーザーの作成、`barman.conf` ファイルの構成、`barman cron` コマンドのcronセットアップ、ログ管理などのシステム管理アクティビティが必要です。

``backup`` サーバーに\ ``barman`` というシステムユーザーを作成します。
``barman`` ユーザーとして、ソースをダウンロードして解凍します。

システム全体をインストールする場合、次のように入力します。

.. code:: bash

   barman@backup$ ./setup.py build
   # run this command with root privileges or through sudo
   barman@backup# ./setup.py install

ローカルインストールの場合、次のように入力します。

.. code:: bash

   barman@backup$ ./setup.py install --user

``barman`` アプリケーションは、ユーザーディレクトリ :ref:`make sure that your `PATH` environment variable is set properly <Barman Manual>` 
にインストールされます。

 `Barman is also available on the Python Package Index (PyPI) <https://pypi.python.org/pypi/barman/>`_ であり、\ ``pip`` を介してインストールできます。

PostgreSQLクライアント/サーバーバイナリ
---------------------------------------

次のBarman機能はPostgreSQLバイナリに依存しています。

-  ``backup_method = postgres`` を使用した :ref:`ストリーミングバックアップとrsync / SSH <ストリーミングバックアップとrsync / SSH>` 
   ``pg_basebackup`` が必要

-  ``streaming_archiver = on`` を使用した :ref:`Streaming WAL archiving <#wal-streaming>` 
   ``pg_receivewal`` または\ ``pg_receivexlog`` が必要

-  ``barman verify-backup`` を使用した :ref:`Verifying backups <#verify-backup>`  ``pg_verifybackup``
   が必要

ターゲットOSに応じて、これらのバイナリはPostgreSQLクライアントまたはサーバーパッケージとともにインストールされます。

-  RedHat / CentOSおよびSLESの場合 *``pg_basebackup``
   および\ ``pg_receivewal`` /``pg_receivexlog``
   バイナリは、PostgreSQLクライアントパッケージとともにインストールされます。*
   ``pg_verifybackup``
   バイナリは、PostgreSQLサーバーパッケージとともにインストールされます。
   ※バイナリはすべて\ ``/usr/pgsql-${PG_MAJOR_VERSION}/bin``
   にインストールされます。

-  Debian / Ubuntuの場合
   \*すべてのバイナリはPostgreSQLクライアントパッケージとともにインストールされます。
   ※バイナリは\ ``/usr/lib/postgresql/${PG_MAJOR_VERSION}/bin``
   にインストールされます。

次のいずれかを確認する必要があります。

1. Barmanユーザーは、パス上に適切な\ ``PG_MAJOR_VERSION`` の\ ``bin``
   ディレクトリがある、または

2. :ref:`path_prefix <#binary-paths>` オプションは、各サーバーのBarman構成で設定され、適切な\ ``PG_MAJOR_VERSION``
   の\ ``bin`` ディレクトリをポイントします。

上記のバイナリに加えて、 (
https://www.postgresql.org/docs/current/app-psql.html
)[psql]プログラムをお勧めします。
Barmanはそれを直接使用しませんが、ドキュメントでは、PostgreSQL接続が意図したとおりに動作していることを確認するために使用できる方法の例を提供しています。
``psql`` バイナリは、PostgreSQLクライアントパッケージにあります。

サードパーティのPostgreSQLバリアント
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

サードパーティのPostgreSQLバリアントのバックアップとリカバリーにBarmanを使用している場合、上記で説明したPGDGクライアント/サーバーバイナリがバリアントと互換性があるかどうかを確認する必要があります。互換性のない場合は、適切なパッケージから互換性のある代替品をインストールする必要があります。

Upgrading Barman
================

Barmanはトランクベースの開発パラダイムに従っているため、安定バージョンは最新の1つだけです。コミットするたびに、
Barmanは、サポートされている各PostgreSQLバージョン、およびサポートされている各Linuxディストリビューションに対して数千の自動テストを実行します。

また、
**すべてのバージョンには、以前のバージョンとの下位互換性があります**
。したがって、 Barmanをアップグレードするには、通常、 ``yum update``
または\ ``apt update``
を使用してパッケージを単純に更新する必要があります。

ただし、開発履歴には次の例外があり、構成にいくつかの小さな変更が必要でした。

Barman 3.0.0へのアップグレード
------------------------------

Rsyncバックアップのデフォルトのバックアップアプローチがコンカレントになりました
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``backup_options`` で\ ``concurrent_backup`` も\ ``exclusive_backup``
も指定されていない場合、
Barmanはコンカレントバックアップを使用するようになりました。これは、デフォルトで排他的バックアップを使用する以前のBarmanバージョンとは異なります。

排他的バックアップが必要な場合は、 Barman構成で\ ``exclusive_backup``
を\ ``backup_options`` に追加する必要があります。

PostgreSQL
15に対して実行する場合、排他的バックアップは全くサポートされていないことに注意してください。

メタデータの変更
^^^^^^^^^^^^^^^^

``compression``
という名前の新しいフィールドは、バージョン3.0.0で取得されたすべてのバックアップの\ ``backup.info``
ファイルに保存されているメタデータに追加されます。これは、
``pg_basebackup``
のビルトイン圧縮機能を使用して取得したバックアップからリカバリーするときに使用されます。

このフィールドの存在は、 Barman
Barmanで作成されたバックアップを読み取ることができないことを意味します。これは、
Barman
3.0.0から以前のバージョンにダウングレードする場合、3.0.0で取得したバックアップを手動で削除するか、各バックアップの\ ``backup.info``
ファイルを編集して\ ``compression``
フィールドを削除する必要があることを意味します。

同じメタデータの変更は、 (https://github.com/EnterpriseDB/pg-backup-api)
[pg-backup-api]に影響を与えるため、pg-backup-apiを使用している場合、バージョン0.2.0に更新する必要があります。
。

Barman 2.10からのアップグレード
-------------------------------

``barman-cloud-wal-archive`` または\ ``barman-cloud-backup``
を使用している場合、バージョン2.11からすべてのクラウドユーティリティが新しい\ ``barman-cli-cloud``
パッケージに移動していることに注意する必要があります。したがって、最新バージョンへのアップグレードの一部として、\ ``barman-cli-cloud``
パッケージが適切にインストールされていることを確認する必要があります。上記のツールを使用していない場合は、通常のように最新バージョンにアップグレードできます。

Barman 2.X 2.8より前からのアップグレード
----------------------------------------

Barman
2.7以前のバージョンからアップグレードする前に、プライマリサーバーで\ ``rsync``
バックアップ方法を使用するユーザーは、 ``backup_options``
を\ ``concurrent_backup`` PostgreSQL
9.6以降で推奨または\ ``exclusive_backup``
現在のデフォルトに明示的に設定する必要があります。それ以外の場合、
Barmanは実行されるたびに警告を発します。

Barman 1.Xからのアップグレード
------------------------------

Barmanインストールが1.Xの場合、アーカイブ戦略を明示的に構成する必要があります。以前は、
``archiver``
によって制御されるファイルベースのアーカイバーがデフォルトで有効になっていました。

Barmanインストールを最新バージョンにアップグレードする前に、グローバルまたはそれを必要とするサーバーに対して次の行を追加してください。

.. code:: ini

   archiver = on

さらに、いくつかのリリースでは、
Barmanはアーカイブ戦略を明示的に設定していないサーバーで\ ``archiver = on``
を透過的に設定し、警告を発します。
