Простой бэкап MyISAM таблиц MySQL без остановки сервера
April 14th, 2010
Суть в том, что мы не прерываем выполнение запросов на чтение, но в то же время получаем консистентный бэкап.
Делаем:
mysql -p
В mysql-консоли:
FLUSH TABLES WITH READ LOCK;
Ждем пока выполнится запрос.
В другой консоли просто копируем папку с нужной базой (базами) в бэкап.
В mysql-консоли:
UNLOCK TABLES;

Хотелось бы дополнить – если у вас FreeBSD, то уменьшить время блокировки записи можно с помощью http://www.freebsd.org/doc/en/books/handbook/snapshots.html “в другой консоли”. То же самое касается пользователей ZFS. Вот тут http://people.freebsd.org/~rse/snapshot/ ещё чуток. Я к сожалению/счастью владелец парка linux (FreeBSD5 заставила так поступить, а ведь до неё всё крутилось на FreeBSD4 и как крутилось!), так что мне это не грозит
Впрочем у нас не держат и MySQL