1С бэкап SQL

Как сделать резервное копирование 1С? Ответ на этот вопрос не так прост, поскольку 1С использует различные базы данных SQL для хранения информации. Сложности при бэкапе базы 1С также возникают по причине различных версий 1С и их совместимости. Ниже мы рассмотрим автоматический бэкап 1С на основе ПО для резервного копирования и восстановления 1С Bacula. Bacula имеет open source и enterprise-версии, что позволит сделать выбор между бесплатной и корпоративной версией резервного копирования 1С. В этом документе Вы найдете описания различных SQL БД для 1С, скрипт-пример для бесплатного резервного копирования 1С с любой БД на основе Bacula Community, а также некоторое описание преимуществ бэкапа 1С с Bacula Enterprise.

1С может функционировать в разных БД: SQL Server, PostgreSQL, Oracle, DB2 и др. Резервирование копирование баз данных на основе MySQL, PostgreSQL и других БД с помощью Bacula возможно выполнять с помощью включенной функциональности выполнения некоторых скриптов на стороне сервера или клиента до и после задачи резервного копирования базы 1С.

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

Для резервного копирования 1С на базе MySQL бэкап и восстановление данных обычно производится тулзами создания дампа, например, входящей в состав ПО для сервера MySQL утилитой mysqldump. Это наиболее общий способ, подходящий для всех поддерживаемых типов таблиц в MySQL. Необходимо оперировать от имени пользователя, который имеет право блокировать таблицы на сервере 1С для исключения внесения изменений в таблицы во время резервного копирования 1С.

Создаём пользователя MySQL, обладающего достаточными привелегиями SELECT, RELOAD, LOCK TABLES. В консоли MySQL от имени суперпользователя СУБД отдаем команды:

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

Создаем файл с настройками скрипта бэкапа 1С:

Где опции mysqldump:

«—verbose» — включает более детализированный вывод;
«—force» — указывает продолжать создание дампа несмотря на случившиеся ошибки в процессе;
«—complete-insert» — применяем режим создания «дампа» с командой insert на каждую строку вместо более компактного режима по умолчанию с одним insert на всю таблицу.

Необходимо осознавать, что резервное копирование баз 1С 8.3 с помощью тулзов последовательного чтения и вывода информации в дамп не гарантирует непротиворечивого состояния данных с завершением всей процедуры в целом. Дело в том, что после того как будет скопирована строка в начале таблицы, она может быть изменена вместе с другими строками, до которых чтение ещё не дошло. В этой связи существует вероятность получить нефункционирующую логику базы данных 1С после бэкапа, в которой строки в её начале конфликтуют со строками в конце. Самое легкое решение для задач резервного копирования 1С, которые могут быть приостановлены — блокировка таблиц. Для этого в наборе ключей утилиты mysqldump имеется парочка соответствующих ключей:

«—first-slave» — блокируем все таблицы для записи (обеспечение единого непотиворечивого состояния данных в таблицах);
«—add-locks» — блокирование от записи каждой таблицы по отдельности во время исполнения «дампа»;

Теперь, после того, как мы убедимся в работоспособности скрипта бэкапа 1С на стороне клиента, применим его со стороны сервера Bacula. В конфигурационном файле при бэкапе 1С «/etc/bacula/bacula-dir.conf» в конфигурации задания («Job») соответствующего клиента добавим указания на запуск скрипта предварительного создания «дампа» баз данных 1С и команды удаления временного файла «дампа» после исполнения резервного копирования базы 1С:

Стоит понимать все недостатки версии Bacula Community для резервного копирования 1С:

  • Вы не сможете делать инкрементальный и дифференциальный бэкапы базы 1С, что приведет к постоянному увеличению массива хранения данных
  • Нельзя откатить базу к определенному моменту времени (point in time восстановление для 1С недоступно)
  • Используя Bacula Community для резервного копирования сервера 1С, Вы несете исключительно все риски, т.к. у Вас нет квалифицированной технической поддержки для Вашей СРК

Для предприятий среднего и крупного бизнеса, мы рекомендуем использовать резервное копирование баз 1С с помощью Bacula Enterprise Edition.

Effector saver — это специализированная программа для автоматического резервного копирования 1С:Предприятия.Программа позволяет создавать резервные копии баз данных 1С:Предприятия, баз Microsoft SQL или PostgreSQL серверов, пользовательских папок и файлов.Сохранять же резервные копии можно на внешние, сетевые и локальные диски, FTP сервер.Effector saver вмещает большое количество расширенных функций, которые значительно упрощают резервное копирование: планирование и автоматический запуск задач, удобное заполнение настроек и тестирование баз 1С, автоотключение пользователей 1С:Предприятия 8.

