Является ли копирование /var/lib/mysql хорошим альтернативой mysqldump?

Так как я делаю полную резервную копию всей моей системы debian, я думал, что если копия каталога /var/lib/mysql является жизнеспособной альтернативой удалению таблиц с помощью mysqldump.

  • все сведения, необходимые в этом каталоге?
  • Можно ли импортировать отдельные таблицы в другой mysql?
  • Могут ли возникать проблемы при восстановлении этих файлов на (возможно, немного) другой версии сервера mysql?

Ответ 1

  • Да
  • Да, если в таблице используется механизм MyISAM (по умолчанию). Нет, если он использует InnoDB.
  • Возможно, нет, и если есть, вам просто нужно выполнить mysql_upgrade, чтобы исправить их.

Чтобы избежать попадания баз данных в несогласованное состояние, вы можете либо закрыть MySQL, либо использовать LOCK TABLES, а затем FLUSH TABLES перед резервным копированием. Второе решение немного лучше, потому что сервер MySQL останется доступным во время резервного копирования (хотя и только для чтения).

Ответ 2

Этот подход будет работать только безопасно, если вы сначала закроете базу данных. В противном случае вы могли бы оказаться в непоследовательном состоянии после этого. Сначала используйте команду /etc/init.d/mysql. Затем вы можете перезапустить его после выполнения резервного копирования.

Ответ 3

Это нормально, если вы сначала завершите работу MySQL, и используйте ту же самую версию, чтобы получить "резервную копию". В противном случае это не так.