MySQL - делаем дамп правильно

Я уже писал о том, как делать дамп и разворачивать его, а теперь хочу написать как делать его правильно, т.е. описать некоторые нюансы. И предлагаю два варианта.

Делаем дамп всех баз данных

В консоле подключаемся к  MySQL:

mysql -u root -p

и с помощью следующей команды закрываем все открытые и используемые таблицы + сбрасываем кэш запросов:

FLUSH TABLES WITH READ LOCK;

установливаем запрет на запись во все таблицы всех баз данных:

SET GLOBAL read_only = ON;

теперь можно делать дамп, а после не забудьте разблокировать наши базы данных:

SET GLOBAL read_only = OFF;

UNLOCK TABLES;

пояснения:

  1. не забывайте, на пользователей с привилегией SUPER установка флага read_only = ON не действует
  2. команду FLUSH TABLES нам приходится выполнять т.к. у нас есть таблицы MyISAM

Делаем дамп одной базы данных

В консоле подключаемся к  MySQL:

mysql -u root -p

и выбираем нашу базу данных:

USE mydb;

а с помощью следующей команды закрываем все открытые и используемые таблицы + сбрасываем кэш запросов:

FLUSH TABLES WITH READ LOCK;

теперь можно делать дамп, а после не забудьте разблокировать нашу базу данных:

UNLOCK TABLES;

Удачки в эксперементах.


13.03.2014 03:58