Установка#
Примечание
Эта страница переведена при помощи нейросети 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:
Переведите кластер в режим обслуживания, выполните следующую команду на одном из узлов patroni:
patronictl pause --waitЗатем на каждом узле кластера выполните обновление пакета, необходимое для используемой ОС:
apt-get update && apt-get install patroni patroni-etcdПерезапустите процесс сервиса patroni на каждом узле:
systemctl restart patroniВозобновите мониторинг 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 придется решить, как ее устанавливать.
Есть несколько доступных вариантов:
С помощью диспетчера пакетов дистрибутива:
sudo apt-get install python3-psycopg2 # install psycopg2 module on Debian/Ubuntu sudo yum install python3-psycopg2 # install psycopg2 on Fedora/CentOSС помощью указания одного из бинарных файлов
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.