Продвинутые техники pg_upgrade
На сегодняшний день утилита командной строки pg_upgrade является наиболее популярным инструментом для обновления между мажорными версиями Postgres. Однако помимо достоинств, у неё есть и известные проблемы. Одна из наиболее критичных: что делать, если произошёл сбой? Цель данного доклада - раскрыть те маленькие секреты, благодаря которым любой из слушателей сможет существенно улучшить процесс выполнения обновлений.
Мы начнём с обсуждения базового режима фунционирования pg_upgrade. Потом мы изучим то, что позволяет обновить многотерабайтный кластер за считанные минуты. В конце мы обсудим те самые ситуации сбоя, которых все боятся, а также разберёмся, что делать в случае их возникновения, чтобы обрести уверенность и определённость.
Список подтем доклада приведён ниже:
- Как работает pg_upgrade? Общая картина
- О pg_upgrade (вызов из командной строки)
- аргументы и опции
- Пошаговое выполнение обновления
- О репликации на основе РОЛИ
- с атрибутом REPLICATION
- с атрибутом LOGIN
- Опции для обновления: копирование или жёсткие ссылки?
- Что делать после обновления?
- о производительности
- об анализе
- о команде REPACK
- о переиндексации
- Когда что-то идёт не так, и точка невозврата уже пройдена (пройдена ли?)
- Обновляем РЕПЛИКУ
- Метод по умолчанию: pg_basebackup
- Продвинутый метод:
- - используем rsync
предупреждение: закольцовка vacuum
Видео
Другие доклады
-
Дмитрий Урсегов Postgres Professional Руководитель группы разработки
Шардман - естественный подход к шардингу в PostgreSQL
Объем данных, с которым работают современные корпоративные и интернет системы, постоянно растет. При этом все сложнее становится иметь и синхронизировать несколько копий данных в разных системах. Возникает необходимость работать с большими объемами данных непосредственно в транзакционной СУБД, Часто такое требование накладывает и логика приложений, которым необходимы результаты в реальном времени. В докладе рассмотрим какой может быть универсальная распределенная транзакционная СУБД. Разберем такие аспекты как типы нагрузки и их приоритизация, динамическое выделение ресурсов, уровень консистентности. Расскажем на каких инструментах в PostgreSQL можно построить такую систему, что у нас уже получилось и какие задачи еще предстоит решить.
-
Николай Самохвалов Nombox LLC Основатель
Бесшовная оптимизация запросов PostgreSQL, версия 2.0
Существует два способа анализировать SQL-запросы:
На макроуровне: в этом случае мы анализируем рабочую нагрузку как единое целое (есть три основных подхода: использование метрик из pg_stat_statements или аналогичного модуля, анализ логов с помощью pgBadger или другого похожего решения и запрос выборки в представлении pg_stat_activity).
На микроуровне: в этом случае мы погружаемся в детали исполнения одного конкретного запроса (тут главную роль играет команда EXPLAIN).
Между этими двумя подходами есть немало "белых пятен", которые обнаруживаются с ростом нагрузки. Главные проблемы:
- Нужно переключаться между макро- и микроуровнем без больших накладных расходов.
- Требуется надёжная проверка гипотез относительно возможных оптимизаций.
- Есть необходимость минимизации рисков при развёртывании новой функциональности.
Чтобы справляться с этими задачами в растущем проекте, требуется продвинутый опыт в качестве администратора баз данных, и – иногда – интуиция. Также могут помочь новые инструменты, которые (к счастью для нас!) не так давно начали появляться.
В рамках данного мастер-класса мы разберёмся, как можно настроить процесс беспроблемной и бесшовной оптимизации SQL-запросов в вашей организации: а) какие инструменты следует выбрать в вашем конкретном случае? б) как эффективно заполнить вышеупомянутые пробелы в сфере анализа запросов?
-
Брюс Момжиан EnterpriseDB Senior Database Architect
Postgres и искусственный интеллект в современном мире
Искусственный интеллект, машинное обучение и глубокое обучение — это взаимосвязанные концепты, которые пытаются решить проблемы, бросающие вызов традиционным вычислительным решениям — с помощью них обнаруживают мошенничество, распознают голос и определяют релевантность результатов поиска. Несмотря на то, что они противостоят традиционному вычислению, они требуют больших вычислительных ресурсов — вплоть до вычисления миллионов вероятностей и весов. Хотя эти вычисления могут выполняться вне базы данных, машинное обучение внутри базы данных, близко к тому, где хранятся данные, даёт определенные преимущества. В этой презентации будет разъяснено, как выполнять машинное обучение в базе данных под управлением Postgres.
-
Иван Панченко Postgres Professional рзаместитель генерального директора
Новости и роудмап СУБД Postgres Pro
Сооснователь Postgres Professional расскажет о работе компании над СУБД Postgres Pro, опишет её отличия от PostgreSQL и обозначит направления её дальнейшего развития.