среда, 5 июня 2013 г.

Резервное копирование БД mysql

Создание дампа:
mysqldump --opt -u имя_пользователя -p -h имя_сервера_БД --add-drop-table имя_базы > dump.sql 
 Восстановление:
mysql -u имя_пользователя -p -h имя_сервера_БД имя_базы < dump.sql 
Дополнительные опции утилиты mysqldump.
--password=your_pass — параметр для ввода пароля без запроса.
--add-drop-table — опция, которая добавляет команду DROP TABLE перед созданием таблиц. Перед восстановлением таблиц из дампа, таблицы с таким же именем в рабочей базе данных будут удалены и пересозданы из резервной копии. Рекомендуется использовать для предотвращения возможных ошибок после восстановления;
--add-locks — опция, которая добавляет команды LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы. Применяется для ускорения доступа к MySQL;
--quote-names — опция, сообщающая утилите о необходимости ставить кавычки для названий таблиц и столбцов.
Опции --quick и --opt рекомендуется использовать, если база данных MySQL слишком большая для того, чтобы целиком поместиться в памяти.


Пример скрипта:
@echo off
rem скрипт бэкапа Mysql базы bd_new 

::Путь до mysqldump
set path_mysqldump=c:\"Program Files (x86)"\MySQL-5.5.29\bin\mysqldump.exe
::Путь выгрузки дампа
set out_dump=C:\temp_backup\bd_new
::Путь копирования на сервер хранения
set puth_srv=\\srv\r$\week_backup_sql

::Команда снятия дампа  
%path_mysqldump% --opt -u root --password=123456 -h 192.168.0.2 --add-drop-table bd_new > C:\temp_backup\bd_new\bd_new.sql
:: Упаковываем и копируем по сети
start /wait "BackUP MySql base" /min  "c:\Program Files\7-zip\7z.exe" a -mmt=2 "%puth_srv%\bd_new_%DATE%.zip" "%out_dump%\*.sql"
del "%out_dump%\*.sql"
exit