У меня есть веб-сайт ЛАМПЫ с mysql бэкендом с механизмом InnoDb для таблиц
Я хотел бы смочь использовать mysqldump для взятия периодических дампов базы данных - не имея необходимость останавливать mysql сервер (т.е. закрывая веб-сайт) на время резервного копирования.
Я удивлен, что не могу найти эту информацию нигде - даже в документации MySQL. Большое упоминание сделано о mysqlhotcopy, но который только работает на таблицы IMSAM - и не представляет поэтому интерес для меня.
Кто-либо знает если (как?) Я могу использовать mysqldump для взятия копии/дампа базы данных, которая все еще используется?.
Ссылка на официальную документацию была бы очень полезна, так как я хочу удостовериться, что я получаю это абсолютно правильное.
Я работаю на Ubuntu 10.0.4 LTS
Обычный способ сделать это должно установить ведомый экземпляр MySQL и взять резервное копирование оттуда. Вам не обязательно нужен отдельный физический сервер для ведомого MySQL, нормально совершенно выполнять его на том же сервере (если у Вас есть дисковое пространство и некоторая память для него; со стороны ЦП вещей главным образом неактивное ведомое устройство MySQL не причинило бы много вреда).
Править:: Добавленный официальные ссылки на документ репликации MySQL.
Долгое объяснение о репликации MySQL: http://dev.mysql.com/doc/refman/5.1/en/replication.html
Практическое руководство установки репликации: http://dev.mysql.com/doc/refman/5.1/en/replication-howto.html
Я соглашаюсь с Janne, использование репликации является обычным способом сделать вещи. Но Вы могли просто использовать MySqlDump. Вы не должны выключать DB для этого. Это просто будет немного безразлично некоторое время. Зависит, какое приложение и сколько данных Вы имеете.
Я использую измененную версию сценария, найденного здесь:
http://bash.cyberciti.biz/backup/backup-mysql-database-server-2/
(Я просто удалил некоторые строки, которые создают и устанавливают полномочия на резервных каталогах),
Это работает вполне прилично на меня на живом веб-сервере человечности
Вы не должны завершать работу, база данных для использования MySQL Dump This является сценарием, который я использую в 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