solomenikm 02.02.2010 19:39
How-to`s — Backup баз mysql с помощью mysqlhotcopy
Задался целью сделать backup баз на локальный компьютер с помощью mysqlhotcopy, но вот беда - mysqlhotcopy не может копировать их на удаленную машину. Решил проблему скриптом.Для всего этого нам понадобяться две программы sshpass и rsync. Установка на убунту sudo aptitude install sshpass rsync
А вот собсвенно сам скрипт:
Буду очень признателен за коментарии и дополнения относительно этого скрипта, т.к. Backup - наше все :)
P.S. ВАЖНО!!! Не делайте так если у вас базы innodb
cppmm 02.02.2010 20:49 #
+ 1 -
Надо будет запомнить. Удобный ход. А то на работе использую bakula, а дома руками бекапил, потому как разворачивать там bakula накладно. :)
Вы могли бы рассказать, каким образом делать бэкап, скажем, "простым копированием". Смысл в чем, у меня есть БД mysql, вот надо все базы "затарить" да перелить на другой жесткий диск. Каким образом это сделать без всяких сторонних инструментов.
ЗЫ: и да, у меня не продакшен, а так, дома. Так что никакие дополнительные инструменты ставить не хочу.
ЗЫ: и да, у меня не продакшен, а так, дома. Так что никакие дополнительные инструменты ставить не хочу.
Если вам нет нужды это все делать по ssh, то можно это сделать выполнив следующую команду: mysqlhotcopy --user=db_user --password=db_pass db_1 db_2 db_3 /var/backup/mysql после чего скопировать ее содержимое и кинуть куда следует на другой машине (/var/lib/mysql). Можно и тупо скопировать все файлы из /var/lib/mysql одной машины на другую, черевато глюками, что делать в случаи отказа базы при таком методе переноса я написал в своей статье тут: http://welinux.ru/post/2173/, по большому счету нужно тупо переустановить mysql-server.
# mysqldump -u root -p > dumpfile.sql
Enter password:
# bzip2 dumpfile.sql
# scp dumpfile.sql.bz2 login@backuphost:/path/to/backupdir/dumpfile_ddmmccyy.sql.bz2
Password:
Вот, примерно так. Это ручками.
Enter password:
# bzip2 dumpfile.sql
# scp dumpfile.sql.bz2 login@backuphost:/path/to/backupdir/dumpfile_ddmmccyy.sql.bz2
Password:
Вот, примерно так. Это ручками.
А пароль все время запрашивает? Или его можно ввести сразу, чтобы тогда можно было бы в крон повесить это все.
Чтобы не спрашивало, надо указывать ту базу, которую надо букапить. Например:
# mysqldump -u root --password=password databasename > dumpfile.sql
# mysqldump -u root --password=password databasename > dumpfile.sql
Да, я в пост уже дописал, но повторюсь, что мой способ копирования не годен для innodb.
А по каким причинам он для innodb не подходит и каким образом тогда innodb копировать можно?
Задача у меня состоит в поддерживании актуальной резервной копии базы на другом сервере (раз в сутки синхронизировать), но полностью все данные гонять не хочется между серверами, хотелось бы только изменения гонять чтобы трафик экономить.
Но базы есть как myisam так и innodb.
Задача у меня состоит в поддерживании актуальной резервной копии базы на другом сервере (раз в сутки синхронизировать), но полностью все данные гонять не хочется между серверами, хотелось бы только изменения гонять чтобы трафик экономить.
Но базы есть как myisam так и innodb.