Какую командную строку я могу использовать для резервного копирования базы данных MySql каждую неделю в имя файла с датой (чтобы оно не противоречило предыдущим резервным копиям)?
Кроме того, является ли это разумной стратегией резервного копирования? Моя база данных относительно небольшая (полный экспорт сейчас составляет всего 3,2 мегабайта). Уровень оттока относительно низкий. Мне нужно вернуть полную БД, если что-то пойдет не так. И было бы очень круто, если бы я мог видеть изменения, происходящие за определенный промежуток времени.
3 ответа
Еженедельное резервное копирование с помощью cron и mysqldump:
Благодарим @timdev answer (+1) за предоставление командной строки.
Синтаксис cron выглядит следующим образом:
* * * * * = [minute] [hour] [day of month] [month] [day of week]
Однако, поскольку вам нужно еженедельное резервное копирование, вы можете указать дни, в которые будет выполняться резервное копирование, при третьем запуске (день месяца), чтобы смоделировать недельный интервал.
0 4 1,8,15,21,28 * * DATE=`date +%y-%m-%d`; mysqldump -u <dbuser> -p<dbpasswd> <dbname> | gzip > dbname-$DATE.sql.gz
Это будет запускаться в 4:00 утра 1, 8, 15, 21 и 28 числа каждого месяца.
Вы можете попробовать что-то вроде этого:
0 4 1 * * DATE=`date +%y-%m-%d`; mysqldump -u <dbuser> -p<dbpasswd> <dbname> | gzip > dbname-$DATE.sql.gz
Которая будет выгружать вашу базу данных (и архивировать ее) первого числа каждого месяца в 4:00 утра.
Вы можете попробовать репликацию MySQL
Репликация позволяет реплицировать данные с одного сервера базы данных MySQL (главного) на один или несколько серверов баз данных MySQL (подчиненные). Репликация является асинхронной - ведомые устройства не должны быть постоянно подключены для получения обновлений от ведущего устройства. Это означает, что обновления могут происходить по междугородним соединениям и даже по временным или прерывистым соединениям, таким как служба удаленного доступа.
Таким образом, если что-то пойдет не так с вашей первичной базой данных (главной), подчиненное устройство может служить готовой заменой.
Похожие вопросы
Новые вопросы
mysql
MySQL — это бесплатная система управления реляционными базами данных (RDBMS) с открытым исходным кодом, которая использует язык структурированных запросов (SQL). НЕ ИСПОЛЬЗУЙТЕ этот тег для других БД, таких как SQL Server, SQLite и т. д. Это разные БД, которые используют свои собственные диалекты SQL для управления данными. В вопросе всегда указывайте точную версию сервера. Версии 5.x сильно отличаются по своим возможностям от версий 8+.