Наша цель — создание ежедневных архивов. На компьютере где производится настройка, должна быть установлена программа 1С:Предприятие и подключена необходимая база данных.Скачаем программу с официального сайта Запускаем файл инсталляции Мастера установки.

На последнем этапе Мастера установки, соглашаемся с запуском программы и нажимаем «Завершить».

Выбираем «Запускать агент как приложение» (выбор зависит от установки программы на рабочую станцию или на сервер).

Нажимаем кнопку «Запустить агента» — «Сохранить».

Создаем задачу резервного копирования

Выбираем «Задачи» — «Добавить задачу».

Выбираем чем архивироватьПоле «Наименование» оставим по умолчанию, оно автоматически изменится на имя выбранной базы 1С.

Из выпадающего списка «Вид задачи» выбираем «Архивирование средствами 1С:Предприятие 8».

Указываем базу для архивацииВ закладке «Подключение» нажимаем «Выбрать и заполнить». В открывшемся окне «Выбор базы 1С:Предприятия» указываем нужную нам базу и нажимаем «Выбрать».

Поля «Исполняемый файл», «Вариант базы» и «Каталог базы» автоматически заполнятся значениями в соответствии с выбранной базой или же их можно заполнить вручную.

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

Если для защиты 1С используется USB ключ, то не нужно устанавливать флаг «Использовать программную лицензию 1С».

Указываем место размещения архивированной базыПереходим на вкладку «Настройка архивов». Указываем каталог для хранения архивов: нажимаем на кнопку с тремя точками в конце поля «Каталог архивов» и выбераем в диалоговом окне каталог, или, если потребуется, создайте новый каталог с помощью кнопки «Создать папку».

В параметре «Количество одновременно хранимых архивов» установим 10. Effector saver будет удалять более старые резервные копии данной задачи, как только их количество превысит 10 штук.

Выбираем когда производить архивированиеЧтобы установить время выполнения задачи, переходим на вкладку «Расписание».

В нашем примере резервное копирование производится на рабочей станции, поэтому выбираем в поле «Назначить задание», пункт «Ежедневно после загрузки системы».

Если необходимо чтобы между стартом программы и архивированием прошла небольшая пауза, установите «Время задержки» в формате «чч:мм».

В поле «Время начала» установите произвольное время в формате «чч:мм» в тот период, когда последний пользователь прекращает работу с базой и до момента начала работы первого пользователя. Например ночь, 01:00.

Активация и сохранение настройки задачиУстанавливаем флаг «Выполнять задачу» в верхней части окна настройки.

Жмём кнопку «Сохранить». {}{}

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

Удостоверьтесь, что пользователи вышли из базы 1С:Предприятия.

В главном окне «Менеджера» кликнув мышкой делаем активной строку со своей задачей.

В меню «Задачи» нажимаем «Выполнить сейчас» и ждём, пока закончится процесс. Ранее мы запустили «Агент», поэтому задача будет выполнена немедленно.{}{} {}{}

Всё, готово. Резервная копия успешно создана.

Просмотр результатов работы задачиПосле завершения процесса резервного копирования во вкладке «Журнал» мы увидим дату и результат выполнения задачи по созданию бэкапа.

Для подробного просмотра результата выполнения задачи, выберите в меню «Журнал» — «Открыть запись», или сделайте двойной клик мышкой по записи выполнения задачи.

Во вкладке «Файлы» можно просмотреть список файлов бэкапа, которые были созданы в результате выполнения задачи.

Для просмотра файла бэкапа, выбираем в меню «Файлы» — «Открыть файл», или правый клик мыши по записи выполнения задачи — «Открыть файл». {}{}{}{}{}{}

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

{}{}

Для сохранения целостности структуры баз данных и обеспечения нормальной производительности необходимо проводить периодическое обслуживание. В этой статье рассмотрим какие задания по обслуживанию необходимо выполнять для баз данных 1С Предприятия, размещенных в MS SQL.

Настройка плана обслуживания баз данных MS SQL Server выполняется через программу Microsoft SQL Management Studio. Рассмотрим задачи, которые мы будем выполнять в рамках регулярного обслуживания баз данных:

В чем отличие полного бэкапа от разностного?

Полное резервное копирование сохраняет всю базу данных целиком.

Разностное резервное копирование сохраняет все изменения созданные в базе данных с момента последнего полного бэкапа.

Такой подход к резервному копированию позваляет экономить свободное пространство на носителях информации.

Создание полного бэкапа базы.

В обозревателе объектов переходим к пункту «Управление \ Планы обслуживания». В контекстном меню выбираем «Создать план обслуживания».

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

