programming:database:mysql:backup-restore
Бэкап и восстановление MySQL
На вскидку, при развертывании InnoDB таблицы ~ 1GB уходит около получаса. Чтобы засечь время используйте команду time (time mysql …).
Создать полный дамп MySQL:
mysqldump -uroot --all-databases --default-character-set=utf8 -p > mysql.dump
Создать дамп структуры MySQL:
mysqldump -u%user% -p%pass% --no-data db_name > db_name.dump
Создать полный дамп БД - каждая БД в отдельном архиве (shell-скрипт):
#!/bin/bash dblist=`mysql -u%user% -p%pass% -e "show databases" | sed -n '2,$ p'` for db in $dblist; do mysqldump -u%user% -p%pass% --routines --triggers $db | gzip --best > $db.sql.gz done
Восстановить MySQL дамп:
mysql -u%user% -hlocalhost -p%pass% --default-character-set=utf8 %database% < /path/dump.sql
Восстановить .sql.gz дамп:
gunzip -c dump.sql.gz | mysql -uroot -hlocalhost --default-character-set=utf8 -p%pass% %database%
Выдернуть конкретную таблицу из общего дампа:
awk '/CREATE TABLE `table_name`/,/UNLOCK TABLES/' db_name.dump
sed -n -e '/Table structure for.*`a_skd_details/,/Table structure for/p' all-mysql-databases.20140228.sql > a_skd_details_0228.sql
programming/database/mysql/backup-restore.txt · Последнее изменение: 2017/03/27 11:26 — artur