インストール
Mac OSの前提条件
Macに必要なソフトウェアをインストールするには、次を実行します。
Psycopg
psycopg2-2.8
以降、psycopg2のバイナリー版はデフォルトではインストールされなくなりました。ソースコードからインストールするには、Cコンパイラーとpostgresおよびpythonの開発用パッケージが必要です。Pythonでは依存関係をpsycopg2 OR psycopg2-binaryとして指定できないため、インストール方法を選択する必要があります。
次の選択肢があります。
- ディストリビューションのパッケージマネージャーを使用する
- pipでPatroniをインストールするときに、依存関係の一覧
に
psycopg、psycopg2、psycopg2-binaryのいずれかを指定する。
pipによる一般的なインストール
Patroniはpipでインストールできます。
ここでdependenciesは空にするか、次のうち一つ以上を指定します。
etcdまたはetcd3
DCS(分散構成ストア)としてetcdを使用するためのpython-etcdモジュール
consul
DCSとしてConsulを使用するためのpy-consulモジュール
zookeeper
DCSとしてZookeeperを使用するためのkazooモジュール
exhibitor
DCSとしてExhibitorを使用するためのkazooモジュール(Zookeeperと同じ依存関係)
kubernetes
PatroniでDCSとしてKubernetesを使用するためのkubernetes
モジュール
raft
DCSとしてPythonのRaft実装を使用するためのpysyncobjモジュール
aws
AWSコールバックを使用するためのboto3
jsonlogger
JSON形式のログ出力
を有効にするためのpython-json-loggerモジュール
systemd
sd_notify連携を使用するためのsystemd-python
all
上記のすべて(psycopg系を除く)
psycopg3psycopg\[binary\]\>=3.0.0モジュール
psycopg2psycopg2\>=2.5.4モジュール
psycopg2-binarypsycopg2-binaryモジュール
たとえば、psycopg3、DCSとしてのetcdの依存関係、AWSコールバックとともにPatroniをインストールするコマンドは、次のとおりです。
レプリカ作成スクリプトや独自のブートストラップスクリプトから呼び出す外部ツール(WAL-Eなど)は、Patroniとは別にインストールすることを推奨します。
Linuxへのパッケージのインストール
使用するオペレーティングシステム向けのPatroniパッケージが提供されている場合があります。Postgresコミュニティーは、次のシステム向けにパッケージを作成しています。
- RHEL、RockyLinux、AlmaLinux。
- DebianとUbuntu。
- SUSE Enterprise Linux。
オペレーティングシステムの公式リポジトリにはないPythonモジュールなど、Patroniの直接の依存関係のパッケージもあります。
詳しくは、PGDGリポジトリ のドキュメントを参照してください。
RedHat Enterprise Linux派生のオペレーティングシステムでは、EPELのパッケージも必要になる場合があります。EPELリポジトリ のドキュメントを参照してください。
OS用のPGDGリポジトリをインストールしたら、Patroniをインストールできます。
PatroniパッケージはPatroni開発者ではなく、Postgresコミュニティーがメンテナンスしています。サポートが必要な場合は、まずPostgres Slack で相談してください。
Debian派生システムへのインストール
上記 のとおりPGDGリポジトリをインストールしたら、次を実行してaptでPatroniをインストールします。
RedHat派生システムへのインストール
上記 のとおりPGDGリポジトリをインストールしたら、RHEL 9とその派生システムで次を実行し、dnfを使用してetcd DCS付きのPatroniをインストールします。
使用するRedHat派生ディストリビューションがetcdパッケージを提供していない場合は、PGDGからインストールできます。DCSを配置するノードで次を実行します。
必要であれば、リポジトリ名のRHELのバージョンを8に置き換えて、pgdg-rhel8-extrasにできます。RockyLinux、AlmaLinux、Oracle Linuxなどでも、リポジトリ名はpgdg-rhelN-extrasのままです。
SUSE Enterprise Linuxへのインストール
一部の依存関係のために、SUSE PackageHubリポジトリを有効にする必要がある場合があります。SUSE PackageHub のドキュメントを参照してください。
SLES 15で、上記 のとおりPGDGリポジトリをインストールしている場合、次のコマンドでPatroniをインストールできます。
SUSE PackageHubリポジトリを有効にすると、etcdもインストールできます。
アップグレード
Patroniのアップグレードは非常に簡単です。ソフトウェアを更新し、クラスターの各ノードでPatroniデーモンを再起動するだけです。
ただし、Patroniデーモンを再起動すると、Postgresデータベースも再起動します。状況によってはクラスターのプライマリーノードでフェイルオーバーが発生する可能性があるため、Patroniデーモンの再起動が完了するまでクラスターをメンテナンスモードにすることを推奨します。
クラスターをメンテナンスモードにするには、Patroniノードのいずれかで次のコマンドを実行します。
次に、クラスターの各ノードでOSに応じたパッケージのアップグレードを実行します。
各ノードでPatroniデーモンのプロセスを再起動します。
最後に、PatroniによるPostgresの監視を再開して、メンテナンスモードを終了します。
これでクラスターは、新しいバージョンのPatroniで完全に稼働する状態になります。