Показать полную графическую версию : Резервное копирование 1с
Добрый день пытаюсь настроить резервное копирование базы 1с из CMD/ (выгрузка)
1. Выгоняем пользователей:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"Serv1c01\Zarplata" /N"administrator" /P"12" /WA- /AU- /DisableStartupMessages /CЗавершитьРаботуПользователей
Запускается Конфигуратор 1с и через некоторые время выкидывает пользователей. База блокируется.
Но сам клиент\конфигуратор остаётся открытым.
При закрытии в ручную ошибка
{ОбщийМодуль.МенеджерОборудованияКлиент.Модуль(213)}: Значение не является значением объектного типа (ПараметрыПодключенияПО)
Если глПодключаемоеОборудование.ПараметрыПодключенияПО <> Неопределено Тогда
2. Разблокируем базу:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"Serv1c01\Zarplata" /N"administrator" /P"12" /CРазрешитьРаботуПользователей /UCПри блокировке 1с всталяет слово "КодРазрешения" в свойствах базы на сервере 1с
3. Делаем резервною копию:
"C:\Program Files\1cv8\common\1cestart.exe" CONFIG /S"Serv1c01\Zarplata" /N"administrator" /P"12" /Out"\\server-01\BACKUP\Zarplata_%date%.log" /DumpIB"\\server-01\BACKUP\Zarplata_%date%.dt"
Получаем ошибку -
Ошибка исключительной блокировки информационной базы.
Активные сеансы и соединения:
компьютер: PC120-01, пользователь: administrator, сеанс: 3, начат: 27.09.2018 в 15:20:56, приложение: Толстый клиент
Открытый сеанс на первом шаге.
Вопросы:
Закрывать 1cv8.ехе принудительно?
Как понять что все пользователи отключены. При разблокировании они подключаются автоматически и можно опять получить (Ошибка исключительной блокировки информационной базы) при попытке резервного копирования.
Или на первом скрипте ошибка?
merdzd,
Насколько я понял, вы используете сервер 1С предприятие и SQL. А что Вам мешает использовать резервное копирование средствами SQL?
средствами SQL »
Ничего, оно используется. Но там размеры файлов большие и много копий не получается хранить долго.
+ быстрота развёртывания.
Алсо на одном из ПК
2ой шаг
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"Serv1c01\Zarplata" /N"administrator" /P"12" /CРазрешитьРаботуПользователей /UCКодРазрешения
Спрашивает добавить базу (список баз пуст)
Но там размеры файлов большие и много копий не получается хранить долго. »
Есть вариант периодического разностного (инкрементного) копирования. Тоже не вариант?
+ быстрота развёртывания. »
С этим я бы поспорил, но не буду, если вы так решили значит так и будет.
Один из вариантов резервного копирования (выгрузки БД 1С) с помощью планировщика задач выглядит следующим образом:
Опишу задачу в закладке "Действия"
1. Делается logoff всем пользователям.
Программа или сценарий: C:\Windows\SysWOW64\logoff.exe
Аргумент: 65536
Рабочая папка: C:\Windows\SysWOW64
2. Убивается процесс 1С.
Программа или сценарий: C:\Windows\SysWOW64\taskkill.exe
Аргумент:/F /im 1cv8.exe
Рабочая папка: C:\Windows\SysWOW64
3. Запуск выгрузки БД.
Программа или сценарий: "C:\Program Files (x86)\1cv8\common\1cestart.exe"
Аргумент: DESIGNER /S "имя или IP сервера 1С\наименование БД" /N "Имя пользователя БД 1С" /P "пароль" /Out "Путь для лога\log1c.txt" /DumpIB "Путь для выгрузки БД\1Cv8-today.dt" /DisableStartupMessages
Условия выполнения данной задачи это наличие общего списка БД 1С (C:\ProgramData\1C\1cv8). Наличие прав на запись (у пользователя или системы, от имени которого отрабатываеться задание) в соответствующие каталоги выгрузки и для лога.
Но там размеры файлов большие и много копий не получается хранить долго. »
у меня после бэкапа средствами скуля (без сжатия выгружаю), отрабатывает 7zip. в итоге из 16гб среза получается 1,6гб архив. скулевское сжатие не такое плотное.
Делается logoff всем пользователям. »
Немного Жёстко,
Есть пользователи не работающие в 1с .
Лучше уж начать с шага 2 сразу
и записать в bat файл:
taskkill /IM 1cv8.exe /T /F /s PC120-01 >C:\PC120-01.txt Возможно надо дублировать или третировать строчки на случай запуска нескольких баз
taskkill /IM 1cv8.exe /T /F /s PC120-02 >C:\PC120-02.txt
И ТД на все ПК
Затем шаг 3.
Правда в методе из топика, пользователи не замечают что база отключалась - клиенты переподключаются автоматом и без ввода пароля даже.
И просто хотелось разобраться почему не работает документированный метод.
Есть пользователи не работающие в 1с . »
Я привёл в качестве примера. У меня нету пользователей не работающих в 1С ночью, но при том работающих с какими то файлами на сервере. ;)
И просто хотелось разобраться почему не работает документированный метод. »
Документ, документу рознь. Когда он был написан для какой платформы и т.п. Я привёл Вам рабочий вариант.
И ещё раз рекомендую отказаться от bat файлов как таковых и использовать планировщик задач.
merdzd, у 1С-ников есть штатный метод создания резервных копий. Он вас чем-то не устраивает — или вы не консультировались с их ТП?
А это и есть штатный, тихий метод.
у меня после бэкапа средствами скуля (без сжатия выгружаю), отрабатывает 7zip. в итоге из 16гб среза получается 1,6гб архив. скулевское сжатие не такое плотное. »
коэффициент SQL Compression близок к 10. возможно, в вашем случае на выходе будет больше 1.6, но меньше 2.0Гб.
при этом время восстановления значительно меньше, чем в вашем варианте.
Вот нужная внешняя обработка.
////////////////////////////////////////////////////////////////////////////////
// ЭКСПОРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
// Процедура устанавливает блокировку соединений с ИБ,
// в соответствиями со значениями реквизитов объекта.
// При установке блокировки в информационной базе включается
// механизм завершения работы пользователей (включая пользователя,
// инициировавшего блокировку).
//
Процедура УстановитьБлокировку() Экспорт
# Если Клиент Тогда
Если УстановитьБлокировкуСоединений Тогда
// поскольку блокировка еще не установлена, то при входе в систему
// для данного пользователя был подключен обработчик ожидания завершения работы.
// Отключаем его. Так как для этого пользователя подключается специализированный обработчки ожидани
// "ЗавершитьРаботуПользователей", который ориентирован на то, что данный пользователь
// должен быть отключен последним.
ОтключитьОбработчикОжидания("КонтрольРежимаЗавершенияРаботыПользователей");
ПодключитьОбработчикОжидания("ЗавершитьРаботуПользователей", 60);
КонецЕсли;
# КонецЕсли
// параметры блокировки
Блокировка = Новый БлокировкаУстановкиСоединений;
Блокировка.Начало = НачалоБлокировки;
Блокировка.Конец = ОкончаниеБлокировки;
Блокировка.Сообщение = Сообщение;
Блокировка.Установлена = УстановитьБлокировкуСоединений;
Блокировка.КодРазрешения = КодРазрешения;
// установка блокировки соединений
УстановитьБлокировкуУстановкиСоединений(Блокировка)
КонецПроцедуры // УстановитьБлокировку()
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.