Слон и Моська. Проблема фенсинга в кластерах PostgreSQL
Довольно часто в кластерных конфигурациях PostgreSQL можно встретить настройку, отвечающую за ввод отказавшего ведущего сервера обратно в кластер в качестве реплики. Утилита pg_rewind выполнит синхронизацию данных между двумя серверами. Она копирует изменения из WAL-файлов основного сервера, которые не применялись на отстающем сервере (бывшем мастере). Однако без механизма fencing существует риск потери данных, если оба сервера (старый мастер и новый мастер) активны одновременно и оба принимают изменения данных. Эта ситуация называется split-brain, возникновение ее катастрофично для целостности данных. Поговорим о том, как минимизировать риски потери данных, какие есть варианты fencing-а, какие практики стоит использовать и в каких ситуациях.
Слайды
Слайды доступны участникам мероприятия, выполнившим вход в личный кабинет.
Видео
Видео доступно участникам мероприятия, выполнившим вход в личный кабинет
Другие доклады
-
Андрей Черняков UIS, CoMagic Разработчик баз данных, техлид
pg_migration - система работы с кодом, как не дать программистам все сломать
Мы долгое время катили релизы на базы данных руками. Но когда их количество стало больше 50, выкладывать релизы руками стало больно, даже при наличии скриптов. Стало понятно, что нужен какой-то инструмент. Так как готовые инструменты нам не подошли, мы решили написать свою систему на основе пайплайнов ci/cd в gitlab.
В результате получилась удобная система работы с кодом: - автоматические проверки практически не дают сделать что-то не правильно (plpgsql_check, авто-тесты и т.д.) - исключается возможность расхождения кода в живой БД и в репозитории - включает в себя несколько утилит (написанных на python), которые можно использовать как в пайплайнах, так и непосредственно из консоли - поддерживаются два режима раскатки релизов: по кнопке из gitlab и полностью автоматический (по ключевому слову auto_deploy в сообщении к коммиту)
-
Александр Бурцев Skala^p Руководитель продукта Машина Баз ДанныхАлексей Власов Skala-r Архитектор
Аварийное восстановление Postgres Pro Enterprise в Машине Баз Данных Скала^р при помощи pg_probackup
Мы поговорим об архитектурных решениях хранения резервных копий внутри Машины Базы Данных для Postgres (МБД.П). Сравним этот вариант СРК с реализацией подключения МБД.П к Машине Хранения Данных (МХД.О) c S3-интерфейсом. Расскажем о производительности двух этих решений и ограничениях. Обсудим функции, которые мы хотели бы видеть в Enterprise-версии pg_probackup для работы с СРК. Узнаем какие open-source-продукты уже реализуют часть этих функций, но проигрывают в деталях реализации и расскажем почему так происходит.
-
Александр Никитин PGMechanix Администратор баз данных
Миграция int-> bigint
Довольно часто встречается ситуация, когда система начинает расти. И то, что раньше работало через какое-то время перестаёт работать. Именно так обстоит дело и с переполнением типов данных. Если в начале проекта хватало int4, то через какое-то время он может полностью исчерпаться и нужно переходить на bigint. В своём докладе я опишу то, с чем сталкивается ДБА, опишу путь решения подобной задачи и познакомлю с утилитой, которая значительно упростит выполнение подобного рода задач.
-
Александр Любушкин ФОРС Телеком Технический директорАндрей Чибук ФОРС Телеком Ведущий эксперт
Управление сценариями миграции большого объёма данных из Oracle в PostgreSQL
Инструмент Ora2PgCopy представленный на PgConf.Russia-2023 (https://pgconf.ru/talk/1589503) получил новое развитие и дополнен новым средством для инкрементальной миграции данных Ora2PgSync. В докладе рассматриваются следующие стадии процесса переноса данных большой БД: - многопоточная миграция данных (в том числе со сжатием при передаче по медленной сети) - создание индексов и ограничений целостности - инкрементальная миграция изменений данных после переноса основного объёма. Особое внимание уделяется обработке нештатных ситуаций с целью предотвращения полного повторения сценария миграции данных. Представлено несколько способов обеспечения равномерного и полного использования вычислительных ресурсов в течение всего времени отведённого на перенос БД. Обсуждаются проблемы инкрементальной синхронизации БД Oracle и PostgreSQL: - Почему надо анализировать все транзакции в Oracle, а не только зафиксированные - Что происходит, когда в Oracle один оператор delete удаляет 1млн. строк.