Резервное копирование — различия между версиями
м (→Полный общий рецепт, он же рецепт для Ubuntu) |
|||
Строка 15: | Строка 15: | ||
</pre> | </pre> | ||
− | Занесение в расписание: откройте файл /etc/crontab | + | Занесение в расписание: откройте файл |
+ | <pre>/etc/crontab</re> | ||
и допишите туда: | и допишите туда: | ||
<pre> | <pre> |
Версия 13:36, 26 декабря 2012
Организация ежедневного резервного копирования баз данных со сжатием и чисткой копий старше 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</re> и допишите туда: <pre> # ---------------------------------------- # 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 +30 -exec rm -f {} \;
Суть изменения в том, что удаляются не файлы *.7z, а *.gz
Результат
Каждые сутки в полночь будут создаваться резервные копии баз портала. Они будут складываться в папку /home/db-backups, доступную только для пользователю root. Копии старше 30 дней будут удаляться автоматически.
Если на сервере более чем один винчествер, не допускайте, чтобы базы и их копии лежали на одном и том же физическом диске, потому что если один диск из двух окажется нерабочим, у вас больше шансов.
Если у вас на диске более чем один раздел (не считая swap), лучше разделить базы и резервные копии по разделам, потому что если файловая система рухнет только на одном разделе, у вас останется второй раздел с живой базой.
Если на разделе с резервными копиями мало свободного места, а автоматическое создание копий вы настроили только что, и не уверены, хватит ли места под месяц, можете временно уменьшить количество дней до, скажем, 7, затем через некоторое время посмотреть, что получается, и по результатам решить, какое количество дней хранить.
Не рекомендуем хранить резервные копии всего за пару дней. Представьте себе, что в базе сделаны нежелательные изменения (или произошло разрушение) в пятницу а обнаружены они были в понедельник. Одной или двух копий двух будет недостаточно. Для подобной ситуации надо как минимум три. Подумайте также про новогодние праздники или даже летние каникулы.
Точные данные о размере архивов дать невозможно, всё сильно зависит от количества информации в базе. Примеры:
- ежедневное резервирование большой базы (одного из самых первых пользователей портала, даных там за несколько лет) в количестве 30 дей занимает около 700 мегабайт.
- ежедневное резервирование небольшой базы в количестве 30 дей занимает около 160 мегабайт.