Еще раз о резервном копировании

Как то когда в очередной раз что-то произошло — я озаботился усовершенствованием системы резервного копирования. Хотелось сделать так чтобы все работало на полном автомате: архивировалось, удалялись старые копии архивов (диски не резиновые), чтобы по почте присылались уведомления, когда что-то пошло не так.

 

Как то когда в очередной раз что-то произошло — я озаботился усовершенствованием системы резервного копирования. Хотелось сделать так чтобы все работало на полном автомате: архивировалось, удалялись старые копии архивов (диски не резиновые), чтобы по почте присылались уведомления, когда что-то пошло не так. Так же не хотелось использовать что-то нелицензионное и именно по-этому отпал rar.

Имеющаяся у меня система несколько шире описанной. Лично я стараюсь чтобы работало так: все живет на рабочих серверах (базы), копия делается или на выделенный сервер или перекрестно (с одного сервера на другой) и выжимка (в данном случае полные архивы) сбрасывается на внешний диск. Информация хранится в 3 (!трех) независимых местах и шанс потери невелик. Я бы еще раскидал это все территориально, но … Вот такая вот паранойя J

 

Данная система предназначена для ежедневного резервного копирования. Подходит для фирм имеющих выделенный сервер, который не выключается на ночь. Может использоваться для 1С 7.7 файловый вариант, различных клиент-банков, относительно небольших файлопомоек и чего-то похожего. Для простоты будет рассматриваться архивация баз 1c, но под базой можно понимать каталог с любым содержимым. Все рассчитано на несколько баз. Если у вас одна база, то не стоит и огород городить – все можно делать руками.

 

Используемые понятия:

 

Путь к базе – место где она расположена относительно компьютера на котором запускается резервное копирование (e:1cdb1 или \server11cзуп)

Имя базы (префикс) – содержательное имя базы, которое будет использовано в системе резервного копирования (7-buh-firma1, zik-firma2 и т.д.).

Каталог резервного копирования – каталог в который будут складываться все архивы.

В каталоге архивов создаются подкаталоги с именами — префиксами баз. В каждом подкаталоге должен присутствовать файл Префикс.flg – флаг наличия каталога и его готовности к копировании. Файл пустой – нулевой длины. Обязательно каталог резервного копирования должен быть на другом физическом диске сервера, еще лучше – на другом сервере, иначе теряется 90% смысла резервного копирования!!!

 

Технология работы:

 

Периодически (у меня раз в неделю в ночь с субботы на воскресенье) делается полный архив. Во все остальные дни делается разностный архив. Если изменений не много, то полные архивы можно делать реже. Если по какой-то причине полный архив вовремя не был создан, то разностные будут делаться относительно предыдущего.

 

При запуске резервного копирования, создается лог работы и этот лог пересылается администратору. В теме письма присутствует OK или ERROR, т.е. анализировать можно только письма с ошибками, все остальные существуют чисто для информации (у меня скидываются в отдельную папку и помечаются как прочитанные – соответственно  не привлекают внимания, но всегда можно посмотреть, что там и как произошло). Программка отправки почты простенькая и если связи нет, то и почта не дойдет, повторная отправка не предусмотрена, но сам лог все равно сохранится. Настройки отправки почты в основном скрипте – надо поправить ручками

 

Файлы системы хранятся в отдельном каталоге (мне кажется, что так удобнее). В нем присутствует подкаталог Daily.log куда складываются ежедневные логи для каждой базы. Имя логфайла состоит из префикса архива и даты, т.е. если архивация запускается в течении суток несколько раз (например при отладке), то лог будет дописываться.

 

Пример:

\server11cбаза1 — путь к базе

7-BUH – префикс базы(какое-то удобное и понятное обозначение)

\server2ackup — каталог для архивов

\server2ackup7-BUH — каталог, в который складываются архивы базы. В данном каталоге должен присутствовать файл 7-buh.flg

 

Скрипт считает количество полных архивов и слишком старые удаляет вместе со всем комплектом соответствующих разностных.

Я еще копирую полные архивы в специальный каталог (внешний диск), который чищу уже руками, в нем хранится архив за неопределенно долгое время.

 

Состав системы.

 

Файлы системы резервного копирования:

backup_f.vbs  — скрипт, который осуществляет запуск архиватора.

rc-full.cmd  — командный файл полного резервирования

rc-diff.cmd  — командный файл разностного резервирования

exclude-1c.txt – файл исключений

 

Необходимые файлы из дистрибутива 7zip:

7-zip.dll    

7z.dll       

7z.exe       

 

Программка, отправляющая протокол на почту админу:

blat.dll     

blat.exe     

blat.lib     

 

Пример командной строки из rc-diff.cmd  :

backup_f.vbs diff 7-BUH 6 \server1case1 e:ackup1c  exclude-1c.txt

 

возможен последовательный запуск заданий (см выше) либо параллельный:

start /low backup_f.vbs full 7-BUH 6 \server1case1 e:ackup1c  exclude-1c.txt

 

1. Вид архивации – full или diff, т.е. полная или разностная

2. Префикс архива

3. Количество архивов — количество полных архивов

4. Путь к базе

5. Путь к каталогу для архивов

6. Файл исключений – файлы не включаемые в архив.

 

PS Скрипт найден на просторах интернета, автор указан в начале в комментариях.

Программа отправки почты найдена там же, авторов можно узнать, запустив ее без параметров.

7zip – известный архиватор.

Все ПО свободное.

 

PPS Естественно предполагается что вы обладаете минимальной квалификацией и не будете сразу все прописывать на реальных базах. Это не на 100% готовая система, а «рыба» для индивидуальной настройки.

8 Comments

  1. iov
  2. Gilev.Vyacheslav

    — Говоришь, говоришь им… Делайте бэкапы! Ре-гу-ляр-но де-лай-те бэк-апы… — бормотала уборщица, энергично работая шваброй в серверной.

    Reply ↓
  3. mikmike

    (1) iov, Посмотрел. Спасибо за ссылку — интересное решение. Но мне кажется, что это скорее для рынка SOHO. Какого-то существенного выигрыша по сравнению со своим решением не увидел.

    Reply ↓
  4. mikmike

    (2) Gilev.Vyacheslav, шутки шутками, но если сильно интересно, то могу прислать фото выгоревшей до тла серверной. Печальное зрелище.

    Reply ↓
  5. iov

    (3)Это для расширения инструментария.

    Reply ↓
  6. нормальный такой

    (4) хехе 🙂 и такое бывает…

    тут на инфостарте была статейка, там вообще здание ураган разрушил )

    Reply ↓
  7. DAnry

    Пока гром не грянет, мужик не перекрестится

    Reply ↓
  8. alxarz

    в бесплатном варианте — http://efsaver.ru/edition.html

    дешево и сердито…

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *