PDA

Показать полную графическую версию : Резервное копирование 1с


merdzd
27-09-2018, 15:47
Добрый день пытаюсь настроить резервное копирование базы 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
merdzd,

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

merdzd
27-09-2018, 17:46
средствами 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
Но там размеры файлов большие и много копий не получается хранить долго. »

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

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

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


Один из вариантов резервного копирования (выгрузки БД 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
Но там размеры файлов большие и много копий не получается хранить долго. »
у меня после бэкапа средствами скуля (без сжатия выгружаю), отрабатывает 7zip. в итоге из 16гб среза получается 1,6гб архив. скулевское сжатие не такое плотное.

merdzd
03-10-2018, 12:29
Делается 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
Есть пользователи не работающие в 1с . »

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

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

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

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

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

merdzd
09-10-2018, 16:33
А это и есть штатный, тихий метод.

cameron
25-10-2018, 14:34
у меня после бэкапа средствами скуля (без сжатия выгружаю), отрабатывает 7zip. в итоге из 16гб среза получается 1,6гб архив. скулевское сжатие не такое плотное. »
коэффициент SQL Compression близок к 10. возможно, в вашем случае на выходе будет больше 1.6, но меньше 2.0Гб.
при этом время восстановления значительно меньше, чем в вашем варианте.

wazzock
01-11-2018, 11:43
Вот нужная внешняя обработка.


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

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

ОтключитьОбработчикОжидания("КонтрольРежимаЗавершенияРаботыПользователей");
ПодключитьОбработчикОжидания("ЗавершитьРаботуПользователей", 60);
КонецЕсли;
# КонецЕсли


// параметры блокировки
Блокировка = Новый БлокировкаУстановкиСоединений;

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

// установка блокировки соединений
УстановитьБлокировкуУстановкиСоединений(Блокировка)
КонецПроцедуры // УстановитьБлокировку()




© OSzone.net 2001-2012