Все ленты — последние статьи

Dump MySQL, создание резервной копии БД

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 получаем дамп уже в архиве.