Установка
Эта страница переведена при помощи нейросети 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.