Могу ли я восстановить резервную копию, если таблица повреждена?
-
06-07-2019 - |
Вопрос
Я надеюсь, что это будет простой ответ для одного из вас.
У нас есть PHP / MySQL, работающий на одноплатном компьютере для продукта, который будет инструментом администрирования через Интернет. Этот продукт будет приложением «установи и забудь».
Одной из наших проблем (является ли она действительной) является повреждение таблицы / базы данных MySQL.
На этом маленьком блоке постоянно выполняются процессы, которые могут диагностировать повреждение или отлавливать ошибки базы данных и действовать соответствующим образом.
Мы регулярно создаем резервные копии с помощью этих же процессов. Мы думаем, что если мы почувствуем повреждение или поймем ошибку базы данных, мы ненадолго приостановим наши процессы и восстановим таблицу из самой последней резервной копии. Мы надеемся, что это исправит коррупцию.
Вопрос: если таблица MySQL повреждена, можем ли мы выполнить восстановление из резервной копии?
Я полагаю, что последующий вопрос будет, если наша логика выше верна. Исправит ли резервное восстановление проблему повреждения таблицы?
Я знаю, это звучит глупо, но мы не очень знакомы с бэкэндом MySQL. Мы опасаемся, что если база данных (или таблица) будет каким-либо образом повреждена, это также будет препятствовать восстановлению резервной копии.
Могут ли некоторые из вас взвесить это?
Большое спасибо.
Решение
Да, так и будет. Имейте в виду, что у вас будут данные только до последней резервной копии, поэтому вы потеряете все, что было с того времени, до времени повреждения, но обычно это максимум один день.
Резервная копия - это копия базы данных в любом состоянии, в котором она находилась во время резервного копирования. Если вы восстановите испорченную базу данных с помощью чистой резервной копии, вы станете добрым человеком. По этой причине сохраняйте ежемесячные резервные копии, а также последние семь дней. На всякий случай, если одна из ваших резервных копий хранится.
Другие советы
Я думаю, что даже до того, как вы подумаете об этом, вам нужно принять меры, чтобы гарантировать, что поврежденные таблицы никогда не будут резервироваться. Потому что, если вы восстанавливаете резервную копию и сама резервная копия оказывается поврежденной, вы вернетесь к тому, с чего начали.
Какой механизм хранения вы используете?
Надо подумать; В зависимости от структуры вашей базы данных восстановление одной таблицы из резервной копии может вызвать проблемы со ссылочной целостностью.
Думаю, в этом и заключается смысл резервирования?
Кроме того, если таблица уже повреждена, что может быть хуже, если вы попытаетесь ее восстановить?
Я говорю, пойти на это.