У меня MySQL 5 установлен на сервере Ubuntu. Я хочу сделать резервную копию базы данных для:
и сохраните эти резервные копии на другом сервере. Я предпочитаю, чтобы инструмент работал на том же сервере, на котором размещена база данных, и хранить эти файлы на удаленном сервере, используя, например, доступ по FTP.
У меня установлена cPanel, но я не уверен, что инструменты, которые предлагает cPanel, рекомендуются, кроме того, они не позволяют мне автоматически копировать файлы резервных копий на другой сервер.
Команды mysqldump или mysqlhotcopy не удовлетворяют потребности в копировании на другой сервер.
Какой инструмент рекомендуется? Любой комментарий будет оценен. Я проверил ответы других людей на похожие вопросы, они старые или неполные.
Вот как я делаю резервную копию:
#!/bin/bash
############# Backup script for mysql databases
###########
#############
PATH=/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/bin
export DB_BACKUP="/home/backups/daily"
export DB_USER="root"
export DB_PASSWD="your-some-password"
rm -rf $DB_BACKUP/07
mv $DB_BACKUP/06 $DB_BACKUP/07
mv $DB_BACKUP/05 $DB_BACKUP/06
mv $DB_BACKUP/04 $DB_BACKUP/05
mv $DB_BACKUP/03 $DB_BACKUP/04
mv $DB_BACKUP/02 $DB_BACKUP/03
mv $DB_BACKUP/01 $DB_BACKUP/02
mkdir $DB_BACKUP/01
mysqldump --user=$DB_USER --password=$DB_PASSWD [db_name] > $DB_BACKUP/01/[db_name]-`date +%Y-%m-%d`.sql
######################## RESTORE ###############################
######################## Example:###############################
#
# mysql -u root -p[root_password] [database_name] < dumpfilename.sql
exit 0
Скрипт вызывается каждый раз в день, каждую полночь, поэтому у вас есть резервная копия на 7 дней назад. После этого я лично установил backuppc на другом сервере, который выполняет резервное копирование сброшенных файлов через rsync.
Если вам не нужен backuppc, вы можете создать другой сценарий, который запустится после завершения первого и просто скопирует созданные файлы в другое место. (если вам нужен пример этого сценария, просто скажите, каким способом вы можете предоставить - ssh, rsync, scp или (я не предпочитаю) - FTP
Самый простой способ, который я мог придумать, - это сделать что-то вроде следующего mysqldump [mysqldump options] | gzip -c | ssh user @ remotehost "кошка>
если это не удовлетворяет вашу потребность, попробуйте объяснить, почему
Я очень рекомендую AutoMySQLBackup для ваших целей. Он покрывает ваши требования с некоторыми дополнительными функциями. Однако при удаленном резервном копировании проект предусматривает запуск инструмента на сервере резервного копирования и прямое чтение удаленной базы данных. Так что FTP и т. Д. Не требуется.
Немного не хватает хорошей документации, но зато очень просто в использовании. AutoMySQLBackup дополнительно доступен в репозиториях Ubuntu.
Радоваться, веселиться :)