Резервное копирование БД с помощью mysql

Экспорт, импорт БД с помощью утилиты mysqldump. Создание дампа базы данных MySQL.

Экспорт и импорт данных в MySQL обычно требуется при переносе информации из одной базы данных MySQL в другую и для осуществления резервного копирования.

Для выполнения действий по резервному копированию БД клиент может пойти тремя путями:

  • Работать с БД через панель управления Plesk, используя СУБД (описание);
  • Работать с БД используя unix shell;
  • Обратиться в службу технической поддержки и попросить восстановить резервную БД.

Наиболее надежным вариантом будет тот, в котором Вы самостоятельно будете производить действия по резервному копированию БД, так как это 100% способ быть увереным в целостности данных.

Если Вы хотите самостоятельно выполнять регулярное резервное копирование информации воспользовавшись утилитой mysqldump, которая доступна через unix shell, Вам необходимо следовать инструкциям:

Экспортируем БД (создание dump):

mysqldump -u имя_пользователя -p -h имя_сервера_БД имя_базы > dump.sql 

Данные будут сохранены в файле dump.sql. Далее (в случае необходимости) восстанавливаем данные из резервной копии (дампа) так:

mysql -u имя_пользователя -p -h имя_сервера_БД имя_базы < dump.sql 

Запускаемые указанным образом утилиты для работы с MySQL будут запрашивать пароль к базе данных. Нужно вводить пароль соответствующего пользователя БД. Если пароль был утерян, Вы можете самостоятельно изменить его в Панели управления :

  1. Домены > имя домена > Базы данных > имя базы данных
  2. Выбираем пользователя БД и в появившемся окне можно произвести смену пароля.

Дополнительные опции утилиты mysqldump.

--add-drop-table — опция, которая добавляет команду DROP TABLE перед созданием таблиц. Перед восстановлением таблиц из дампа, таблицы с таким же именем в рабочей базе данных будут удалены и пересозданы из резервной копии. Рекомендуется использовать для предотвращения возможных ошибок после восстановления;

--add-locks — опция, которая добавляет команды LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы. Применяется для ускорения доступа к MySQL;

--quote-names — опция, сообщающая утилите о необходимости ставить кавычки для названий таблиц и столбцов.

Опции --quick и --opt рекомендуется использовать, если база данных MySQL слишком большая для того, чтобы целиком поместиться в памяти.

При этом утилита mysqldump выдает ошибку: mysqldump: Out of memory (Needed XXXXX bytes)
mysqldump: Got error: 2008: MySQL client
run out of memory when retrieving data from server

В итоге строчка для создания копии базы данных получается следующей:

 mysqldump --opt -u имя_пользователя -p -h имя_сервера_БД 
--add-drop-table имя_базы > dump.sql

либо такой:

  mysqldump --quick -u имя_пользователя -p -h имя_сервера_БД 
--add-drop-table имя_базы > dump.sql

Для совместимости дампа, сделанного на стороннем сервере, мы рекомендуем создавать дамп базы данных с ключом:

--set-variable max_allowed_packet=1M

либо

-O max_allowed_packet=1M

Снятие/загрузка сжатого дампа

Часто возникает потребность сжать дамп непосредственно сразу после архивации или поместить в БД сжатый дамп. Эти операции можно выполнять на лету, одной строкой:

Снятие дампа и упаковка через gzip

mysqldump <Опции> | gzip > dump.sql.gz
Распаковка и загрузка дампа в БД используя gzip
gunzip < dump.sql.gz | mysql <Опции>
Снятие дампа и упаковка через bzip2
mysqldump < mysqldump options> | bzip2 > dump.sql.bz2

Распаковка и загрузка дампа в БД используя bzip2
bunzip2 < dump.sql.bz2 | mysql <Опции>
Снятие дампа и упаковка через lzma
mysqldump <Опции> | lzma > dump.sql.lzma

Распаковка и загрузка дампа в БД используя unlzma
unlzma < dump.sql.lzma | mysql <Опции>
Вместо <Опции> подставьте свои значения вида:

-uИМЯ_ПОЛЬЗОВАТЕЛЯ -pПАРОЛЬ -hХОСТ

Возможные проблемы

Если при выполнении снятия или заливки дампа вы получаете сообщение:

Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect

То, используйте в качестве параметра -h не localhost , а msk105.komtet.ru или msk106.komtet.ru , в зависимости от месторасположения Вашей БД, либо полное название Вашего домена .

Также Вы всегда можете обратиться в круглосуточную Службу технической поддержки , чтобы Вам помогли решить вопрос создания/восстановления дампа.

Вам также может помочь