Как сделать из файловой базы 1с sql

Обновлено: 08.07.2024

Работать все будет в связке 1С 8.3 — MS SQL server 2016 (SP1) standard, и установим все это на Windows server 2012 R2.

Когда в 1С работает небольшое количество пользователей (обычно до 50 -70) тогда сервер 1С может работать совместно с сервером СУБД.

Конечно, данная тема также подымается и на курсе: Администратор 1С!

И так первое что нужно сделать, так это выделить сервер для работы 1С Предприятия в клиент-сервере.

Далее нужно убедиться в том, что MS SQL и Сервер 1С работает.

Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С >>>

В этой статье я хочу поделиться опытом резервного копирования файловых и SQL баз 1С в локальное, сетевое и облачное (на примере Google Drive) хранилище с помощью Effector Saver.

ПО является платным: 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.

    Автозагрузка
    Запускать как служба Windows (сервер)
    пользователь backup, пароль свой

Для бэкапов считаю важным создавать и использовать отдельную учетную запись, например backup. Это может быть как локальная так и доменовская учетка.
Доступ к хранилищу бэкапов для админов должен быть настроен для чтения, и только у учетки backup на запись. Это позволит защитить ваши бэкапы от многих опасностей (дурная голова, вирусы). А если вам понадобится внести какие-то изменения в хранилище бэкапов, то всегда можно дать себе временны доступ, или запустить любой проводник (например Total Commander) от имени учетки backup для полного доступа к хранилищу.

Сетевую папку желательно разместить на компьютере с данной программой, т.е. по факту для нас это будет локальная папка (если скорость позволяет, то и любой другой сетевой путь).
Доступ к папке Temp (каталог временных файлов) должен быть:

  1. для backup на запись
  2. для учетки из под которой работает служба MS SQL Server на запись
  3. админам на чтение

Чтобы обойти это ограничение, мы выбираем сетевой путь для временной папки. Тогда SQL сервер будет получать сетевой путь и будет выгружать бэкап по этому адресу.

В будущих версиях разработчики обещали подумать над тем, чтобы добавить настройку для задач SQL бэкапов, в которой можно будет прописать сетевой путь для выгрузки, и не менять общий путь к временным папкам.

То можно выполнить авторизацию альтернативным способом. Закрываем окно ввода логина и пароля — появится ошибка авторизации — жмем кнопку Пользовательский режим, далее жмем по ссылке Получить код подтверждения ссылка авторизации откроется в браузере. Ссылку копируем к себе на компьютер, авторизуемся у себя на компьютере, подтверждаем права доступа, получаем ключ, копируем его обратно в поле окна Авторизация приложения в пользовательском режиме, жмем ОК

Выбираем путь к папке в облаке, аналогично:
Backup/EveryDay

  • Основные параметры
    Включить в архив бэкап базы 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 сервера.

  • Основные параметры
    Задача резервного копирования — источник: выбираем нужную задачу
    Хранилище… источник: выбираем хранилище \\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
  • Основные параметры
    Количество дней. : 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, всегда пусто и не понятно настроено или нет.
  • нет возможности быстро включить/выключать задания (нужно открывать каждое и заходить в расписание). Хотя в главном окне интуитивно так и просится двойной клик по галочке.

Но в целом результат меня очень порадовал. Считаю программу очень полезной.

Напишите о своих алгоритмах бэкапов, которые возможно вас сильно выручали и могут быть полезны другим.

Сервер SSD/32Gb/2 проца по 4 ядра. Поднят RDP, то есть работают все на одном сервере.
На нём 1С для бухов (~10 человек).

В каком случае необходимо переходить от файловой базы на SQL?

1. пока скорость работы будет устраивать.
2. пока база не разрастётся более 10 ГБ, а по факту размер 1cv8.1cd ограничен 20 ГБ.
3. пока не появится желание более надёжно защитить базу от сбоев, ведь в формате sql сбои в структуре БД редко бывают.

Цитата
В каком случае необходимо переходить от файловой базы на SQL?


- в случае большого числа пользователей (зависит от конфигурации)
- в случае большого размера баз данных
- в случае необходимости увеличения скорости работы
- в случае необходимости увеличения стабильности работы и уровня сохранности информационных баз
- в случае необходимости предотвращения несанкционированного копирования ИБ пользователями
и т.д. и т.п.

Цитата
а по факту размер 1cv8.1cd ограничен 20 ГБ. 3. пока не появится желание более надёжно защитить базу от сбоев, ведь в формате sql сбои в структуре БД редко бывают.
Цитата
а по факту размер 1cv8.1cd ограничен 20 ГБ. 3. пока не появится желание более надёжно защитить базу от сбоев, ведь в формате sql сбои в структуре БД редко бывают.

я выгружал 39 гиговую SQL базу, развертовал ее файловой до размера 41 с копейкой. База запустилась, конечно говорить о нормальной работе не приходится, но ограничения на 10 гигов нет. Есть ограничение в 4 гига на внутренний файл, и так как их 3то ошибочно считают, что файловую базу больше 12 гигов нельзя развернуть

BackUp

Еще пару слов о копиях баз 1С

В одной из предыдущих статей мы подробно рассматривали вопрос создания копии базы данных 1С (бэкап 1с), используя универсальное средство для файловой и клиент-серверной базы - выгрузку/загрузку информационной базы. Хотя позиция фирмы "1С" говорит нам о том, что получаемый файл dt, не может считаться полноценным "зеркалом" - точной копией базы, поскольку в процессе загрузки файла происходят некоторые технологические операции, которые в некоторых случаях даже исправляют ошибки в базе 1С. Но об этом пойдет речь в других статьях.

В данном материале мы рассмотрим очень важный вопрос - как же автоматизировать процесс создания резервной копии базы данных 1С, проще говоря, как ежедневно создавать бэкап 1С, не выполняя никаких дополнительных действий. Строго говоря это тот вопрос, который вы должны себе задать сразу после установки программного обеспечения 1С. Вам же не хочется терять даже день своей работы, не говоря о полном крахе базы в разгар сдачи готового отчета. Конечно, всех этих проблем можно избежать использую облачную 1С, ведь все эти действия уже произведены за вас. Если вы еще не готовы использовать самые современные технологии, то вопрос резервного копирования стоит для вас весьма актуально. В нашем богатом опыте встречались случаи, когда автоматическое копирование не было настроено в организации, которая имеет порядка 5 филиалов в разных городах нашей страны с общей численностью штата превышающей 500 человек. Конечно же, на данном предприятии был даже IT директор, но даже его не сильно волновал вопрос сохранения данных. Первое, с чего мы начали работу с данным предприятием - автоматизация резервного копирования данных.

Итак, разберем какие же инструменты есть у нас для автоматизации создания копии базы.

Прежде всего надо определиться какой вариант работы с базой данных 1С используется: файловый или клиент-серверный. Это ключевой момент, поскольку, в зависимости от используемого режима, настройка автоматического бэкапа базы будет кардинально отличаться.

Резервная копия 1С в файловом режиме работы

Самый просто вариант - использовать встроенный механизм резервного копирования и восстановления, которые предлагают нам современные конфигурации на управляемых формах. Настроить его, даже у не очень опытного пользователя, не составит усилий, внимательно читая наши рекомендации и советы. Для начала вам нужно найти подраздел (пункт меню) "Поддержка и администрирование", он располагается в разделе "Администрирование" либо в разделе "НСИ и администрирование" в зависимости от используемой конфигурации.

Настройка резервного копирования баз 1С

Далее, развернуть подменю "Резервное копирование". Не спешите заходить в пункт "резервное копирование информационной базы"! Для начала необходимо выполнить настройки, делается это через пункт "Настройка автоматического резервного копирования". Настроек не так много. Необходимо установить флаг "выполнять автоматическое резервное копирование". Далее, на выбор два варианта: "регулярно по расписанию" и при "завершении работы". Надо понимать, что каждый из этих вариантов применим для организация с небольшим количеством пользователей. Если у вас один или несколько пользователей в базе, то вполне можно использовать вариант "при завершении работы". Каждый раз когда вы будете выходить из базы программа выполнить процедуру сохранения данных в указанный каталог. Расписание удобно настраивать, если в вашей базе работают несколько человек и можно настроить расписание под конец рабочего дня, когда все остальные пользователи уже завершили свою работу в системе. Программа завершит работу всех пользователей и выполнит копирование. Недостатком обоих вариантов является то, что программа должна быть запущена. Если вы заходите настроить резервное копирование на ночное время, чтобы не прерывать трудовой процесс, вам придется отставить конфигурацию 1С запущенной, что не всегда удобно.

Как настроить копирование базы 1С

Копирование базы 1С по расписанию настройка

Второй вариант настройки автоматического архива 1С - обеспечить сохранение и архивирование файла базы данных 1Cv8.1CD, который находится в каталоге расположение информационной базы. Посмотреть где находится каталог можно на форме списка информационных баз. Сразу скажем, что всю папку архивировать совсем не нужно. Достаточно один файл "1Cv8.1CD". Остальные каталоги содержать временные файлы, которые вам не пригодятся при восстановлении базы. Для этих целей можно использовать любые программы резервного копирования данных, которые, как правило, поддерживают настройку расписания. Вполне неплохой вариант в плане надежности, но для рядового пользователя может показаться сложным. Поэтому мы будем рекомендовать универсальный способ, описанный ниже.

Третий вариант настройки автоматического архива 1С - использовать планировщик заданий Windows. В нём можно настроить расписание, по которому будет вызываться простой BAT - файл, следующего содержания:

"M:\Program Files\1cv8\8.3.9.1850\bin\1cv8.exe" DESIGNER /S"server1\DataBaseName" /N"ИмяПользователя" /P"ПарольПользователя" /DUMPIB"N:\DataBaseCopy.dt"

Где "M:\Program Files\1cv8\8.3.9.1850\bin\1cv8.exe" - путь к файлу запуска 1С, "server1\DataBaseName" - имя базы данных в кластере серверов, "ИмяПользователя" - имя пользователя с административными правами , "ПарольПользователя" - пароль пользователя, "N:\DataBaseCopy.dt" - путь и имя файла сохранения копии 1С.

Подробнее узнать про параметры командной строки 1С можно здесь.

Резервная копия 1С в клиент-серверном режиме работы

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

Важным плюсом создания резервной копии базы средствами СУБД является то, что копирование можно производить "на лету" - на надо завершать работу всех пользователей в системе, можно забыть о монопольном режиме.

Пока, достаточно будет сказать, что процесс настройки зависит от используемой СУБД. Напомним, что 1С 8 поддерживает работу со следующими СУБД:

  • MS SQL Server
  • PostgreSQL
  • IBM DB2
  • Oracle Database

Наша практика показывает, что именно первые две являются самыми используемыми СУБД для 1С. PostgreSQL безусловно привлекает тем, что это полностью бесплатный продукт. MS SQL Server широко используется во многих организациях, при этом для небольших компаний вполне подойдет бесплатная версия Express. Oracle Database будет выбором для крупных организация, которые, скорей всего остановят свой выбор на конфигурации 1C ERP.

Пару слов стоит сказать о MySql и 1С. MySql активно используется в web-технологиях, но нет, данная СУБД не поддерживается 1С. На ней невозможно развернуть базу. К сожалению, даже системные администраторы со стажем иногда путают MS SQL и MySql.

Вернемся к настройке резервного копирования средствами СУБД. В MS SQL необходимо будет настроить план обслуживания. Сделать это можно через MS SQL Managment Studio. Достаточно развернуть группу с сервером, далее управление (management), план обслуживания (maintenance plan) и создать новый план. Подробно рассматривать настройки здесь не будем. Специалист должен разобраться, а не специалисту делать это не рекомендуем. Если же вы используете версию MS SQL Express, то план обслуживания, увы, не входит в эту поставку. Поэтому придется писать скрипт и настраивать планировщик задач windows.

BackUp Ms Sql настройка

Что касается СУБД PostgreSQL, настраивать вам автоматическое резервное копирование вам придется также вручную, обладая определенными знаниями и опытов в этом деле. Подробнее о настройке резервного копирования Postgre сервер для ОС win можно почитать здесь.

PostgresSQL admin, PostgresSQL backup

Универсальное средство для создания архива 1С для всех режимов работы

И напоследок, мы оставили самый удобный способ создания и настройки автоматического резервного копирования на взгляд do-1C - использование специального приложения Effector Saver. Эта статья не нацелена на рекламу данного ПО, мы подробно рассмотрели все варианты. Но в своей практике, мы, в том числе, используем именно этот инструмент. Давайте просто кратко перечислю плюсы:

  • Есть рабочая и вполне функциональная БЕСПЛАТНАЯ версия
  • Применяется для любого режима работы: файловый, клиент-серверный
    • Поддерживает СУБД MS SQL и PostgreSQL

    Настройка Effector Saver для создания резервных копий 1С

    Необходимо скачать архив, разархивировать файл и установить его на компьютер. После этого запустить эффектор сейвер и выполнить простые настройки:

    • Создать группу задач (при необходимости разделять задачи, например, для разных конфигураций)
    • В группе добавить задачу
    • Проставить флаг "выполнять задачу"
    • Придумать наименование задачи
    • Обязательно указать вид задачи.
    • Заполнить все настройки подключения к информационной базе
    • На закладке "настройка архивов" указать каталог. Крайне желательно делать копии баз 1С не на тот жесткий диск, на котором уже установлена система, а на другой физический диск
    • На закладке "Расписание" настройте регулярность и время выполнения копирования
    • Не забудьте нажать кнопку "Сохранить"

    Как настроить автоматическое резервное копирование баз 1С, архив 1С

    После этого проверьте сервисные настойки. Для этого нажмите кнопку в крайнем верхнем углу "Сервис" --> "Параметры программы". Прежде всего проверьте закладку "Параметры запуска". Запустите агент как приложение или как сервис. Запустите монитор (монитор будет отображаться в системном трее, у часов, в правом-нижнем углу экрана). Также, рекомендуем установить пароль на вход в менеджер. Сделать это можно на закладке "Параметры менеджере" --> кнопка "Установить".

    Настройки параметров запуска Effector Saver, программы для автоматизации резервного копирования баз 1С

    Успешное резервное копирование данных при помощи Effector Saver

    Подводя итог, хочется сказать еще раз одну простую мысль - бэкапов (копий) много не бывает. Хотя, в IT кругах, мы часто слышим одну перефразированную шутку: "тормоза и бэкапы придумали трусы", но не стоит забывать - это только шутка. Целостность и безопасность баз 1С - в ваших руках! Если же данная статья показалась вам слишком слишком сложной и трудной для освоения - ничего страшного. Мы настроим архивирование баз 1С и выполним любые другие работы по 1С быстро и качественно, за разумную цену. Звоните!

    Читайте также: