Резервное копирование 1С
Тема сегодняшней статьи как и какими программами настроить резервное копирование баз 1С наиболее эффективно
Базы 1С в SQL, как настроить резервное копирование
Решение для бэкапа баз 1С в SQL (MS SQL или PostreSQL), а так же автономного сервера 1С
Есть один нюанс, который превращает резервное копирования 1С в нетривиальную задачу, если кто-то из пользователей работает в базе, копирование невозможно. Мои пользователи работают круглосуточно, а значит кто-то всегда работает с базой. Для резервного копирования базу надо заблокировать для изменений, а этого не сделать, пока кто-то работает в 1С.
Выход есть — воспользоваться специальным инструментом встроенным в 1С и им сделать выгрузку базы.
Для этого нам понадобится утилита из комплекта автономного сервера 1С ibcmd.exe.
Исполняемый файл входит в состав дистрибутива 1С. Обычно располагается C:\Program Files\1cv8\<версия платформы 1С>\bin
Скрипт бэкапа 1С для баз хранящихся SQL:
// Выгрузка dt без отключения пользователей
@echo off
//уточняем текущее время с небольшой погрешностью и округлям до часов
set tt=%time%
set /a ttt=%time:~0,2%
if %ttt% lss 10 (set hour=0%ttt%) else (set hour=%ttt%)
//создаем папку — имя текущая дата
mkdir E:\1Cbakup\base1\%date%
C:\<здесь пусть к файлу>ibcmd.exe infobase —dbms=mssqlserver —db-server=localhost —db-name=example_base —db-user=adm —db-pwd=12345678 dump D:\backup\%date%\example_base_%date%_%hour%.dt
После выполнения скрипта мы получим в папке с текущей датой файл с именем backup_текущая дата_время запуска скрипта.dt
Файл является копией базы 1С, без документов, которые были изменены в момент запуска скрипта. Т.е., если кто-то создал документ и его редактировал в момент запуска скрипта, этот документ сохранен не будет. На мой взгляд это малая плата за возможность иметь полную копию базы.
Пробежимся по ключам запуска ibcmd.exe подробнее
—dbms=mssqlserver — тип сервера SQL (в нашем примере MS SQL Server), если у Вас PostgreSQL, укажите postgresql
—db-server=localhost — адрес севера, в нашем примере скрипт выполняется на сервере с базой, поэтому localhost. Если вы выполняете скрипт на другом сервере или локальной рабочей базе, надо указать IP адрес сервера SQL.
—db-name= имя базы данных, в нашем примере это example_base, Вам надо указать имя своей базы.
—db-user=<имя пользователя с правами администратора базы>
dump D:\backup\%date%\example_base_%date%_%hour%.dt — замените путь, куда вы хотите складывать дамп баз.
ВАЖНОЕ ЗАМЕЧАНИЕ ПО БЕЗОПАСНОСТИ РЕЗЕРВНОГО КОПИРОВАНИЯ
Хранение бэкапа в папке доступной с самого копируемого сервера не безопасно. В случае заражения вирусом вида шифровальщик или иных деструктивных действий по отношению к данным на сервере, есть большой шанс потери резервной копии данных. Рекомендуется использовать доступную папку только для промежуточного бэкапа с дальнейшим переносом данных в другое место.
Если настройка системы резервного копирования с переносом данных на внешнее хранилище по каким-либо причинам Вам недоступна, не используйте для файла дампа базы 1С расширение .dt, замените его на любое другое, к примеру на .tti Шифровальщики ищут файлы с известными расширениями, чтобы их зашифровать.
Сторонние программы для резервного копирования 1С
Рассмотрим программу Effector Saver
Программа удобна, легко настраивается, позволяет делать копии баз 1С на FTP и SFTP, что решает проблему безопасности хранения бэкапа.
Подробнее как настроить работу программы можно найти на сайте производителя в разделе документации.
Я остановлюсь только на том важном моменте, что файловые базы 1С не позволяют сделать копию базы без завершения сеансов пользователей.
В программу встроен механизм завершения сеансов, для копирования файловых баз 1С, его надо обязательно настроить.
В большинстве случаев двух этих решений достаточно для организации резервного копирования баз данных 1С.
Нет времени возиться с настройкой резервного копирования 1С?
Аренда готового сервера для удаленной работы — решение.
Возможно Вам будет интересно: тонкие настройки сервера MS SQL для 1С:Предприятие и как убрать 100% нагрузку на процессор после переноса баз 1С на новый SQL сервер