Назад | Перейти на главную страницу

Еженедельное автоматическое восстановление файла dump.sql на другой сервер

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

Можно ли настроить код, который восстанавливает самый новый файл для каждой базы данных один раз в месяц?

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

По сути, я бы сделал напишите сценарий bash который запускается один раз в день / неделю / месяц.

Вот логика (что бы я сделал)

Внутри каталога, в котором находятся резервные копии, вы можете получить последнюю версию каждой резервной копии, которую вы хотите, отредактировав UNIQUEPARTHERE

ls -lthr | grep UNIQUEPARTHERE | tail -1 | cut -f9 -d ' '

Например:

$FILE = ls -lthr | grep DATABASE_BACKUP1 | tail -1 | cut -f9 -d ' '

Приведенная выше команда покажет последнюю резервную копию любого файла, который содержит DATABASE_BACKUP1 в имени файла.

После этого нужно просто запустить команду mysql на сервере удаления:

mysql --user=mysql_username --password=your_password remote_database_name < $FILE --host=IP_OF_REMOTE_SERVER_GOES_HERE

Конечно, это приблизительное представление о том, как я бы справился с этим, исходя из предположений, что вы используете bash, а резервная копия создается с помощью mysqldump;)

Удачи :)

Можешь попробовать SQLyog's SQL Scheduler и Reporting Tool, который позволяет вам планировать выполнение запроса (ов). Оно имеет Агент по вакансиям который позволяет вам создавать, форматировать и отправлять персонализированные письма с результатами, возвращаемыми по запросу. Вы можете указать внешний файл (dump.sql в вашем случае) или ввести запрос (ы), который вы хотите выполнить с помощью этого инструмента. Есть вариант Сохранить и запланировать задание с помощью планировщика Windows если вам нужно, чтобы задание запускалось автоматически по определенному расписанию.

Если вы используете unix / linux:

Вы могли бы использовать CRON для выполнения запланированного задания (каждую неделю в вашем случае)

Затем используйте командная строка mysql в вашем сценарии, который CRON использует для импорта базы данных на другой сервер.

Чтобы определить самый новый файл

файл bash - хорошая идея

Другой способ - сделать резервную копию в определенный каталог. Экспорт базы данных:

mysql> mysqldump -h имя хоста -u имя пользователя -p имя_базы_данных> backup_db.sql

Я помещаю его в каталог своего веб-сервера, и к нему можно получить доступ как http: //xxxxx/backup_db.sql

На другой сервер

Просто используйте wget http: //xxxxx/backup_db.sql и импортировать в db через

mysql> источник /home/om/Download/dbname.sql

Вы можете автоматизировать весь процесс в crontab