VDSPlanet.ru Making the difference in VDS Hosting
MySQL backups с помощью mysqlhotcopy

Материал из Wiki.VDSPlanet.ru.

Перейти к: навигация, поиск

Самое главное надо заметить что mysqlhotcopy будет работать только с таблицами MyISAM или ARCHIVE.

Простота mysqlhotcopy в основном заключается в результате того что происходит простое копирование таблиц в виде файла, который в дальшейшем может быть восстановлен простоым его копированием/перемещением. Нет нужды восстанавливать структуру таблиц и переносить информацию. В добавок. если вы работаете с таблицами больших размеров то mysqlhotcopy - это ваш выбор. Для более подробной информации по mysqlhotcopy можно обратиться к следущий статье: http://dev.mysql.com/doc/refman/5.0/en/mysqlhotcopy.html

Это забэкапит избранные базы с сожмет их в gzip. Далее будет следить за результатами и сохранит в общей сложности до 4 недель backups. Все что надо сделать так это изменить три строки ниже. DBNAME это имя баз данных кторые будут сохранеты и их может быть любое количество написанное через запятую. Пример: DBNAME=mysql, mysql2 , mysql3


#!/bin/sh
DBNAME=mysql
USER=root
PASS=rootpass
if [ -x /usr/bin/mysqlhotcopy ]
then
  # Создать копию баз данных в /var/lib/_old
  mysqlhotcopy -u $USER -p $PASS $DBNAME --allowold --quiet
  # Сжать в tar temp файл
  cd /var/lib/mysql
  tar -czf /usr/backup/$DBNAME.tar.gz.temp $DBNAME/
  # Если tar temp файл создан,
  # Смотрим на предыдушие файлы -- и оставляем последние 4 недели
  if [ -s /usr/backup/$DBNAME.tar.gz.temp ]
  then
       savelog -l -q -c 4 /usr/backup/$DBNAME.tar.gz
       mv /usr/backup/$DBNAME.tar.gz.temp /usr/backup/$DBNAME.tar.gz
  fi
fi


Если вы хотите использовать данный скрипт на вашем сервере как /home/root/mysqlbackup тогда вы можете автоматизировать процесс с помошью cron job. То что ниже будет запускать данный скрипт каждый день в 4 утра, если внесено в crontab.

0 4 * * * /home/root/mysqlbackup