Заметки на полях

Копия, которой нет за пределами машины, — не копия

Резервное копирование

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

Три места

Рабочее правило простое: данные живут в трёх местах. На самой машине — свежий снимок, чтобы быстро откатиться. На другой машине — копии за последние недели. В облаке — зашифрованный архив на случай, если пропадут обе машины.

Забирать, а не отправлять

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

Проверять по-настоящему

Копия, которую ни разу не восстанавливали, — надежда, а не копия. Каждую ночь стоит распаковывать свежий архив и проверять базу:

sqlite3 restore/app.db 'pragma integrity_check'
# ok

И отдельно следить, чтобы самая свежая копия была не старше суток. Тишина в журнале не значит, что всё в порядке: она может значить, что задача просто не запускалась.