Выбор ответа Middle Базы данных в эксплуатации спрашивают часто обновлено

Восстановление на момент времени

Вопрос

В 14:32 кто-то выполнил DELETE FROM orders без WHERE. Ежесуточный pg_dump делается в 03:00. Что позволило бы восстановить данные на 14:31?

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

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

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

Коротко

Правильный ответ: Физический бэкап с архивом WAL и recoverytargettime. PITR проигрывает WAL поверх базовой копии до нужного момента.

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

  1. Логический дамп в 03:00 плюс повторный ввод заказов вручную
  2. Асинхронная реплика: на ней данные на момент удаления ещё остались
  3. Команда ROLLBACK от имени суперпользователя для последней транзакции
  4. Физический бэкап с архивом WAL и recovery_target_timeправильный ответ

Разбор

PITR проигрывает WAL поверх базовой копии до нужного момента. Дамп в 03:00 потеряет всё за 11 с лишним часов. Реплика применит DELETE через миллисекунды, репликация не защищает от логических ошибок (только отложенная реплика с recovery_min_apply_delay). Закоммиченную транзакцию откатить нельзя.

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

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

Термины по теме