Выбор ответа Senior NoSQL и выбор хранилища обновлено

Физическая или логическая репликация

Вопрос

Нужно переехать с PostgreSQL 13 на 16 с минимальным простоем. Почему для этого берут логическую репликацию, а не потоковую физическую?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Физическая требует той же мажорной версии, логическая работает между версиями. Физическая (потоковая) репликация воспроизводит WAL побайтно: реплика это точная копия всего кластера той же мажорной версии, только для чтения.

Варианты ответа

  1. Физическая репликация не поддерживается в PostgreSQL 16
  2. Логическая сама копирует DDL и последовательности, готовить ничего не надо
  3. Логическая репликация работает только внутри одной мажорной версии
  4. Физическая требует той же мажорной версии, логическая работает между версиямиправильный ответ

Разбор

Физическая (потоковая) репликация воспроизводит WAL побайтно: реплика это точная копия всего кластера той же мажорной версии, только для чтения. Логическая расшифровывает WAL в изменения строк (INSERT, UPDATE, DELETE) выбранных таблиц и применяет их на подписчике, поэтому подписчик может быть другой версии, на нём можно писать в другие таблицы и выбирать, что реплицировать (публикации). Ограничения логической в PostgreSQL 16: DDL не реплицируется (схему переносят заранее), значения последовательностей тоже (их выставляют при переключении), у таблиц нужен первичный ключ или REPLICA IDENTITY для UPDATE и DELETE.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.