Резервна копія бази даних
Ищете качественную одежду для своего ребенка? Интернет магазин детская одежда Тико - Маркетинг всегда открыт для Вас.
Мабуть, вже всі чули про пожежу в дата-центрі компанії hosting.ua. Ця подія стала черговим поштовхом для того щоб всі масово почали робити бекапи своїх сайтів/БД.
Ось 4 простих сценарії для резервного копіювання БД з використанням утиліти mysqldump
Варіант 1. Резервне копіювання всіх БД.
- <p style="margin-left: 0px">#! /bin/sh
- set -e
- MYSQL_USER=user
- MYSQL_PASS=pass
- MAIL_TO=my@email.com
- cd /tmp
- (mysqldump -u$MYSQL_USER -p$MYSQL_PASS --all-databases | gzip -9 - > dump.sql.gz) &&
- (echo | mutt -a dump.sql.gz -s "[DB BACKUP]" $MAIL_TO)
- rm -f dump.sql.gz<p style="margin-left: 0px">
Замість gzip можна взяти bzip2 чи просто zip.
Варіант 2. Резервне копіювання окремих БД в один файл.
- <p style="margin-left: 0px">#! /bin/sh
- set -e
- MYSQL_USER=user
- MYSQL_PASS=pass
- DATABASES="db1 db2 db3"
- MAIL_TO=my@email.com
- cd /tmp
- (mysqldump -u$MYSQL_USER -p$MYSQL_PASS --databases $DATABASES | gzip -9 - > dump.sql.gz) &&
- (echo | mutt -a dump.sql.gz -s "[DB BACKUP]" $MAIL_TO)
- rm -f dump.sql.gz<p style="margin-left: 0px">
Пошта часто має обмеження на максимальний розмір вкладення. Тому, якщо БД дуже великі, ці два варіанти не працюватимуть.
Варіант 3. Резервне копіювання всіх БД (кожна в окремий файл).
- <p style="margin-left: 0px">#! /bin/sh<p style="margin-left: 0px">set -e
- MYSQL_USER=user
- MYSQL_PASS=pass
- MAIL_TO=my@email.com
- cd /tmp
- for db in `mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
- (mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz) &&
- (echo | mutt -a {$db}.sql.gz -s "[DB BACKUP] {$db}" $MAIL_TO)
- rm -f ${db}.sql.gz
- done<p style="margin-left: 0px">
Варіант 4. Резервне копіювання окремих БД (кожна в окремий файл).
- <p style="margin-left: 0px">! /bin/sh
- set -e
- MYSQL_USER=user
- MYSQL_PASS=pass
- DATABASES="db1 db2 db3"
- MAIL_TO=my@email.com
- cd /tmp
- for db in $DATABASES; do
- (mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz) &&
- (echo | mutt -a {$db}.sql.gz -s "[DB BACKUP] {$db}" $MAIL_TO)
- rm -f ${db}.sql.gz
- done<p style="margin-left: 0px">
Для багатьох CMS є спеціальні плагіни які роблять бекап БД і відправляються їх на пошту!
А ви зробили вже резервну копію?
Вот спасибо! Хоть не новенькое, но меня реально выручил Я не оч шарю, поэтому раскидать бекап сразу по разным файлам проблематично было. и еще скажу отсебя - не держите несколько сайтов на одном акке, будут проблемы