В созданном плане нажимаем кнопку «Добавление вложенного плана»

Вводим название «Полный бэкап» и описание. Задаем расписание для выполнения задания: Раз в неделю в воскресенье в 2:00.

Добавляем в созданный план задание. Для этого с панели элементов перетаскиваем в поле заданий вложенного плана элемент с названием Задача «Резервное копирование базы данных».

Открываем задание на редактирование: правой клавишей мыши по заданию, выбираем пункт «Изменить».

  • Тип резервной копии: Полное;
  • Базы данных: если выбрать «Все пользовательские базы данных», то будет выполняться бэкап всех созданных вами баз данных, но есть возможность указать на конкретные базы;
  • Создать файл резервной копии для каждой базы данных: отмечаем пункт «Создавать вложенный каталог для каждой базы данных», чтобы удобнее было ориентироваться в бэкапах и указываем путь как папке, в которой будут храниться резервные копии;
  • Отмечаем пункт «Проверять целостнойсть резервной копии»;
  • Устанавливаем параметр «Сжимать резервные копии».

Создание разностного бэкапа.

Создание плана на выполнение разностного бэкапа выполняется аналогично полному бэкапу.

Отметим некоторые отличия в настройке:

  • Расписание выполнения заданий: с понедельника по субботу в 2:00;
  • Тип резервной копии выбираем «Разностное»

Очистка устаревших бэкапов.

Для очистки устаревших бэкапов баз 1С Предприятия в MS SQL выбираем на панели элементов плана обслуживания Задачу «Очистка после обслуживания».

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

Перетаскиваем задачу с Панели элементов в план и задаем такие настройки:

  • Удалить файлы следующего типа: Файлы резервных копий;
  • Удалить из папки файлы с определенным расширением: указываем папку хранения бэкапов баз 1С;
  • Включить вложенные папки первого уровня: отмечаем галочкой, потому-что у нас для бэкапов баз создаются отдельные папки
  • Удалить файлы на основе возраста во время выполнения задачи: здесь все ограничивается лишь вашими потребностями и объемом жесткого диска, а мне достаточно 4 недель.

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

Через стрелки можно задавать условие, при котором будет выполнять следующее задание: ошибка, успешное завершение, выполнение. Изменить условие можно щелкнув правой клавишей мыши по стрелке.

По умолчанию стрелка зеленого цвета. Это значит, что следующее задание будет выполняться только при успешном завершении первого. Это условие подходит для моего случая.

Переходим к очень важному и ответственному пункту: Перестроение индекса и обновление статистики.

Дефрагментация индекса (реорганизация или перестроение).

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

Для устранения фрагментированных областей баз данных в MS SQL существует возможность проведения Реорганизации индекса и Перестроение индекса.

В чем разница между реорганизацией и перестроением?

Перестроение индекса означает, что фрагментация будет устранена путем удаления и пересоздания индексов.

При Реорганизации индекска происходит перестроение индексов в соответствии с логическим порядком. Этот способ наименее ресурсозатратный и является более предпочтительным для регулярного обслуживания баз данных.

В каких случаях требуется реорганизация индекса?

  • Уровень фрагментации от 5% до 30%, то проводим реорганизацию.
  • Фрагментация свыше 30% необходимо проводить перестроение индекса

Под выполнение этих задач очень подходит инструкция Transact-SQL со следующим содержимым:

DECLARE @SQL NVARCHAR(MAX) DECLARE @MIN_IND_SIZE integer = 128 DECLARE @MIN_FRAGMENTATION_LEVEL integer = 10 DECLARE @CRITICAL_FRAGMENTATION_LEVEL integer = 30 DECLARE currentIndex CURSOR LOCAL READ_ONLY FORWARD_ONLY FOR SELECT ‘ALTER INDEX ON ) + ‘]. ‘ + CASE WHEN stat.avg_fragmentation_in_percent > @CRITICAL_FRAGMENTATION_LEVEL THEN ‘REBUILD WITH (SORT_IN_TEMPDB = ON, ONLINE = ON)’ ELSE ‘REORGANIZE’ END + ‘;’ FROM ( SELECT stat., stat.index_id, avg_fragmentation_in_percent = MAX(stat.avg_fragmentation_in_percent) FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, ‘DETAILED’) stat WHERE stat.page_count > @MIN_IND_SIZE AND stat.index_id > 0 AND stat.avg_fragmentation_in_percent > @MIN_FRAGMENTATION_LEVEL GROUP BY stat., stat.index_id ) stat JOIN sys.indexes ind WITH(NOLOCK) ON stat. = ind. AND stat.index_id = ind.index_id JOIN sys.objects obj WITH(NOLOCK) ON obj. = stat. OPEN currentIndex FETCH NEXT FROM currentIndex INTO @SQL WHILE @@FETCH_STATUS = 0 BEGIN print @sql EXEC sys.sp_executesql @SQL FETCH NEXT FROM cur INTO @SQL END CLOSE currentIndex DEALLOCATE currentIndex

