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

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

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

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

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

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

4 ответа4

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

1

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .