Как с помощью patroni запустить Postgresql
Чтобы запустить PostgreSQL через Patroni, необходимо выполнить несколько шагов для настройки и старта кластера PostgreSQL под управлением Patroni. Этот процесс включает создание конфигурационного файла Patroni, настройку зависимости DCS (например, etcd) и инициализацию кластера.
Шаги для запуска PostgreSQL с помощью Patroni:
1. Установка Patroni
Установите Patroni и все необходимые зависимости. Например, через pip
:
1 2 |
pip install patroni[etcd] |
2. Настройка конфигурационного файла Patroni
Создайте конфигурационный файл patroni.yml
, который будет содержать основные параметры для управления PostgreSQL. Пример конфигурации:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
scope: pg_cluster namespace: /service/ name: node1 restapi: listen: 0.0.0.0:8008 connect_address: 127.0.0.1:8008 etcd: host: 127.0.0.1:2379 bootstrap: dcs: ttl: 30 loop_wait: 10 retry_timeout: 10 maximum_lag_on_failover: 1048576 postgresql: use_pg_rewind: true parameters: max_connections: 100 max_wal_senders: 5 wal_keep_size: 64 max_replication_slots: 5 hot_standby: "on" postgresql: listen: 0.0.0.0:5432 connect_address: 127.0.0.1:5432 data_dir: /var/lib/postgresql/14/data bin_dir: /usr/lib/postgresql/14/bin authentication: superuser: username: postgres password: password replication: username: replicator password: replicator_password parameters: archive_mode: "on" archive_command: 'cp %p /var/lib/postgresql/wal_archive/%f' |
Основные секции:
etcd
— настройки для взаимодействия с etcd.bootstrap
— параметры для начальной настройки кластера.postgresql
— параметры для настройки и запуска PostgreSQL, такие как директория с данными, параметры подключения и авторизации.
3. Инициализация кластера
После настройки Patroni и создания конфигурационного файла нужно запустить Patroni на первой ноде для инициализации кластера:
1 2 |
patroni /etc/patroni/patroni.yml |
Patroni автоматически инициализирует экземпляр PostgreSQL и создаст кластер, который можно будет администрировать через Patroni.
4. Проверка статуса кластера
После запуска Patroni можно использовать команду patronictl
для просмотра статуса кластера и управления им:
1 2 |
patronictl -c /etc/patroni/patroni.yml list |
Это покажет список нод кластера и их роли (например, лидер или реплика).
5. Старт дополнительных нод
На остальных нодах кластера Patroni будет автоматически пытаться подключиться к существующему лидеру и начать синхронизацию данных.
Пример запуска Patroni как службы Systemd
Чтобы Patroni автоматически запускался при перезагрузке системы, создайте файл systemd сервиса:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[Unit] Description=Patroni PostgreSQL cluster manager After=network.target [Service] User=postgres Environment="PATRONI_CONFIG_FILE=/etc/patroni/patroni.yml" ExecStart=/usr/local/bin/patroni $PATRONI_CONFIG_FILE KillMode=process Restart=always LimitNOFILE=10240 [Install] WantedBy=multi-user.target |
Затем включите и запустите службу:
1 2 3 |
systemctl enable patroni systemctl start patroni |
Заключение
Таким образом, чтобы запустить PostgreSQL через Patroni, нужно настроить конфигурационный файл Patroni, инициализировать кластер и убедиться, что службы работают корректно через patronictl. Patroni берет на себя управление репликацией, автоматическим failover и поддержкой высокой доступности.
Recommended Posts
Пояснение конфига для Pgbouncer
12.02.2024
Конфигурационный шаблон jinja2 для Patroni
11.02.2024