Перейти к основному контенту
Tech Path Finder
КурсыИнтервьюКод-ревьюБлог
Tech Path Finder

Персонализированный путеводитель в IT. Квизы, мок-интервью, код ревью и аналитика прогресса.

@potapov_me

Платформа

  • Курсы
  • Прогресс
  • Мок-интервью
  • Код ревью
  • Тренажёр переговоров
  • Закладки

Контент

  • Блог
  • Главная
  • Обратная связь

Компания

  • О проекте
  • Тарифы
  • Условия использования
  • Конфиденциальность
  • Согласие на обработку данных
  • Cookie
  • Реквизиты

Аккаунт

  • Войти
  • Зарегистрироваться
  • Профиль

© 2026 Tech Path Finder. Все права защищены.

·ИП Потапов К.С.·Политика конфиденциальности·
Сделано с ❤️ в России
  1. Резервные копии, восстановление и обновление
backup_partition_upgrade

Резервные копии, восстановление и обновление

Допустимая потеря данных, pg_dump, PITR, секции и переход между версиями

Открыть лабораториюv1.1.0Запускается локально из публичного репозитория

Резервные копии, восстановление и обновление

Резервная копия полезна только тогда, когда из неё можно восстановить нужные данные за допустимое время. Успешная команда pg_dump ещё не доказывает, что файл полный, доступен и подходит новой версии окружения.

Сколько данных и времени можно потерять

Перед выбором способа копирования задают две цели:

  • RPO — сколько уже подтверждённых данных допустимо потерять. RPO 15 минут означает, что после аварии может не хватать последних 15 минут изменений.
  • RTO — сколько времени сервис может оставаться недоступным до восстановления.

Ежедневная копия без журнала даёт возможную потерю почти суток. Большая копия, которая восстанавливается 12 часов, не подходит сервису с RTO 2 часа.

Логическая копия

pg_dump читает одну базу и записывает её логическое содержимое: команды и данные для создания объектов. Обычная работа читателей и писателей при этом продолжается.

pg_dump не включает общекластерные роли и табличные пространства. Их нужно сохранять и описывать отдельно, как и расширения и соответствие владельцев.

Форматы custom и directory восстанавливаются через pg_restore. Формат directory поддерживает параллельное создание копии и восстановление.

Логическая копия удобна для отдельных баз и переноса между версиями, но на очень большом объёме восстановление может быть долгим.

Физическая копия и восстановление на момент времени

Физическая копия сохраняет файлы всего кластера PostgreSQL. Вместе с непрерывным архивом WAL она позволяет восстановить состояние на выбранный момент. Этот процесс называют PITR (Point-in-Time Recovery).

Полная цепочка состоит из следующих частей:

  1. базовая физическая копия с манифестом файлов;
  2. непрерывный архив сегментов WAL без молчаливой перезаписи;
  3. срок хранения WAL, покрывающий самую старую нужную копию;
  4. ранняя проверка через pg_verifybackup;
  5. восстановление в новый пустой каталог данных;
  6. файл recovery.signal, команда получения WAL и целевой момент;
  7. проверка контрольных строк и новой временной линии.

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

Тренировку никогда не начинайте с очистки неизвестного каталога на сервере. Учебная лаборатория использует только отдельный именованный том Docker.

Секционирование и срок жизни данных

Секционирование (partitioning) делит одну логическую таблицу на физические части по ключу, например по месяцу occurred_at. Запрос по этому ключу может отбросить ненужные секции ещё при планировании.

Главная польза часто связана с обслуживанием. Секцию старого месяца можно отсоединить, архивировать и позже удалить, не выполняя DELETE для каждой строки.

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

ATTACH, DETACH и DROP меняют структуру и берут блокировки. Даже быстрая операция с метаданными может долго ждать текущую нагрузку. Вариант DETACH ... CONCURRENTLY имеет ограничения, которые проверяют на версии курса.

Обновление PostgreSQL

Дополнительный выпуск (minor release) сохраняет основную версию, например 18.3 → 18.4. Обычно он требует заменить исполняемые файлы и перезапустить сервер по примечаниям к выпуску.

Основное обновление (major upgrade) меняет первую часть версии, например 17 → 18. Для него используют pg_upgrade, логическую репликацию или dump/restore.

До основного обновления проверьте:

  • совместимость расширений и правил сортировки;
  • свободное место и длительность каждого этапа;
  • откат до момента необратимого переключения;
  • сбор статистики ANALYZE после переноса;
  • планы важных запросов;
  • резервную копию и восстановление уже на новой версии.

Обновление сначала полностью репетируют на копии, включая переключение приложения и возврат при ошибке.

Практика

В лаборатории 27 вы проверите направление строки в нужную секцию и соберёте их список. Отдельная тренировка восстановления создаёт логическую копию, восстанавливает её в другую базу и сравнивает данные.

Подробнее: резервное копирование и восстановление, непрерывное архивирование и PITR.

Проверьте свои знания

Вопросы ещё не добавлены

Вопросы для этой подтемы ещё не добавлены.

Далее: Репликация, пулы соединений и итоговый проект