title

text

Андрей Сальников
Андрей Сальников Data Egret DBA
16:15 06 февраля
45 мин

Практика обновления версий PostgreSQL

В большинстве своем, системные администраторы и ДБА бояться как огня делать мажорные обновления версий баз данных (RDBMS), особенно если эта база данных в эксплуатации и имеет достаточно высокую нагрузку. Главной причиной тому некоторый даунтайм базы данных, который всегда подразумевается при планировании таких работ.

На практике, такого рода upgrade занимает довольно длительное время и зачастую администраторам с малым опытом подобных операций приходится откатываться на старую версию баз данных из-за достаточно банальных ошибок, которые можно было бы избежать еще на этапе подготовки.

В Data Egret мы накопили огромный опыт проведения мажорных апгрейдов PostgreSQL в проектах, где нет права на ошибку. Я поделюсь своим опытом и расскажу о следующих шагах процесса: как правильно подготовиться к upgrade-у PostgreSQL? что необходимо сделать на этапе подготовки? как запланировать последовательность действий на сам upgrade? как провести процедуру upgrade-а успешно, без возврата на предыдущую версию бд? как минимизировать или вообще избежать простоя всей системы во время upgrade-а? какие действия необходимо выполнить после успешного upgrade-а PostgreSQL? Я также расскажу про две наиболее популярные процедуры апгрейда PostgreSQL - pg_upgrade и pg_dump/pg_restore, плюсы и минусы каждого из методов и расскажу про все типичные проблемы на всех этапах этой процедуры, и как их избежать.

Доклад будет интересен как новичкам так и тем ДБА которые уже давно работают с PostgreSQL, но хотят побольше узнать о том как правильно планировать и проводить upgrade максимально безболезненно.

Слайды

Видео

Другие доклады

  • Андрей Зубков
    Андрей Зубков ООО "Пармалогика" Администратор баз данных
    45 мин

    Инструмент анализа исторической нагрузки или "AWR для Postgres"

    Администратор баз данных регулярно сталкивается с необходимостью поиска проблемных запросов в своих базах данных. Для оперативного поиска хорошо подходит PGCenter, но что делать если проблемы производительности наблюдались в прошлом? В этом докладе я хочу поделиться своим опытом разработки и применения инструментария, позволяющего производить ретроспективный анализ нагрузки запросов в базах данных PostgreSQL - pg_profile

  • Никита Глухов
    Никита Глухов Postgres Professional Разработчик
    Олег Бартунов
    Олег Бартунов Postgres Professional генеральный директор
    45 мин

    "Умное" индексирование jsonb

    PostgreSQL имеет репутацию универсальной СУБД,то есть базы данных, с которой можно стартовать практически любой проект, так как она имеет богатую функциональность,отличную репутацию и большое сообщество. Ее расширяемость позволяет добавлять недостающие функции силами прикладных программистов без остановки системы.

    Я расскажу про то, как мы в Postgres Professional улучшили работу с индексами, а именно, добавили возможность использования параметров для их создания. В качестве примера, я расскажу про "умное" индексирование jsonb с помощью нашего расширения jsquery. "Умное" индексирование означает, что можно задавать подмножество jsonb для индексирование с помощью jspath,нового типа данных jsquery, который можно будет указывать в качестве параметра при создании индекса. Таким образом, индекс будет меньше,что положительно скажется на производительности запросов и лучшей конкурентности. Кроме того, параметры к оп классам позволят гибче работать с уже существующими индексами, а также помогут при индекскации jsonb с помощью jsonpath из ожидаемого SQL/JSON.

  • Olivier Courtin
    Olivier Courtin DataPink Owner & DataScientist
    45 мин

    Продвинутый анализ пространственных данных с помощью PostgreSQL, PostGIS и Python

    PostGIS на протяжении двух десятилетий завовевал известность как лучшее опенсорсное решение для анализа пространственных данных. В докладе я остановлюсь на продвинутом анализе пространственных данных с помощью PostGIS, расскажу о дальнейшем развитии с помощью GeoDataScience, библиотек и фреймворков Python, сочетаемых с PostgreSQL/PostGIS, включая технологии машинного и глубокого обучения.

  • Алексей Клюкин
    Алексей Клюкин Zalando SE Database Engineer
    Александр Кукушкин
    Александр Кукушкин Zalando SE Database Engineer
    180 мин

    Мастер-класс: Управление высокодоступными 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.