Создаем вложенный план с названием «Дефрагментация индекса и обновление статистики» с расписанием раз в день в 4:00 и перетаскиваем в него из Панели элементов Задачу «Выполнение инструкции T-SQL».

Вставляем в задачу приведенную выше инструкцию T-SQL.

Обновление статистики.

Обновление статистики в базах данных MS SQL, как и дефрагментация индекса, имеет большое значение для повышения производительности работы SQL сервера. Благодаря обновлению статистики SQL Server способен более эффективно выполнять планы запроса.

Выбираем на панели элементов Задача «Обновление статистики» и добавляем ее во вложенный план «Дефрагментация индекса и обновление статистики».

  • Базы данных: все пользовательские базы данных;
  • Обновить: вся собранная статистика;
  • Тип просмотра: полный просмотр.

При помощи стрелки связываем условием выполнение задачи по обновлению индекса с задачей по дефрагментации. Таким образом в случае успешного выполнения дефрагментации будет проведено обновление статистики.

Не забываем сохранить созданный план обслуживания…

… и убедиться, что запущен Агент SQL Server.

Backbas представляет собой dll-файл, связанный с программным обеспечением 1C. Ошибка с ним может возникать по различным причинам, но чаще всего она указывает на то, что присутствует дефект оборудования 1С. В сегодняшней статье мы разберемся, как можно исправить ошибку backbas.dll. Что ж, начнем!

Почему еще вчера я спокойно работал в 1C, а уже сегодня не могу в него зайти? Вот основные причины поломки:

  • ошибочные записи реестра для файла backbas.dll,
  • вирусная активность затронула файл backbas.dll,
  • сторонняя программа изменила версию файла backbas.dll,
  • сторонняя программа намеренно удалила файл backbas.dll.

А вот теперь стоит вспомнить, не использовали ли вы за последнее время сторонний софт? Или, может быть, посещали зараженные веб-страницы? Это вполне могло повлиять на рассматриваемый файл и тем самым вызвать его ошибку. Если вы припоминаете подобный случай, то не стоит бежать к защитнику системы и сканировать компьютер на наличие вирусов.

Первым делом попробуем восстановить систему, чтобы отменить последние действия. Для этого используем комбинацию клавиш «Win+R» и вводим запрос control в появившемся окне. Далее находим ярлык «Восстановление» и кликаем по нему левой кнопкой мыши.

Открываем окно восстановления системы

Осталось перейти в раздел «Запуск восстановления системы» и выбрать дату, к которой необходимо вернуться. В том случае, если указанной даты нет, то данный способ не подойдет для вашей системы (отсутствуют точки восстановления).

Тогда следует прибегнуть к сканированию компьютера либо самостоятельной замене файла backbas.dll. Также может помочь и повторная установка программы 1C.

Переустановка программы 1C: Enterprise 8.2

Для того чтобы заново установить любую программу на операционной системе Windows, следует удалить старую версию. Чтобы это сделать, откройте «Мой компьютер» и в верхней части выберите опцию «Удалить или изменить программу».

Открываем список программ

Следующим шагом найдите проблемную программу и удалите ее. Затем запустите установщик приложения и заново «поставьте» его на свой компьютер. Если же это никак не помогло с решением проблемы, то остается своими силами зарегистрировать dll-файл.

Ручная установка файла Backbas.dll

Ручная установка предполагает загрузку dll-файла из проверенного источника и перемещение его в нужную папку. Выглядит это следующим образом:

  1. Находим сайт с библиотеками DLL и загружаем последнюю версию файла backbas.dll.
  2. Открываем на компьютере папку Windows, расположенную на Локальном диске С, и переходим в подпапку System32 или SYSWOW64 (зависит от разрядности системы).
  3. В открывшуюся папку помещаем скачанный файл backbas.dll.

Если и такая стратегия не помогла, то попробуйте запустить окно «Выполнить» с помощью клавиш «Win+R», а затем введите запрос regsvr32 backbas.dll. Перезагрузите компьютер. Проблема должна исчезнуть.

Теперь вы знаете, как избавиться от ошибки backbas.dll. Помните, что своевременная защита компьютера может уберечь вас от лишних хлопот. Спасибо за внимание!