Как лучше всего оптимизировать способ резервного копирования баз данных MySQL? - PullRequest
0 голосов
/ 22 июля 2011

У меня есть несколько веб-сайтов, размещенных на VPS, и в настоящее время я выполняю резервное копирование базы данных, запустив скрипт оболочки через cron, который выглядит примерно так:

mysqldump -uusername1 -prootpassword dbname1 > /backup/dbname1.bak
mysqldump -uusername2 -prootpassword dbname2 > /backup/dbname2.bak
mysqldump -uusername3 -prootpassword dbname3 > /backup/dbname3.bak

У меня есть пара опасений по поводу этого процесса.

Во-первых, я использую пароль корневого сервера для выполнения mysqldump, и файл хранится в виде обычного текста на сервере (недоступен для публичного доступа или чего-либо еще, но, очевидно, существуют проблемы, если я предоставлю другим пользователям доступна сервер по той или иной причине).Я использую root, потому что это проще, чем отслеживать всех, кто создает базу данных, и запрашивать их конкретные пароли базы данных.

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

Ответы [ 2 ]

1 голос
/ 22 июля 2011

Я использую этот скрипт: http://sourceforge.net/projects/automysqlbackup/ Работает отлично.Кроме того, вы должны добавить резервного пользователя MySQL, который имеет глобальные разрешения SELECT и LOCK TABLES.Таким образом, вам не нужны все имя пользователя и пароль /

1 голос
/ 22 июля 2011

Вы всегда можете просто сбросить ВСЕ базы данных:

mysqldump --all-databases | gzip -9 > /backup/dbs.bak.gz

Это избавит вас от необходимости отслеживать, какие существуют базы данных.Недостатком является то, что восстановление становится немного сложнее.

Что касается использования root, то нет причин, по которым вы не можете создать другую учетную запись, которая имеет разрешения для резервного копирования - вы никогда не должны использовать учетную запись root для чего-либо, кроменачальная настройка.

...