Инструменты пользователя

Инструменты сайта


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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki