Upgrading PGD clusters with TPA
===============================

..  Note No Postgres major version upgrades::
   TPAは現在Postgresのメジャーバージョンのアップグレードをサポートしていません。

Postgresのメジャーバージョンのアップグレードを実行するには、
:ref:`In-place Postgres major version upgrades <In-place Postgres major version upgrades>` を参照してください。

.. ::
   TPAを使用してクラスターをインストールした場合、TPAを使用してアップグレードすることもできます。ここで概要を説明する技術は、 PGDソフトウェアのマイナーおよびメジャーバージョンのアップグレードを実行できます。 Postgresのマイナーバージョンのアップグレードを実行することもできます。

TPAアップグレードの機能の詳細については、TPAドキュメントの :ref:`Upgrading your cluster <Installing PGD CLI with TPA>` を参照してください。

..  Warning Always test first::
   可能であれば、常に最初にQA環境でアップグレードプロセスをテストしてください。これは、考慮すべき予期しない要素がないことを確認するのに役立ちます。 PGD構成を再現可能に展開するTPAの機能により、作業するテスト環境の構築が非常に簡単になります。

マイナーおよびメジャーPGDのアップグレード
-----------------------------------------

TPAは、PGDのマイナーバージョンのアップグレードを自動的に管理します。

PGDのメジャーバージョンのアップグレードには、展開構成が含まれるTPA
``config.yml`` ファイルを変更する必要があります。

以前のPGDメジャーバージョンからPGD 5にアップグレードする場合、
:ref:`tpaexec reconfigure <Installing PGD CLI with TPA>` 
を使用できます。このコマンドは、展開構成に適切な変更を加えるのに役立ちます。

``reconfigure`` コマンドを実行するには、アーキテクチャの設定
``PGD_Always_ON`` とPGDプロキシルーティング
``--pgd-proxy-routing <global|local>``
のみが必要です。実行する前に展開構成をバックアップし、 ``--describe``
および\ ``--output``
オプションを使用して再構成をプレビューしてください。

前提条件
--------

-  TPAがPGDクラスターを展開したときに作成されるクラスター構成ディレクトリが必要です。

-  PGDのメジャーバージョンのアップグレードを実行する場合、
   ``tpaexec reconfigure``
   が実行され、 :ref:`マイナーおよびメジャーPGDのアップグレード <マイナーおよびメジャーPGDのアップグレード>` が作成されたことを確認します。

アップグレード
--------------

実行します

::

   tpaexec upgrade clustername

``clustername``
は、クラスターの名前とクラスター構成ディレクトリへのパスです。デフォルトでは、TPAはクラスターの各ノードを、ノードが構成されたソフトウェアの最新のマイナーバージョンにアップグレードします。

TPAの自動ローリングアップグレード手順
-------------------------------------

TPAは、最初にクラスターをテストし、次にノードをテストします。

次に、各ノードはクラスターから分離され、アップグレードされ、クラスター内のオペレーションに戻ります。

TPAアップグレード-ステップバイステップ
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

-  クラスターをアップグレードするためのすべての前提条件が満たされていることを確認します。

-  クラスター内の各インスタンスについて
   *正しいリポジトリが構成されていることを確認します。*
   必要なPostgresパッケージがこれらのリポジトリで利用可能なことを確認します。
   *クラスター内のBDRノードごとに、一度に1つずつ*
   ノードをフェンスして、pgd-proxyがそれに接続を送信しないようにします。
   *Postgresを停止、更新、および再起動します。*
   ノードのフェンスを解除して、再び接続を受信できるようにします。 \*
   このノードに該当する場合、pgbouncer、pgd-proxy、およびpgd-cliを更新します。
