ПО является платным: 2500?.
Переход на новую версию (с 3 на 4) также является платным: 1250?.
Писал инструкцию для друга, но думаю она пригодиться и кому-то из вас.
И как всегда, в комментариях, вы научите меня чему-то новому =)
В конце инструкции приведен пример журнала, по которому хорошо видна скорость выполнения задачи.
Цель:
Автоматическое создание шифрованных бэкапов по расписанию с отчётом об ошибках на почту.
Логика бэкапов:
- Ежедневно последние 30 шт (срок хранения 1 месяц)
- Ежемесячно 1 числа последние 24 шт (срок хранения 2 года)
- Ежегодно 1 февраля последние 10 шт (срок хранения 10 лет)
- Бэкапы выгружаются в хранилище бэкапов (локальное или сетевое) из под учётки backup
- Бэкапы выгружаются в облако Goole Drive (возможно с собственным OAuth ID Client/Secret)
- Отправка отчета об ошибках на электронную почту
Небольшое пояснение
- Данная инструкция приводится как готовый пример использования, который можно и нужно адаптировать под свои задачи.
- Задания могут запускаться в одно время, т.к. поддерживается параллельное выполнение заданий, что ощутимо сокращает время для бэкапов.
- Дополнительное копирование выполняется на основе задачи, т.е. выполняется копирование последнего уже созданного бэкапа. Например, если дополнительное копирование должно быть выполнено 10 числа, а бэкап выбранной задачи от 10 числа завершился с ошибкой (а мы не стали вмешиваться), то дополнительное копирование сделает копию для последнего успешного бэкапа выбранной задачи, в нашем примере будет от 9 числа.
- В программе можно настроить выгрузку баз средствами 1С в виде .dt файлов, с автоматической блокировкой/разблокировкой базы и выкидыванием пользователей. В данной инструкции такой способ не рассматривается, как ненадежный способ резервного копирования формата .dt.
1. Установка и настройка
Устанавливаем, запускаем.
— Сервис > Параметры
- Автозагрузка
Запускать как служба Windows (сервер)
пользователь backup, пароль свой
Пояснения по пользователю backup, для чего отдельная учеткаДля бэкапов считаю важным создавать и использовать отдельную учетную запись, например backup. Это может быть как локальная так и доменовская учетка.
Доступ к хранилищу бэкапов для админов должен быть настроен для чтения, и только у учетки backup на запись. Это позволит защитить ваши бэкапы от многих опасностей (дурная голова, вирусы). А если вам понадобится внести какие-то изменения в хранилище бэкапов, то всегда можно дать себе временны доступ, или запустить любой проводник (например Total Commander) от имени учетки backup для полного доступа к хранилищу.
- Параметры агента
Разрешить параллельную работу потоковых задач: 5
Выбираем от мощности сервера и скорости канала интернет (для выгрузки в облако)
Использовать указанный каталог временных файлов:
\\NAS\Backup\Temp
Пояснения по использованию сетевого путиСетевую папку желательно разместить на компьютере с данной программой, т.е. по факту для нас это будет локальная папка (если скорость позволяет, то и любой другой сетевой путь).
Доступ к папке Temp (каталог временных файлов) должен быть:
- для backup на запись
- для учетки из под которой работает служба MS SQL Server на запись
- админам на чтение
К сожалению данная программа не сообщает о своей особенности пользователю, когда тот настраивает резервное копирование SQL баз. Она считает что SQL сервер находится на том же компьютере, что и она. Когда создается бэкап SQL базы, то серверу SQL передается путь для временной папки буквально, и SQL сервер выгружает бэкап в свою локальную временную папку. После чего не может найти бэкап в своей временной папке и вываливает ошибку.
Чтобы обойти это ограничение, мы выбираем сетевой путь для временной папки. Тогда SQL сервер будет получать сетевой путь и будет выгружать бэкап по этому адресу.
В будущих версиях разработчики обещали подумать над тем, чтобы добавить настройку для задач SQL бэкапов, в которой можно будет прописать сетевой путь для выгрузки, и не менять общий путь к временным папкам. - Параметры менеджера
Устанавливаем пароль, если к программе может получить доступ нежелательный пользователь. - Файлы архивов
Варианты окончания имени архива: yyyy.mm.dd_hh.nn.ss
Для эстетики и имя без пробелов (старая привычка) - Служебные
OAuth данные приложения в облаке — Обновить данные ClientID / ClientSecret
Тут вносить изменения не обязательно, но как всегда есть небольшое НОНедавно я получил ошибку выгрузки бэкапов в облако из-за превышения лимитов OAuth. Ошибка была только один раз, разработчики устранили эту проблему, но зачем ждать её снова. Я решил получить свой OAuth на Google Диск и забыть об этом.
Инструкция с картинками, как получить свой Client ID и Secret нашел тут: https://github.com/Cloudbox/Cloudbox/wiki/Google-Drive-API-Client-ID-and-Client-Secret
2. Подготовка
— Сервис > Управление хранилищами > Создать
- Локальная/сетевая папка:
Тут все понятно, следуя нашей логике бэкапов (в начале статьи) создаем 3 хранилища для удобства
\\NAS\Backup\EveryDay
\\NAS\Backup\EveryMonth
\\NAS\Backup\EveryYear
- Google диск:
Создаем подключение к облаку Google диск.
Название дадим по нашей логике: EveryDay
Жмем кнопку Авторизация, вводим логин/пароль, готово.
Если вы это настраиваете удаленно на сервере или чужом компьютереТо можно выполнить авторизацию альтернативным способом. Закрываем окно ввода логина и пароля — появится ошибка авторизации — жмем кнопку Пользовательский режим, далее жмем по ссылке Получить код подтверждения ссылка авторизации откроется в браузере. Ссылку копируем к себе на компьютер, авторизуемся у себя на компьютере, подтверждаем права доступа, получаем ключ, копируем его обратно в поле окна Авторизация приложения в пользовательском режиме, жмем ОК
Выбираем путь к папке в облаке, аналогично:
Backup/EveryDay
Дополнительные облачные хранилища для ежемесячных и ежегодных копий делаем через копирование (Создать > Скопировать)
В итоге получаем 3 облачных хранилища:
EveryDay (Google Диск)
EveryMonth (Google Диск)
EveryYear (Google Диск)
На этом настройка Управление хранилищами закончена.
3. Создание задач резервного копирования
3.1. Задачи > Добавить задачу > Резервное копирование файлов и баз данных (SQL)
- Основные параметры
Включить в архив бэкап базы SQL (на примере Microsoft SQL Server)
- База Microsoft SQL
Прописываем все реквизиты.
Проверяем, что на MS SQL сервере открыт TCP 1433 порт.
Жмем: Проверить
- Хранилище архивов
— Добавляем хранилище \\NAS\Backup\EveryDay
Автоматически удалять устаревшие резервные копии: 30
— Добавляем хранилище EveryDay (Google Диск)
Автоматически удалять устаревшие резервные копии: 30
- Файл архива
Имя файла архива: название базы
Окончание имени архива: yyyy.mm.dd_hh.nn.ss
Архивирование
Формат: 7z
Сжатие: без сжатия
Почему без сжатия?При резервном копировании SQL базы стоит рассмотреть 2 варианта
1. Сжатие базы средствами SQL сервера. — Быстрый, но сжимает хуже чем 7z.
Если выбрали этот вариант, то нужно:
— Выбрать: без сжатия (т.к. сжимать уже сжатый .bak файл без толку)
— В свойствах MS SQL сервера включить: Параметры базы данных > Сжимать резервные копии.
2. Сжатие базы средствами 7z — Медленный, но сжимает лучше чем SQL.
Если выбрали этот вариант, то нужно:
— Выбрать: максимальное сжатие
— В свойствах MS SQL сервера отключить: Параметры базы данных > Сжимать резервные копии.
В SQL бэкапах я использую первый вариант, хоть он и сжимает по хуже, зато выгрузка делается за считанные минуты (а то и секунды). А вот второй вариант может растянуться на часы.
В будущих версиях программы разработчики обещали подумать над тем, чтобы добавить опцию сжатия MS SQL баз в свойства задачи, чтобы не бегать в свойства MS SQL сервера.
Шифровать архивы
Шифровать имена файлов
Устанавливаем пароль (запишите его, если забудете, то бэкапы будет не восстановить)
- Расписание автозапуска:
Запускать по расписанию: включить
Ежедневно 03:00 - Прервать выполнение задачи через: включить
2 час. 0 мин.
3.2. Задачи > Добавить задачу > Резервное копирование файлов и баз данных (файл)
- Основные параметры
Включить в архив файлы
- Файлы
Путь к файлам: Выбираем путь к папке в которой лежат файловые базы 1С, например «D:\Bases»
Если хотим сделать бэкап всех баз в подкаталогах, выбираем:
Имена сохраняемых файлов, каталогов...:
1Cv8.1CD
Включить подкаталоги (рекурсивно)
Если хотим сделать бэкап выборочных баз в подкаталогах, выбираем:
Имена сохраняемых файлов, каталогов...:
Buh\1Cv8.1CD
Trade\1Cv8.1CD
- Хранилище архивов
— Добавляем хранилище \\NAS\Backup\EveryDay
Автоматически удалять устаревшие резервные копии: 30
— Добавляем хранилище EveryDay (Google Диск)
Автоматически удалять устаревшие резервные копии: 30
- Файл архива
Имя файла архива: название базы
Окончание имени архива: yyyy.mm.dd_hh.nn.ss
Архивирование
Формат: 7z
Сжатие: максимальное
Шифровать архивы
Шифровать имена файлов
Устанавливаем пароль (запишите его, если забудете, то бэкапы будет не восстановить)
- Расписание автозапуска:
Запускать по расписанию: включить
Ежедневно 03:00
- Прервать выполнение задачи через: включить
2 час. 0 мин.
Основные задачи ежедневного резервного копирования настроили, переходим к дополнительным
4. Задачи > Добавить задачу > Дополнительное копирование
- Основные параметры
Задача резервного копирования — источник: выбираем нужную задачу
Хранилище… источник: выбираем хранилище \\NAS\Backup\EveryDay
- Хранилище архивов
— Добавляем хранилище \\NAS\Backup\EveryMonth
Автоматически удалять устаревшие резервные копии: 24
— Добавляем хранилище EveryMonth (Google Диск)
Автоматически удалять устаревшие резервные копии: 24
- Файл архива
Имя файла архива: название базы
Окончание имени архива: yyyy.mm.dd_hh.nn.ss
Архивирование
Формат: 7z
Сжатие: без сжатия
Шифровать архивы
Шифровать имена файлов
Устанавливаем пароль (запишите его, если забудете, то бэкапы будет не восстановить)
- Расписание автозапуска:
Запускать по расписанию: включить
Ежемесячно. Все месяцы 1 числа.
05:00
- Прервать выполнение задачи через: включить
2 час. 0 мин.
По аналогии создаем задачу Дополнительное копирования для ежегодного плана, для быстроты копируем прошлую ежемесячную задачу и меняем в ней название, хранилище и расписание
- Хранилище архивов
— Добавляем хранилище \\NAS\Backup\EveryYear
Автоматически удалять устаревшие резервные копии: 12
— Добавляем хранилище EveryYear(Google Диск)
Автоматически удалять устаревшие резервные копии: 12
- Расписание автозапуска:
Запускать по расписанию: включить
Ежемесячно. Февраль 1 числа (год закрыт)
05:00
Дополнительные задачи резервного копирования настроили, переходим к формированию отчета на почту
5. Задачи > Добавить задачу > Отправка отчетов
- Основные параметры
Количество дней...: 1
- Выбираем все задачи, у всех выбираем фильтр записей: Записи журнала с ошибками
- Параметры почты
Заполняем реквизиты почты. Куда и с какой темой отправлять отчеты.
- Расписание автозапуска:
Запускать по расписанию: включить
Ежедневно
07:00
Осталось запустить все задачи по очереди и проверить на ошибки.
Пример журнала резервного копирования MS SQL базы весом 52Гб (mdf):
===========================================
Задача: Base1
Вид задачи: Резервное копирование файлов и баз данных
Компьютер: SRVTS0
Версия: 4.5 / 2
Запуск: По расписанию, как служба
Начало: 11.11.2019 4:01:08
Конец: 11.11.2019 5:13:57
Статус: Успешное выполнение задачи
===========================================
11.11.2019 4:01:08 - Резервное копирование MSSQL базы "Base1" ...
11.11.2019 4:01:08 - SQL Server version 11
11.11.2019 4:22:15 - Выполнено
11.11.2019 4:22:15 - Резервное копирование файлов ...
11.11.2019 4:22:15 - формат 7z, без сжатия, c шифрованием заголовка
11.11.2019 4:26:50 - 1 файлов добавлено, 0 файлов пропущено
11.11.2019 4:26:50 - Выполнено
11.11.2019 4:26:52 - Загрузка бэкапа 5,41 GB в хранилище "EveryDay (Google Диск)" ...
11.11.2019 4:26:54 - Загрузка "Base1_2019.11.11_04.26.52.7z" 5,41 GB (1 из 1)
11.11.2019 5:13:57 - Загрузка удачно завершена
11.11.2019 4:26:52 - Загрузка бэкапа 5,41 GB в хранилище "\\NAS\Backup\EveryDay" ...
11.11.2019 4:26:52 - Загрузка "Base1_2019.11.11_04.26.52.7z" 5,41 GB (1 из 1)
11.11.2019 4:28:13 - Загрузка удачно завершена
Из журнала видно, что загрузка в хранилище и в облако началась одновременно.
Бэкап в хранилище был завершен через 27 минут. А в облако был выгружен через 1 час 12 минут от старта задачи.
При условии, что параллельно в это же время выполнялось еще 4 задачи резервного копирования баз, размер которых 38Гб, 28Гб, 6Гб и 5Гб (mdf).
Все задачи были одновременно запущены в 4:00 и успешно завершены до 5:15:00.
Выводы:
Есть конечно и небольшие недоработки, кроме тех, что уже описал в статье:
- отсутствие возможности экспорта и импорта настроек и задач в виде текстового файла (именно текстового, а не mdb и т.п., чтобы можно было легко открыть и отредактировать)
- нет визуального сохранения настроек OAuth, всегда пусто и не понятно настроено или нет.
- нет возможности быстро включить/выключать задания (нужно открывать каждое и заходить в расписание). Хотя в главном окне интуитивно так и просится двойной клик по галочке.
Но в целом результат меня очень порадовал. Считаю программу очень полезной.UPD1: Добавил информацию о стоимости ПО, спасибо Filex
Напишите о своих алгоритмах бэкапов, которые возможно вас сильно выручали и могут быть полезны другим.
Комментарии (8)
vampire333
13.11.2019 18:10Какой смысл переписывать сюда функционал платной программы, если все то же самое можно сделать бесплатно скриптом на питоне, написанным за 20-40 минут?
fronik Автор
14.11.2019 08:01Не все же умеют писать на питоне.
Можно и батником сделать с помощью rsync и стандартных средств SQL.
Каждый сам выбирает что по вкусу.
UksusoFF
13.11.2019 19:32Впринципе тоже самое можно сделать и бесплатной 3 версией Effector Saver.
Нужно будет только поставить любой облачный клиент и настроить бекапы в его папку.
А вообще Яндекс активно борется с теми кто хранит бекапы у них: https://toster.ru/q/677787 и https://efsaver.ru/blog/medlennaya-zagruzka-fajlov-na-yandeks-disk.html
Не известно через сколько Гугол начнет резать скорость.
capitannemo
13.11.2019 21:23Если уж пошла речь о платных утилитах для 1С то купите Обновлятор 1С
И по цене и по функционалу уделывает Effector Saver в разы
qwertEHOK
13.11.2019 23:17Mssql сам умеет по расписанию все выполнять. И жать и шифровать и ложить куда надо. И даже восстанавливать.
А если объединить с батником бесплатным или павершелом, то вообще чудо. И прога за 2500 не нужна.
Подскажите, а это точно системное администрирование?
Filex
Еще забыли написать, что «Effector Saver» является платным ПО, стоимостью 2500 руб., и у него платные обновления при переходе на новую версию (на официальном сайте переход с версии 3 на 4 стоит 1250 руб.)
fronik Автор
Что-то я упустил этот момент. Спасибо, исправил.