Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Резервное копирование 1с (http://forum.oszone.net/showthread.php?t=336884)

merdzd 27-09-2018 15:47 2833145

Резервное копирование 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.ехе принудительно?
Как понять что все пользователи отключены. При разблокировании они подключаются автоматически и можно опять получить (Ошибка исключительной блокировки информационной базы) при попытке резервного копирования.

Или на первом скрипте ошибка?

Anton04 27-09-2018 16:28 2833156

merdzd,

Насколько я понял, вы используете сервер 1С предприятие и SQL. А что Вам мешает использовать резервное копирование средствами SQL?

merdzd 27-09-2018 17:46 2833174

Цитата:

Цитата Anton04
средствами SQL »

Ничего, оно используется. Но там размеры файлов большие и много копий не получается хранить долго.
+ быстрота развёртывания.

Алсо на одном из ПК
2ой шаг
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"Serv1c01\Zarplata" /N"administrator" /P"12" /CРазрешитьРаботуПользователей /UCКодРазрешения
Спрашивает добавить базу (список баз пуст)

Anton04 28-09-2018 16:32 2833310

Цитата:

Цитата merdzd
Но там размеры файлов большие и много копий не получается хранить долго. »

Есть вариант периодического разностного (инкрементного) копирования. Тоже не вариант?

Цитата:

Цитата merdzd
+ быстрота развёртывания. »

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


Один из вариантов резервного копирования (выгрузки БД 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). Наличие прав на запись (у пользователя или системы, от имени которого отрабатываеться задание) в соответствующие каталоги выгрузки и для лога.

man8531 28-09-2018 20:11 2833366

Цитата:

Цитата merdzd
Но там размеры файлов большие и много копий не получается хранить долго. »

у меня после бэкапа средствами скуля (без сжатия выгружаю), отрабатывает 7zip. в итоге из 16гб среза получается 1,6гб архив. скулевское сжатие не такое плотное.

merdzd 03-10-2018 12:29 2834121

Цитата:

Цитата Anton04
Делается 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.

Правда в методе из топика, пользователи не замечают что база отключалась - клиенты переподключаются автоматом и без ввода пароля даже.

И просто хотелось разобраться почему не работает документированный метод.

Anton04 03-10-2018 13:55 2834143

Цитата:

Цитата merdzd
Есть пользователи не работающие в 1с . »

Я привёл в качестве примера. У меня нету пользователей не работающих в 1С ночью, но при том работающих с какими то файлами на сервере. ;)

Цитата:

Цитата merdzd
И просто хотелось разобраться почему не работает документированный метод. »

Документ, документу рознь. Когда он был написан для какой платформы и т.п. Я привёл Вам рабочий вариант.

И ещё раз рекомендую отказаться от bat файлов как таковых и использовать планировщик задач.

mwz 03-10-2018 18:59 2834199

merdzd, у 1С-ников есть штатный метод создания резервных копий. Он вас чем-то не устраивает — или вы не консультировались с их ТП?

merdzd 09-10-2018 16:33 2835108

А это и есть штатный, тихий метод.

cameron 25-10-2018 14:34 2837552

Цитата:

Цитата man8531
у меня после бэкапа средствами скуля (без сжатия выгружаю), отрабатывает 7zip. в итоге из 16гб среза получается 1,6гб архив. скулевское сжатие не такое плотное. »

коэффициент SQL Compression близок к 10. возможно, в вашем случае на выходе будет больше 1.6, но меньше 2.0Гб.
при этом время восстановления значительно меньше, чем в вашем варианте.

wazzock 01-11-2018 11:43 2838858

Вот нужная внешняя обработка.

Код:

////////////////////////////////////////////////////////////////////////////////
// ЭКСПОРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ

// Процедура устанавливает блокировку соединений с ИБ,
// в соответствиями со значениями реквизитов объекта.
// При установке блокировки в информационной базе включается
// механизм завершения работы пользователей (включая пользователя,
// инициировавшего блокировку).
//
Процедура УстановитьБлокировку() Экспорт       
    # Если Клиент Тогда           
        Если УстановитьБлокировкуСоединений Тогда
            // поскольку блокировка еще не установлена, то при входе в систему
            // для данного пользователя был подключен обработчик ожидания завершения работы.
            // Отключаем его. Так как для этого пользователя подключается специализированный обработчки ожидани
            // "ЗавершитьРаботуПользователей", который ориентирован на то, что данный пользователь
            // должен быть отключен последним.       
           
            ОтключитьОбработчикОжидания("КонтрольРежимаЗавершенияРаботыПользователей");
            ПодключитьОбработчикОжидания("ЗавершитьРаботуПользователей", 60);       
        КонецЕсли;
    # КонецЕсли

   
        // параметры блокировки
        Блокировка = Новый БлокировкаУстановкиСоединений;
       
        Блокировка.Начало                        = НачалоБлокировки;
        Блокировка.Конец                          = ОкончаниеБлокировки;
        Блокировка.Сообщение                = Сообщение;
        Блокировка.Установлена                = УстановитьБлокировкуСоединений;
        Блокировка.КодРазрешения        = КодРазрешения;       
       
        // установка блокировки соединений
        УстановитьБлокировкуУстановкиСоединений(Блокировка)
КонецПроцедуры // УстановитьБлокировку()



Время: 13:35.

Время: 13:35.
© OSzone.net 2001-