Резервное копирование, которое не могут быть восстановлены, не является резервной копией. Многие команды обнаруживают, что их резервные копии повреждены, неполны или иным образом неприменимы только в случае бедствий. Это руководство охватывает практические методы проверки работы резервных копий PostgreSQL, прежде чем они вам понадобятся. От простых проверок целостности до полных восстановительных тестов, вы узнаете, как укрепить уверенность в своей стратегии резервного копирования и избежать кошмара неудачного восстановления.
Почему важна резервная проверка
Резервные копии PostgreSQL могут потерпеть неудачу тонкими способами. Резервный файл может существовать, но содержать поврежденные данные. Pg_dump может завершиться без ошибок, но пропустить критические таблицы из-за проблем с разрешением. Ваши сценарии восстановления могут работать в тестовых средах, но потерпеть неудачу в производстве из-за различных версий PostgreSQL.
Стоимость непроверенных резервных копий
Когда резервные копии терпят неудачу во время фактического восстановления, последствия являются серьезными:
- Потеря данных: Коррумпированные или неполные резервные копии означают постоянно потерянные данные
- Продление времени простоя: Неудавшиеся попытки восстановления отходов
- Нарушения соблюдения: Правила часто требуют подтвержденного восстановления
- Доверие клиентов: Продолжительные перебои наносят ущерб репутации и деловым отношениям
Одно исследование показало, что 34% компаний никогда не тестируют свои резервные копии, а из тех, которые восстанавливают, 77% сталкиваются с проблемами. Это не приемлемые шансы для производственных баз данных.
Уровни резервной проверки
Не все проверки равны. Быстрые проверки ловят очевидные проблемы. Полные восстановительные испытания доказывают возможность восстановления. Правильный подход использует несколько уровней проверки.
Уровни проверки
Уровень 1 - Существование и размер файла:
- Резервный файл существует в ожидаемом месте
- Размер файла не ноль и разумный
- Таймстамповые матчи ожидаемого резервного окна
Уровень 2 - Проверка целостности:
- Расчетное значение
- Архивный формат действует
- Файл не усечен
Уровень 3 - Структурная проверка:
- pg_restore может прочитать резервную копию
- Ожидаемые таблицы и схемы
- Количество матчей
Уровень 4 — Полное испытание на восстановление:
- Полное восстановление тестовой среды
- Проверка подключения
- Запросы целостности данных проходят
Более высокие уровни обеспечивают большую уверенность, но требуют больше ресурсов. Производственные системы нуждаются во всех четырех уровнях в разных частотах.
Проверка резервных копий pg_dump
pg_dump создает резервные файлы SQL или пользовательского формата. Каждый формат имеет конкретные подходы к проверке.
Проверка резервных копий пользовательского формата
Пользовательский формат (-Fc) является наиболее распространенным для производственных резервных копий. Он сжимает данные и позволяет выборочное восстановление.
Проверьте целостность архива в режиме списка pg_restore:
| |
Exit code 0 означает, что pg_restore может читать структуру архива. Non-zero указывает на проблемы с коррупцией или форматом.
Изъять таблицу содержимого для более глубокого осмотра:
| |
Это показывает все объекты в резервной копии. Сравните с ожидаемыми объектами:
| |
Значительные различия указывают на недостающие объекты.
Проверка резервных копий формата SQL
Обычные резервные копии SQL (-Fp) являются текстовыми файлами. Базовая проверка проверяет целостность файла:
| |
Резервные копии SQL должны заканчиваться комментарием завершения. Пропущенные окончания указывают на прерванные резервные копии.
Проверьте ошибки синтаксиса SQL без выполнения:
| |
Это улавливает очевидные проблемы синтаксиса, но не находит всех проблем.
Проверка резервных копий формата каталога
Формат каталога (-Fd) создает папку с несколькими файлами. Проверить наличие всех компонентов:
| |
Формат каталога позволяет параллельное восстановление, но требует сохранения всех файлов.
Проверка контрольных сумм
Контрольные суммы обнаруживает коррупцию файлов между созданием и восстановлением. Рассчитать контрольные суммы сразу после создания резервного копирования и проверить перед любым восстановлением.
Проверка контрольной суммы
Генерировать контрольные суммы во время резервного копирования:
| |
Проверить перед реставрацией:
| |
Выход показывает «OK» для сопоставления с контрольными суммами или «FAILED» для несочетаний.
Хранение контрольной суммы
Хранить контрольные суммы отдельно от резервных файлов. Если злоумышленник модифицирует резервные копии, они также могут изменять контрольные суммы, хранящиеся рядом с ними.
Варианты хранения контрольной суммы:
- Отдельные системы хранения с различными системами контроля доступа
- База данных с контрольными суммами (разный сервер)
- Применить только файлы журнала с защитой целостности
- Модули безопасности оборудования для критической среды
Цель состоит в том, чтобы сделать так, чтобы подделка чеков была обнаружена.
Автоматизированное восстановление
Ручная проверка улавливает очевидные проблемы. Автоматизированные восстановительные испытания доказывают, что резервные копии действительно восстанавливаются.
Построение восстановительного испытательного трубопровода
Создание специальной испытательной среды для проверки восстановления:
| |
Запланируйте этот сценарий для запуска после завершения каждого резервного копирования.
Испытания на эффективность восстановления
Цель восстановления времени (RTO) определяет, как быстро вы должны восстановиться. Регулярно проверяйте время восстановления, чтобы убедиться, что вы можете выполнить RTO.
Измерение времени восстановления
Метрики восстановления с течением времени:
| |
Определите эти метрики, чтобы определить тенденции. Увеличение времени восстановления сигнализирует о проблемах масштабирования.
Проверка своевременного восстановления
Если вы используете архивирование WAL для восстановления в момент времени (PITR), проверьте работу всей цепочки восстановления.
Тестирование возможностей PITR
PITR требует трех компонентов:
- Базовое резервное копирование (pg_basebackup)
- Архивы WAL из резервного времени вперед
- Возможность переигрывать WAL в целевое время
Проверьте каждый компонент:
| |
Запускайте полные тесты PITR ежемесячно. Они сложны, но имеют решающее значение для проверки стратегий непрерывного резервного копирования.
Проверка архива WAL
Пропавшие сегменты WAL разрывают цепи восстановления. Мониторинг пробелов:
| |
Немедленно сообщите о пробелах в WAL. Восстановление становится невозможным за пределами отсутствующих сегментов.
Расписание проверок
Различные типы проверки требуют разных частот, основанных на усилии и ценности.
Интеграция с графиками резервного копирования
Проверка запуска сразу после завершения резервного копирования:
| |
Это улавливает проблемы, когда их устранение все еще возможно.
Документирование процедур проверки
Письменные процедуры обеспечивают постоянную проверку, особенно когда основные члены команды недоступны.
Создание Runbooks
Процедуры поэтапной проверки документов:
Ежедневная книга проверки:
- Проверка выполнения резервного копирования в системе мониторинга
- Проверить наличие резервного файла в ожидаемом месте
- Размер файла в ожидаемом диапазоне
- Проверить матчи контрольной суммы
- Run pg_restore проверка списка
- Документ приводит к верификационному журналу
Ежемесячная книга тестов на восстановление:
- Выберите случайную резервную копию за прошлую неделю
- Сервер тестовых баз данных
- Восстановление резервной копии для тестирования сервера
- Запуск валидационного пакета запросов
- Проверить приложение может подключение и запрос
- Время восстановления документов и вопросы
- Испытательная среда
- Обновление команды по результатам
Рукописи уменьшают ошибки и обеспечивают согласованность между членами команды.
Члены учебной группы
Каждый, кому может потребоваться восстановление резервных копий, должен практиковать проверку и восстановление. Расписание ежеквартальных тренингов, где члены команды:
- Проверка выполняется вручную
- Полное восстановление в тестовой среде
- Устранение неполадок смоделированные неудачи
- Обновление рунетов с извлеченными уроками
Практика укрепляет доверие и улавливает пробелы в процедурах до чрезвычайных ситуаций.
Результаты контроля
Отслеживайте результаты проверки с течением времени, чтобы определить тенденции и уловить деградацию.
Ключевые показатели для мониторинга
- Уровень успеха проверки: процент резервных копий, проходящих все проверки
- Тенденции времени восстановления: Восстановление занимает больше времени?
- Тенденции размера резервного копирования: Неожиданные изменения указывают на проблемы
- Время с момента последнего полного восстановительного испытания: Предупреждение, если слишком долго
- Продолжительность проверки: Сколько времени занимает сама проверка
Настройте панели инструментов, показывающие эти показатели. Предупредите об аномалиях, прежде чем они станут неудачами.
Предупреждение об ошибках проверки
Любой отказ в проверке требует немедленного внимания:
| |
Не позволяйте неудачным проверкам сидеть в журналах незамеченными.
Резервный контрольный список
Используйте этот контрольный список для проверки ваших процессов проверки:
После каждой резервной копии:
- Код резервного выхода проверен
- Файл существует в ожидаемом месте
- Размер файла в ожидаемом диапазоне
- Контрольная сумма, рассчитанная и сохраненная
Ежедневно:
- pg_restore list проверка
- Никаких предупреждений от резервного мониторинга
- Проверка непрерывности архива WAL (при использовании PITR)
Еженедельно:
- Завершено частичное восстановление
- Запросы на валидацию проходят на восстановление теста
- Время восстановления в приемлемом диапазоне
Ежемесячно:
- Полное восстановление в изолированной среде
- Подключение приложений проверено на восстановленной базе данных
- Результаты проверки, проведенной группой
- Рукописи, обновленные с любыми изменениями
Ежеквартально:
- Испытано восстановление кросс-версии
- Завершилась тренировка команды
- Бурение аварийного восстановления, включая восстановление
Пропущенные пункты указывают на пробелы в проверке. Обращайтесь к ним, прежде чем они будут иметь значение.
Завершение
Резервная проверка превращает надежду в уверенность. Без тестирования резервные копии - это обещания, которые вы не можете выполнить. При систематической проверке вы точно знаете, что вы можете восстановить и сколько времени это займет.
Начните с автоматических проверок после каждой резервной копии: коды выхода, размеры файлов и контрольные суммы немедленно улавливают очевидные проблемы. Добавьте еженедельные восстановительные тесты, чтобы проверить, действительно ли восстанавливаются резервные копии. Ежемесячные полные тесты доказывают сквозную восстанавливаемость.
Усилия, вложенные в проверку, окупаются, когда происходит катастрофа. Вместо того, чтобы обнаруживать проблемы во время восстановления, вы будете практиковать процедуры и проверенные резервные копии, готовые к восстановлению. Эта уверенность стоит каждого часа, потраченного на тестирование.
Вы можете поделиться статьей со своими друзьями в социальных сетях, которым может быть интересна эта статья или просто оставить комментарий ниже. Спасибо.