Простой вопрос об использовании mysqldump


0

У меня есть веб-сайт LAMP с бэкэндом MySQL с движком InnoDb для таблиц

Я хотел бы иметь возможность использовать mysqldump для периодических дампов базы данных - БЕЗ необходимости останавливать сервер mysql (т.е. закрывать веб-сайт) на время резервного копирования.

Я удивлен, что не могу найти эту информацию нигде - даже в документации по MySQL. Многое упоминается о mysqlhotcopy, но это работает только для таблиц IMSAM - и поэтому не представляет интереса / пользы для меня.

Кто-нибудь знает, если (как?) Я могу использовать mysqldump, чтобы взять копию / дамп базы данных, которая все еще используется ?.

Ссылка на официальную документацию была бы очень полезна, так как я хочу убедиться, что я понимаю это абсолютно правильно.

Я работаю на Ubuntu 10.0.4 LTS

Ответы:


1

Обычный способ сделать это - настроить подчиненный экземпляр MySQL и взять оттуда резервную копию. Вам не обязательно нужен отдельный физический сервер для подчиненного MySQL, вполне нормально запускать его на том же сервере (если у вас есть дисковое пространство и немного памяти для него; со стороны ЦП, в основном, простаивающий подчиненный MySQL будет не навреди)

РЕДАКТИРОВАТЬ :: Добавлены официальные ссылки на документы репликации MySQL.

Длинное объяснение о репликации MySQL: http://dev.mysql.com/doc/refman/5.1/en/replication.html

Инструкции по настройке репликации: http://dev.mysql.com/doc/refman/5.1/ru/replication-howto.html


Janne: У вас есть URL, который показывает, как это сделать? Так как это мой первый раз, я бы предпочел использовать набор инструкций, которые были «опробованы и проверены», вместо того, чтобы пытаться что-то собрать вместе. Поскольку успешное резервное копирование / восстановление очень важно.
Morpheous

Morpheous: Конечно. Я надеюсь, что собственная документация MySQL достаточно "опробована и протестирована". Я отредактировал мой предыдущий ответ.
Янне Пиккарайнен,

1

Я согласен с Джанной, использование репликации - это обычный способ сделать что-то. Но вы можете просто использовать MySqlDump. Вам не нужно выключать БД для этого. Это будет просто немного безразлично некоторое время. Зависит от того, какое приложение и сколько у вас данных.

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html


Для редактирования требуется изменить 6 символов ... Я думаю, что MySqlDumb действительно должен быть правильно написан на MySqlDump, потому что это довольно плохая опечатка;)
Дядя Иро

0

Я использую модифицированную версию скрипта, найденную здесь:

http://bash.cyberciti.biz/backup/backup-mysql-database-server-2/

(Я просто удалил некоторые строки, которые создают и устанавливают разрешения для каталогов резервного копирования)

Это работает довольно хорошо для меня на живом веб-сервере Ubuntu


0

Вам не нужно выключать базу данных для использования MySQL Dump. Это скрипт, который я использую в Windows

@echo Dumping data...

"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump.exe" --add-drop-table=true -h localhost -u root -ppassword mydatabase table1 table2 table3 1> %1

Если вы хотите запустить это напрямую, просто используйте

mysqldump.exe" --add-drop-table=true -h localhost -u root -p mydatabase table1 table2 table3 > datadump.sql

И собирается попросить пароль. В этом примере я просто создаю резервные копии некоторых тальбов (от 1 до 3), но вы можете сделать резервную копию всего. Есть много разных вариантов. Для восстановления командный файл:

@echo Loading Data...
@"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe" -u root -ppasword  -h localhost mydatabase 0< %1

Или просто

mysql.exe" -u root -p -h localhost mydatabase < datadump.sql
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.