Перейти к основному содержимому

Установка

примечание

Эта страница переведена при помощи нейросети GigaChat.

Установка пакета в Linux

Для операционной системы могут быть доступны пакеты Patroni, созданные сообществом разработчиков PostgreSQL:

  • RockyLinux, AlmaLinux;
  • Debian и Ubuntu;
  • SUSE Enterprise Linux.

Также можно найти пакеты для непосредственных зависимостей Patroni, такие как модули Python, которые могут быть недоступны в официальных репозиториях операционной системы.

Для получения дополнительной информации см. документацию по репозиторию PGDG.

После установки репозитория PGDG для используемой ОС, можно будет установить Patroni.

Примечание:

Пакеты Patroni поддерживаются не разработчиками Patroni, а сообществом PostgreSQL. При необходимости поддержки, сначала попробуйте подключиться к PostgreSQL Slack.

Установка на версии Linux, производные от Debian

После установки репозитория PGDG, см. выше, установите Patroni с помощью команды apt:

apt-get install patroni

Установка на SUSE Enterprise Linux

Может потребоваться включить репозитории SUSE PackageHub для некоторых зависимостей. Подробнее см. документацию SUSE PackageHub.

Для SLES 15 с установленным репозиторием PGDG, см. выше, можно установить Patroni, используя команду:

zypper install patroni patroni-etcd

При включенном репозитории SUSE PackageHub, также можно установить etcd:

SUSEConnect -p PackageHub/15.5/x86_64
zypper install etcd

Обновление

Обновление Patroni - это очень простой процесс, просто обновите установку программного обеспечения и перезапустите сервис Patroni на каждом узле кластера.

Перезапуск сервиса Patroni приведет к перезагрузке базы данных PostgreSQL. В некоторых ситуациях это может привести к отказу основного узла в кластере, поэтому рекомендуется перевести кластер в режим обслуживания до завершения перезапуска сервиса Patroni.

Чтобы выполнить обновление patroni:

  1. Переведите кластер в режим обслуживания, выполните следующую команду на одном из узлов patroni:

    patronictl pause --wait
  2. Затем на каждом узле кластера выполните обновление пакета, необходимое для используемой ОС:

    apt-get update && apt-get install patroni patroni-etcd
  3. Перезапустите процесс сервиса patroni на каждом узле:

    systemctl restart patroni
  4. Возобновите мониторинг PostgreSQL с помощью patroni, чтобы вывести его из режима обслуживания:

    patronictl resume --wait

    Теперь кластер будет полностью функционировать с новой версией Patroni.

Предварительные требования для Mac OS

Для установки требований на Mac выполните следующие действия:

brew install postgresql etcd haproxy libyaml python

Psycopg

Начиная с версии psycopg2-2.8, двоичная версия psycopg2 больше не будет устанавливаться по умолчанию. Установка его исходного кода требует компилятора C и dev-пакетов postgres+python. Поскольку в мире Python невозможно указать зависимость как psycopg2 OR psycopg2-binary придется решить, как ее устанавливать.

Есть несколько доступных вариантов:

  1. С помощью диспетчера пакетов дистрибутива:

    sudo apt-get install python3-psycopg2  # install psycopg2 module on Debian/Ubuntu
    sudo yum install python3-psycopg2 # install psycopg2 on Fedora/CentOS
  2. С помощью указания одного из бинарных файлов psycopg, psycopg2 или psycopg2 в списке зависимостей при установке Patroni с помощью pip.

Общая установка для pip

Patroni можно установить с помощью pip:

pip install patroni[dependencies]

где dependencies может быть либо пустым, либо состоять из одного или нескольких следующих элементов, описанных ниже.

etcd или etcd3

Модуль python-etcd для использования Etcd в качестве распределенного хранилища конфигурации (DCS).

consul

Модуль python-consul для использования Consul в качестве DCS.

zookeeper

Модуль kazoo, чтобы использовать Zookeeper в качестве DCS.

exhibitor

Модуль kazoo, чтобы использовать Exhibitor в качестве DCS (те же зависимости, что и для Zookeeper).

Kubernetes

Модуль Kubernetes для использования Kubernetes в качестве DCS в Patroni.

raft

Модуль pysyncobj для использования реализации Raft на Python в качестве DCS.

aws

boto3 для использования обратных вызовов AWS.

all

Все вышеперечисленное (кроме семейства psycopg).

psycopg

Модуль psycopg[binary]>=3.0.0

psycopg2

Модуль psycopg2>=2.5.4

psycopg2-binary

Бинарный модуль psycopg2.

Например, команда для установки Patroni вместе с psycopg3, зависимостями для Etcd в качестве DCS и обратными вызовами AWS выглядит следующим образом:

pip install patroni[psycopg3,etcd3,aws]

Обратите внимание, что внешние инструменты для вызова при создании реплики или пользовательских сценариев начальной загрузки (например, WAL-E) должны устанавливаться независимо от Patroni.