Могу ли я восстановить резервную копию, если таблица повреждена?

0

Я надеюсь, что это будет простой ответ для одного из вас.

У нас есть PHP/MySQL, работающий на одном платном компьютере для продукта, который будет веб-администратором. Этот продукт будет использовать приложение "Запустить его и забыть".

Одна из наших проблем (независимо от того, действительно ли она) является повреждением таблицы MySQL/dbase.

У нас есть процессы, которые постоянно работают на этой маленькой коробке, которая может диагностировать повреждение или ловить ошибки базы данных и действовать соответственно.

Мы регулярно создаем резервные копии через эти же процессы. Мы думаем, что если мы ощущаем коррупцию или ломаем ошибку dbase, мы кратко остановим наши процессы и восстановим таблицу из последней резервной копии. Мы надеемся, что это устранит коррупцию.

Вопрос: если таблица MySQL повреждена, мы можем выполнить резервное восстановление?

Я предполагаю, что следующий вопрос будет, если наша логика выше правильна. Восстановит ли резервное копирование проблему с повреждением таблицы?

Я знаю, это звучит глупо, но мы не знакомы с бэкэндом MySQL. Наш страх в том, что если dbase (или таблица) каким-то образом повреждена, это также будет препятствовать восстановлению резервной копии.

Может кто-то из вас весит?

Большое спасибо.

  • 0
    что вы используете для «восстановления»?
  • 0
    строки myTable.tbl> recovered_data: P
Показать ещё 1 комментарий
Теги:
corruption

4 ответа

1
Лучший ответ

Да, будет. Имейте в виду, что у вас будут только данные до последней резервной копии, поэтому вы потеряете все, что происходило с того времени, до времени коррупции, но обычно это максимум на день.

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

  • 0
    Это очень маленькая база данных, но жизненно важная для продукта, поэтому мы фактически делаем резервные копии каждые 5 минут. Если в какой-то момент один из наших процессов обнаружит ошибку чтения / записи dbase, мы попытаемся диагностировать и затем выполнить восстановление из файла.
1

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

Какой механизм хранения вы используете?

  • 0
    Мы используем InnoDb. Я читал, что в 99% случаев InnoDB «позаботится» о проблемах коррупции. Мне ... просто трудно поверить в это.
1

Об одном предмете думать; В зависимости от структуры вашей базы данных восстановление одной таблицы из резервной копии может вызвать проблемы с ссылочной целостностью.

  • 0
    Не могли бы вы кратко прокомментировать это?
  • 0
    Если у вас есть связи с этой таблицей или из нее, то восстановление одной резервной копии таблицы с другим содержимым может привести к тому, что внешние ключи укажут на существующие строки. Это может не быть проблемой в зависимости от того, как ваше приложение справится с этим.
0

Я думаю, что весь смысл наличия резервной копии не так ли?

Кроме того, если таблица уже повреждена, что может быть хуже, если вы попытаетесь ее восстановить?

Я говорю, иди за ним.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню