Базы 1С в SQL, настройка резервного копирования

Резервное копирование 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С в effector saver

В большинстве случаев двух этих решений достаточно для организации резервного копирования баз данных 1С.

 

Нет времени возиться с настройкой резервного копирования 1С?
Аренда готового сервера для удаленной работы — решение.

Выделенные сервера с 1с в России и Европе по низким ценам

Возможно Вам будет интересно: тонкие настройки сервера MS SQL для 1С:Предприятие и как убрать 100% нагрузку на процессор после переноса баз 1С на новый SQL сервер