Резервное копирование огромной таблицы MySQL с использованием PHP и cronjob - PullRequest
4 голосов
/ 18 ноября 2008

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

Проблема, с которой мы столкнулись, - это размер двух наших таблиц. У каждого из них есть 60 тыс. Полей, и они растут ежедневно. Я думаю, что инкрементное резервное копирование - лучшее решение для резервного копирования, но если когда-нибудь придет его восстановление ... Это будет огромный проект.

У меня вопрос двухсторонний:

a) Существует ли более простой способ ежедневного резервного копирования огромных таблиц и, если нет,

б) Есть ли простой способ восстановить резервную копию из ежедневных / еженедельных инкрементных резервных копий?

Спасибо!

Ответы [ 3 ]

9 голосов
/ 18 ноября 2008

Вы можете проверить Maatkit . Это куча Perl-скриптов. Одним из них является mk-parallel-dump, который порождает несколько копий mysqldump (по умолчанию по 1 на процессор в машине), позволяя дампу работать на MUCH быстрее. Вы также можете настроить это на работу cron, как предложил Дэниел.

6 голосов
/ 18 ноября 2008

Вы можете использовать задание crob для выполнения mysqldump, чтобы сбросить таблицы, которые вы хотите сделать резервную копию. Затем просто используйте дифференциальную резервную копию этого файла для ежедневного резервного копирования и делайте полное резервное копирование один раз в неделю. Тяжелую работу с резервной копией должен выполнять выбранный вами механизм резервного копирования.

Восстановление БД никогда не бывает увлекательным, поэтому независимо от того, что это будет большой проект.

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

Дайте мне знать, если это работает для вас.

0 голосов
/ 20 ноября 2008

Рассмотрите возможность использования снимков LVM для периодических снимков вашего источника данных, а затем используйте maatkit для привязанной копии, чтобы сохранить дамп SQL. Сделайте это на подчиненной базе данных MySQL, чтобы резервные копии не вызывали проблем с производительностью для вашей живой платформы.

...