Мастер-класс: Управление высокодоступными PostgreSQL кластерами с помощью Patroni
Patroni - это Python-приложение для создания высокодоступных PostgreSQL кластеров на основе потоковой репликации. Оно используется такими компаниями как Red Hat, IBM Compose, Zalando и многими другими. С его помощью можно преобразовать систему из ведущего и ведомых узлов (primary - replica) в высокодоступный кластер с поддержкой автоматического контролируемого (switchover) и аварийного (failover) переключения. Patroni позволяет легко добавлять новые реплики в существующий кластер, поддерживает динамическое изменение конфигурации PostgreSQL одновременно на всех узлах кластера и множество других возможностей, таких как синхронная репликация, настраиваемые действия при переключении узлов, REST API, возможность запуска пользовательских команд для создания реплики вместо pg_basebackup, взаимодействие с Kubernetes и т.д.
Слушатели мастер-класса подробно узнают, как работает Patroni, получат практические навыки настройки высокодоступных кластеров на его основе, познакомятся с различными дополнительными возможностями и поучаствуют в диагностике проблем. Будут рассмотрены следующие темы:
- область применения: какие задачи HA успешно решаются Patroni
- обзор архитектуры
- создание тестового кластера
- утилита patronictl
- изменение конфигурации PostgreSQL для кластера, управляемого Patroni
- мониторинг с помощью API
- подходы к переключению клиентов
- дополнительные возможности: ручное переключение, перезагрузка по расписанию, режим паузы
- настройка синхронной репликации
- расширяемость и универсальность
- частые ошибки и их диагностика
Для полного участия в мастер-классе вам понадобится ноутбук с установленным git, vagrant и virtual box.
Vagrant можно загрузить со страницы https://www.vagrantup.com или установить с помощью пакетов в вашем дистрибутиве. Virtualbox: https://www.vagrantup.com
После установки Vagrant и Virtualbox нужно выполнить:
$ git clone https://github.com/alexeyklyukin/patroni-training $ cd patroni-training $ vagrant up
После того, как patroni box поднимется и установит необходимые пакеты к нему можно подключиться с помощью vagrant ssh.
Видео
Другие доклады
-
Кирилл Боровиков ООО "Компания "Тензор" Технический директор
explain.sbis.ru - массовая оптимизация запросов
Как оптимизировать производительность запросов в PostgreSQL? Как это делать, если серверов - сотни, а баз - тысячи? В "Тензоре" мы разработали для этого отдельный инструмент - explain.sbis.ru: - для синхронного сбора и анализа запросов - для визуализации планов выполнения - для мониторинга ошибок в БД
-
Максим Соболевский JetBrains Менеджер по марткеингу
DataGrip: IDE для PostgreSQL от JetBrains
JetBrains 15 лет производит среды разработки для работы со многими языками программирования. Самая популярная из них – IntelliJ IDEA для java, но она поддерживает и базы данных. В какой-то момент мы решили, что эту функциональность и глубокий опыт компании в работе с языками можно привнести и в мир SQL – так появилась среда разработки DataGrip. В докладе я расскажу о том, как DataGrip помогает писать код и работать с данными быстро, как расширить самому функциональность инструмента и постараюсь выяснить, какие проблемы в инструментарии актуальны для российского PostgreSQL сообщества.
-
Александр Погодин Корпорация ПАРУС, МГОТУ руководитель отделаААлександр Панкратов НПЦ Парус Генеральный директор
Технология миграции тиражных клиент-серверных приложений с СУБД Oracle в СУБД PostgreSQL: Принципы, подходы и особенности
В докладе рассматриваются подходы и варианты реализации миграции клиент-серверного приложения Парус-Бюджет 8 с платформы Oracle Database на платформу PostgreSQL без изменения клиентского приложения для Desctop и Web. Предлагаемое решение позволяет осуществить прозрачный переход существующих пользовательских рабочих мест.
-
Иван Фролков Postgres Professional инженер-консультант
Управление потоками заданий в PostgresPro Enterprise
Нередко требуется выполнить асинхронно не одну транзакцию, а несколько в строго определенной последовательности. Для реализации подобного рода задач существует несколько решений, и одной из них - модуль pgpro_scheduler.