Dump MySQL, создание резервной копии БД
Вашему вниманию качественная раскрутка сайта петербург.
Предисловие
Рано или поздно у всех стоит вопрос о создании копии БД. В сети есть очень много разных программ скриптов и прочего, но они хороши тогда, когда БД маленькая, ну как сейчас у нас, но если БД весит 1-2 ГГб, что делать???? Тут путь один, использовать родную командную утилиту mysqldump — тут столько букв, что я решил описать, по моему мнению, значимые параметры.
Синтаксис
В чем её преимущество — она быстрая, с кучей параметров, скорость её работы всегда будет выше, чем у phpmyadmin и им подобным.
1 shell> mysqldump [options] db_name [tables]
2 shell> mysqldump [options] --databases db_name1 [db_name2 db_name3…]
3 shell> mysqldump [options] --all-databases
1 maxnag@svn:~/maxnag> mysqldump -uroot -ppassword maxnag_dev > maxnag_dev.sql
где -uroot — это параметр u означает юзер root, название этого юзера.
-ppassword — это параметр p означает пароль пользователя root
maxnag_dev — название БД, которая дампируетса.
> maxnag_dev.sql — знак больше говорит что весь поток дампа будет записан в файл maxnag_dev.sql по пути ~/maxnag, можно прописать любой путь.
1 maxnag@svn:~/maxnag> mysql -uroot -ppassword maxnag_dev < maxnag_dev.sql
параметры теже, команда восстанавливает БД из файла maxnag_dev.sql в БД maxnag_dev. Обратите внимание, что первая команда не выводит на экран содержимое дампа, а вторая выводит (я думаю это тоже регулируется в настройках)
Параметры и примеры
Теперь самое интересное. Это параметры и примеры.
Дамп только «скелета» таблиц
1 maxnag@svn:~/maxnag> mysqldump -uroot -ppassword --no-data maxnag_dev > maxnag_dev.sql
1 maxnag@svn:~/maxnag> mysqldump -uroot -ppassword -B maxnag_dev mybloog > twoDB.sql
1 maxnag@svn:~/maxnag> mysqldump -uroot -ppassword maxnag_dev --tables user user_data > page.sql
Обратите внимание, что сначала идет название таблицы, а потом перечисляться нужные таблицы.
Создание дампа триггеров
1 maxnag@svn:~/maxnag> mysqldump -uroot -ppassword test --tables user --triggers > user.sql
03 /*!50003 CREATE */ /*!50017 DEFINER=`root`@`%` */ /*!50003 TRIGGER `test_user_pass2` BEFORE INSERT ON `user` FOR EACH ROW BEGIN
—routines, -R — с этим ключем идет их создание.
Создание дампа планировщика заданий
—events, -E с этим ключем идет их создание.
Создание дампа в виде XML
1 maxnag@svn:~/maxnag> mysqldump -uroot -ppassword test --tables user -X> user.xml
вот часть содержимого
01 <table_data name="user">
02 <row>
03 <field name="id">1</field>
04 <field name="fam">Нагайченко</field>
05 <field name="name">М</field>
06 <field name="otch">В</field>
07 <field name="pass">5f4dcc3b5aa765d61d8327deb882cf99</field>
08 <field name="login">maxnag</field>
09 </row>
10 </table_data>
Создание дампа с разбиением его на части
1 maxnag@svn:~/maxnag> mysqldump -uroot -ppassword maxnag_dev split -b 300K — maxnag.sql
Обратите внимаение, что -b, означает что мы указываем на какой объем следует делить, после этого параметра идет размер, он может быть
1 SIZE may have a multiplier suffix:<br>
2 b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,<br>
3 GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.<br>
1 maxnag@svn:~/maxnag> mysqldump -uroot -ppassword maxnag_dev gzip > maxnag.sql.gz
B получаем дамп уже в архиве.