|
Рубрика:
Администрирование /
Резервное копирование
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ВИЗИТКА
Андрей Воробьев, автор практических материалов по работе с данными и автоматизации
Бэкап есть, а данных нет Проверяем восстановление SQLite с помощью Python
Успешное копирование файла и прохождение PRAGMA integrity_check не гарантируют, что бэкап пригоден для восстановления. Наличие данных в WAL-журнале и соблюдение бизнес-логики (внешние ключи, наличие конкретных записей) должны проверяться отдельно. Предлагаемый Python-скрипт решает эту задачу.
Учебный стенд на Python выявляет устаревшую копию, потерю данных WAL и ошибки связей, которые не обнаруживает одна проверка структуры базы.
Файл резервной копии существует, занимает ожидаемый объём и открывается в SQLite. Этого достаточно для отчёта о выполнении копирования, но недостаточно для решения о восстановлении сервиса. В копии может отсутствовать последняя порция данных, а таблицы при этом сохранят правильную структуру. Такой случай легко воспроизвести без повреждения страниц и без аварийного отключения диска.
Разберём небольшой стенд, который создаёт несколько вариантов копии, восстанавливает каждый в отдельный каталог и сравнивает результат с заранее заданными данными. Проверка возвращает код завершения и машиночитаемый отчёт. На этом примере видно, какие свойства проверяет SQLite, какие условия должен определить администратор и что потребуется добавить перед использованием подхода в рабочей инфраструктуре.
<...>
Ключевые слова: SQLite, резервное копирование, восстановление данных, Python, WAL-журнал, integrity_check, автоматизация, systemd, целостность базы данных.
Полную версию статьи читайте в журнале Подпишитесь на журнал
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|