Резервное копирование

Материал из Школьный портал: справочника
Перейти к: навигация, поиск

Организация ежедневного резервного копирования баз данных со сжатием и чисткой копий старше 30 дней.

Полный общий рецепт, он же рецепт для Ubuntu

# подготовка (делается один раз)
sudo bash
mkdir -p /home/db-backups
chmod 755 /home/db-backups
chown root:root /home/db-backups
apt-get -y --force-yes install p7zip-full

# разовое выполнение резервного копирования делается так:
/usr/bin/7z a -mx5 /home/db-backups/gdb-$(date +%F).7z /opt/xxi/data/

Занесение в расписание: откройте файл /etc/crontab и допишите туда:

# ----------------------------------------
# SP Database Backup
# ----------------------------------------
0 0 * * * root  /usr/bin/7z a -mx5 /home/db-backups/gdb-$(date +\%F).7z /opt/xxi/data/
0 0 * * * root  /usr/bin/find /home/db-backups -name "*.7z"  -mtime +30 -exec rm -f {} \;

Отличия в Mandriva

Отличается командой установки 7-Zip:

urpmi p7zip

и именем исполняемого файла 7-Zip: не 7z, а 7za.

Отличие в ALT Linux

Отличается от Ubuntu командой установки 7-Zip:

apt-get install p7zip

Если нет 7-Zip

Можете использовать tar:

tar -czf /home/db-backups/gdb-$(date +\%F).tar.gz /opt/xxi/data/

Команда в crontab для очистки архивов старше 30 дней будет выглядеть иначе:

0 0 * * * root  /usr/bin/find /home/db-backups -name "*.gz" -mtime +20 -exec rm -f {} \;

Суть изменения в том, что удаляются не файлы *.7z, а *.gz

Результат

Каждые сутки в полночь будут создаваться резервные копии баз портала. Они будут складываться в папку /home/db-backups, доступную только для пользователю root. Копии старше 30 дней будут удаляться автоматически.

Если на сервере более чем один винчествер, не допускайте, чтобы базы и их копии лежали на одном и том же физическом диске.