Резервное копирование MySQL из терминала

Я запланировал задание cron для резервного копирования баз данных mysql в ubuntu9.10. Я использовал следующие записи в файле cron.

37 4 * * * root /usr/bin/mysqldump -u root -p<mysql-password> --all-databases > /usr/backup/mysqlbkup/all-databases.sql

Резервное копирование всех баз данных помещается в один файл, называемый all-database.sql. Это то, что я хотел. Но если я хочу восстановить одну базу данных, мне придется восстановить все базы данных. Есть ли хитрость для резервного копирования всех баз данных mysql в каталог с индивидуальным именем?

6
задан 14 October 2010 в 16:34

2 ответа

Я предлагаю вам прочитать: http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

. Вы можете создавать дамп различных баз данных с помощью: mysqldump [ options] --databases DB1 [DB2 DB3 ...]

Просто добавьте cronjob для каждой базы данных:

37 4 * * * root /usr/bin/mysqldump -u root -p<mysql-password> --databases database1 > /usr/backup/mysqlbkup/databases1.sql
38 4 * * * root /usr/bin/mysqldump -u root -p<mysql-password> --databases database2  database3 > /usr/backup/mysqlbkup/databases2_3.sql

Конечно, вы можете создать один сценарий bash для всех разных баз данных. и запустите этот скрипт из crontab. Кроме того, я бы распаковал это.

Гудлак

0
ответ дан 14 October 2010 в 16:34

Да, есть.

Для тех, кто имеет несколько баз данных, скажем, 50 - 100, ввод его один за другим будет болезненным занятием

Вам нужно будет создать файл bash / shell, то есть файл с расширением «.sh», после чего вы сделаете его исполняемым, изменив его мод

chmod 777 <file_name>.sh

, затем введите свой код выше с этими несколькими изменениями;

что мы делаем здесь, это запрос mysql для списка базы данных ( s) и помещая вывод в цикл для каждого хода

database=`mysql --user=<enter username> --password=<enter password> -e "SHOW DATABASES"`
for db in $database; do
    echo "$db"
    mysqldump --user="<enter username>" --password="<enter password>" --databases "$db" > <path_to_store_your_database>/"$db".sql
    gzip "$db"
done

Наконец, вы добавите файл в crontab и составите расписание резервного копирования. Вы также можете запустить команду вручную, набрав:

bash <name of the file>.sh

или

sh <name of the file>.sh
0
ответ дан 14 October 2010 в 16:34

Другие вопросы по тегам:

Похожие вопросы: