По порядку Senior Базы данных в эксплуатации обновлено

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

Вопрос

Расставьте шаги восстановления PostgreSQL на момент перед ошибочным DELETE.

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

Расставьте шаги по порядку стрелками.

  1. 1
    Определить точное время ошибки по логам приложения или базы
  2. 2
    Развернуть последнюю базовую копию до этого момента
  3. 3
    Проверить данные и перенести нужные строки в рабочую базу или переключиться
  4. 4
    Запустить восстановление: PostgreSQL проиграет WAL до цели
  5. 5
    Настроить restore_command и recovery_target_time
  6. 6
    Поднять новый сервер, не трогая текущую базу
Показать ответ и разбор

Коротко

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

Правильный порядок

  1. 1
    Определить точное время ошибки по логам приложения или базы
  2. 2
    Поднять новый сервер, не трогая текущую базу
  3. 3
    Развернуть последнюю базовую копию до этого момента
  4. 4
    Настроить restore_command и recovery_target_time
  5. 5
    Запустить восстановление: PostgreSQL проиграет WAL до цели
  6. 6
    Проверить данные и перенести нужные строки в рабочую базу или переключиться

Разбор

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

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

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

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