title

text

Алексей Мигуцкий
Алексей Мигуцкий Конвертум Руководитель отдела миграции БД
11:25 08 апреля
20 мин

Автоматическая миграция БД на PostgreSQL: планирование, решения, трудности

  • Автоматическая миграция БД в PostgreSQL
  • Оценка миграционного проекта и построение плана работ
  • Миграция схемы, данных и бизнес логики. Основные сложности, решения и возможности автоматизации.
  • Изменение приложения при миграции БД - сложности и возможности автоматизации

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

  • Павел Конотопов
    Павел Конотопов Postgres Professional руководитель кластерной группы
    40 мин

    Слон и Моська. Проблема фенсинга в кластерах PostgreSQL

    Довольно часто в кластерных конфигурациях PostgreSQL можно встретить настройку, отвечающую за ввод отказавшего ведущего сервера обратно в кластер в качестве реплики. Утилита pg_rewind выполнит синхронизацию данных между двумя серверами. Она копирует изменения из WAL-файлов основного сервера, которые не применялись на отстающем сервере (бывшем мастере). Однако без механизма fencing существует риск потери данных, если оба сервера (старый мастер и новый мастер) активны одновременно и оба принимают изменения данных. Эта ситуация называется split-brain, возникновение ее катастрофично для целостности данных. Поговорим о том, как минимизировать риски потери данных, какие есть варианты fencing-а, какие практики стоит использовать и в каких ситуациях.

  • Владимир Ситников
    Владимир Ситников PostgreSQL JDBC maintainer Performance Engineer
    40 мин

    Механизм server-prepared statements в реализации PostgreSQL JDBC

    Доклад о базовых принципах serever-prepared statements, и о фактической реализации в PostgreSQL JDBC. Планируется рассмотреть как базовые механизмы, так и краевые случаи.

    Примерный список тем:

    1) Как задействовать server-prepared statements
    2) Какие настройки влияют на server-prepared
    3) server-prepared vs batch execution
    4) server-prepared vs concurrent executions (несолько разных подключений)
    5) server-prepared vs connection poolers
    6) Как понять, что server-prepared не работает
    7) binary/text parameter/result encoding
    8) server-prepared vs типы данных (грубо говоря, timestamptz vs timestamp vs text encoding)

  • Анатолий Анфиногенов
    Анатолий Анфиногенов ВНИИЖТ Зам. директора научного центра - начальник отдела разработки ПО
    40 мин

    Диапазонные типы в Postgres

    После того, как импортозамещение состоялось, можно немного перевести дух и заняться дальнейшим развитием нашего приложения. При этом оказывается, что Postgres - это не упрощенная версия Oracle, как могло показаться некоторым в процессе миграции, а самобытная СУБД, заметно его превосходящая во многих вопросах.

    Поговорим о диапазонных типах - одном из бриллиантов в короне Postgres, про которые, как оказалось, знают далеко не все разработчики.

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

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

  • Александр Бурцев
    Александр Бурцев Skala^p Руководитель продукта Машина Баз Данных
    Алексей Власов
    Алексей Власов Skala-r Архитектор
    40 мин

    Аварийное восстановление Postgres Pro Enterprise в Машине Баз Данных Скала^р при помощи pg_probackup

    Мы поговорим об архитектурных решениях хранения резервных копий внутри Машины Базы Данных для Postgres (МБД.П). Сравним этот вариант СРК с реализацией подключения МБД.П к Машине Хранения Данных (МХД.О) c S3-интерфейсом. Расскажем о производительности двух этих решений и ограничениях. Обсудим функции, которые мы хотели бы видеть в Enterprise-версии pg_probackup для работы с СРК. Узнаем какие open-source-продукты уже реализуют часть этих функций, но проигрывают в деталях реализации и расскажем почему так происходит.