Содержание

Шпаргалки mysqldump

Дамп/архивирование/пересылка (mysqldump, cat, bzip2, scp, ssh)

Обычный дамп

mysqldump -u user -ppwd dbname [tbl names]> /path/to/dump.sql

Дамп + Архивация

mysqldump -u user -ppwd  -q -e dbname | bzip2 -9> /path/to/dump.sql.bz2

Дамп + Пересылка на другой сервер (Бекап БД на другой сервер)

mysqldump -u user -ppwd  -q -e dbname | ssh user @remotehost 'cat> /path/to/dump.sql.bz2'

Дамп + Архивация + Пересылка на другой сервер (Архивация бекапа БД на другой сервер)

mysqldump -u user -ppwd  -q -e dbname | bzip2 -9 | ssh user @remotehost 'cat> /path/to/dump.sql.bz2'

Стоит отметить что при наличии 100 мбит (или более быстрых) портов на обоих серверах и при необходимости дальнейшего использования дампа на удаленном севере - выключение архивации из потока может ускорить процесс, т.к. в этом процессе слабым звеном скорее всего выступит ядро процессора. С другой стороны, если делать дамп одновременно нескольких баз данных параллельно - то слабым звеном уже станет 100мбитный канал серверов и использование bzip2 или gzip будет оправдано.

Заливание дампа, распаковка

Создание базы данных из коммандной строки

mysqladmin -u user -ppwd create dbname

"Заливка" дампа с локального диска

mysql -u user -ppwd dbname </path/to/dump.sql

Восстанавливаем БД из архива с локального диска

bunzip2 </path/to/dump.sql.bz2 | mysql -u user -ppwd dbname

"Заливка" бекапа MySQL с удаленного сервера

ssh user@remotehost 'cat /path/to/dump.sql' | mysql -u user -ppwd dbname

Восстановление бекапа MySQL из архива с удаленного сервера

ssh user@remotehost 'cat /path/to/dump.sql.bz2' | bunzip2 | mysql -u user -ppwd dbname

Копирование базы данных между MySQL серверами

Копирование базы данных на удаленный MySQL-сервер

Если скорость сетевого интерфейса достаточна

mysqldump -u user -ppwd -q -e dbname | ssh user @remotehost 'cat | mysql -u user -ppwd dbname'

Если скорость сетевого интерфейса не достаточна - добавляем промежуточную архивацию

mysqldump -u user -ppwd -q -e dbname | bzip2 -9 | ssh user @remotehost 'cat | bunzip2 | mysql -u user -ppwd dbname'

Копирование базы данных с удаленного MySQL-сервера на локальный

Если скорость сетевого интерфейса достаточна

ssh user@remotehost 'mysqldump -u user -ppwd -q -e dbname' | mysql user -ppwd  dbname

Если скорость сетевого интерфейса не достаточна - добавляем промежуточную архивацию

ssh user@remotehost 'mysqldump -u user -ppwd -q -e dbname | bzip2' | bunzip2 | mysql -u user -ppwd dbname