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

Установка

примечание

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

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

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

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

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

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

Если используете операционную систему, производную от RedHat Enterprise Linux, также могут потребоваться пакеты из EPEL, для подробной информации см. документацию по репозиторию EPEL.

После установки репозитория 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 RedHat/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.