Odarchuk dot Com
Odarchuk dot Com
Блог про життя, IТ, SEO, заробіток в інтернеті та Україну

Резервна копія бази даних

30 березня 2010 р. Переглядів: 8169 RSS 1
Життєве » Робота ,

Ищете качественную одежду для своего ребенка? Интернет магазин детская одежда Тико - Маркетинг всегда открыт для Вас.

Мабуть, вже всі чули про пожежу в дата-центрі компанії hosting.ua. Ця подія стала черговим поштовхом для того щоб всі масово почали робити бекапи своїх сайтів/БД.

Ось 4 простих сценарії для резервного копіювання БД з використанням утиліти mysqldump

Варіант 1. Резервне копіювання всіх БД.

  1.  <p style="margin-left: 0px">#! /bin/sh
  2.  set -e
  3.  MYSQL_USER=user
  4.  MYSQL_PASS=pass
  5.  MAIL_TO=my@email.com
  6.  cd /tmp
  7.  (mysqldump -u$MYSQL_USER -p$MYSQL_PASS --all-databases | gzip -9 - > dump.sql.gz) &&
  8.  (echo | mutt -a dump.sql.gz -s "[DB BACKUP]" $MAIL_TO)
  9.  rm -f dump.sql.gz<p style="margin-left: 0px">

Замість gzip можна взяти bzip2 чи просто zip.

Варіант 2. Резервне копіювання окремих БД в один файл.

  1.  <p style="margin-left: 0px">#! /bin/sh
  2.  set -e
  3.  MYSQL_USER=user
  4.  MYSQL_PASS=pass
  5.  DATABASES="db1 db2 db3"
  6.  MAIL_TO=my@email.com
  7.  cd /tmp
  8.  (mysqldump -u$MYSQL_USER -p$MYSQL_PASS --databases $DATABASES | gzip -9 - > dump.sql.gz) &&
  9.  (echo | mutt -a dump.sql.gz -s "[DB BACKUP]" $MAIL_TO)
  10.  rm -f dump.sql.gz<p style="margin-left: 0px">

Пошта часто має обмеження на максимальний розмір вкладення. Тому, якщо БД дуже великі, ці два варіанти не працюватимуть.

Варіант 3. Резервне копіювання всіх БД (кожна в окремий файл).

  1.  <p style="margin-left: 0px">#! /bin/sh<p style="margin-left: 0px">set -e
  2.  MYSQL_USER=user
  3.  MYSQL_PASS=pass
  4.  MAIL_TO=my@email.com
  5.  cd /tmp
  6.  for db in `mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
  7.  (mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz) &&
  8.  (echo | mutt -a {$db}.sql.gz -s "[DB BACKUP] {$db}" $MAIL_TO)
  9.  rm -f ${db}.sql.gz
  10.  done<p style="margin-left: 0px">

Варіант 4. Резервне копіювання окремих БД (кожна в окремий файл).

  1.  <p style="margin-left: 0px">! /bin/sh
  2.  set -e
  3.  MYSQL_USER=user
  4.  MYSQL_PASS=pass
  5.  DATABASES="db1 db2 db3"
  6.  MAIL_TO=my@email.com
  7.  cd /tmp
  8.  for db in $DATABASES; do
  9.  (mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz) &&
  10.  (echo | mutt -a {$db}.sql.gz -s "[DB BACKUP] {$db}" $MAIL_TO)
  11.  rm -f ${db}.sql.gz
  12.  done<p style="margin-left: 0px">

Для багатьох CMS є спеціальні плагіни які роблять бекап БД і відправляються їх на пошту!

А ви зробили вже резервну копію?

Поділитися: twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com blogger.com liveinternet.ru livejournal.ru google.com yandex.ru del.icio.us
Коментарів: 1
  1. Вот спасибо! Хоть не новенькое, но меня реально выручил smile Я не оч шарю, поэтому раскидать бекап сразу по разным файлам проблематично было. и еще скажу отсебя - не держите несколько сайтов на одном акке, будут проблемы smile

Залиште коментар!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Коментар буде опубліковано після перевірки

Ім'я і сайт використовуються тільки при реєстрації

(обязательно)