Создание выгрузок файлов .dt с помощью PowerShell и RAS\RAC для клиент-серверных баз

23.09.19

База данных - Архивирование (backup)

У платформы 1С 8.3 есть кроссплатформенная утилита RAS\RAC(Remote Administration Server\Remote Administration Client), которая позволяет удаленно управлять кластером серверов 1C. Ниже выложен шаблон скрипта PowerShell для выгрузки базы 1C в файл dt с помощью этой утилиты.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Unload1C.ps1
.ps1 7,69Kb ver:1.0.1
45
45 Скачать (1 SM) Купить за 1 850 руб.

После очередного обновления платформы 1С 8.3 перестал работать скрипт, закрывающий открытые сеансы через ComConnector перед выгрузкой ИБ. Предположили, что это косяк платформы COM-соединения, но решили не откатываться на предыдущие релизы, а сделать выгонялку с использованием утилиты RAS\RAC.

!!! ДАННЫЙ СКРИПТ ИСПОЛЬЗУЕТСЯ ТОЛЬКО ДЛЯ КЛИЕНТ-СЕРВЕРНЫХ БАЗ !!!

как устанавливать ras как службу на сервере 1С описывается здесь:

https://its.1c.ru/db/v8311doc#bookmark:cs:TI000000189

если у вас нет подписки ИТС, то можно посмотреть как это делается по этой ссылке:

//infostart.ru/public/810752/

с помощью команд утилиты rac скрипт выполняет следующие шаги:

1) устанавливает блокировку начала сеансов;
2) устанавливает блокировку регламентных заданий;
3) завершает сеансы пользователей указанной ИБ;
4) после выгрузки dt снимает блокировку сеансов и регламентных заданий

В шаблоне скрипта также указан параметр $UserNoExit, в котором указывается пользователь, которого нельзя выгонять из базы ни при каких условия. Например, если из-под него запущено перепроведение или в конфигураторе  делается тестирование и исправление базы. В этом случае выгрузка не происходит. Если у вас нет надобности в таком пользователе, то оставьте эту строку без изменения.

В той же папке, куда делаются выгрузки, записывается текстовый файл с логами.

Уфф... Господа и дамы, попрошу сильно меня пинать, т.к. это моя первая публикация на Инфостарте за последние несколько лет )))

См. также

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72806    627    45    

85

Архивирование (backup) Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Программа позволяет выполнять автоматическое создание копий файловых и серверных информационных баз 1С Предприятие 8 и размещение копий в облаке Яндекс.Диск, локальном или сетевом ресурсе.

1200 руб.

03.09.2014    15710    21    6    

27

Архивирование (backup) Администрирование СУБД Системный администратор Россия Бесплатно (free)

Постараюсь объяснить, зачем нужно резервное копирование именно журнала транзакций, а не только базы данных, и почему я словно сбросил груз, настроив его - как, покажу, естественно. Кстати, будут скрипты T-SQL (с подробными комментариями) - отличный способ сделать администрирование базы более уютным.

04.12.2023    9450    n_mezentsev    15    

27

Архивирование (backup) Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.

07.10.2022    28665    sapervodichka    37    

147

Архивирование (backup) Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Захотелось клиентам выгрузку архива баз, и выгрузку в дт, готовые скрипты с сети не заработали. Может, кому-то поможет. Релиз 8.3.18.1741.

1 стартмани

25.08.2022    5737    3    Gnom-Gluck    6    

7

Архивирование (backup) Системный администратор Программист Платформа 1С v8.3 Абонемент ($m)

Небольшая утилита для копирования файловых баз данных 1С.

1 стартмани

02.06.2022    4692    3    Giblarium    12    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. chg 23.09.19 03:44 Сейчас в теме
Старания конечно похвальны, но скажите мне, для чего вы пытаетесь делать резервные копии выгрузками, чем вас не устраивает SQL bak-и, всё делается штатными средствами и куда вам нужно, хоть на ленту, хоть на nas, при том что резервное копирование на уровне SQL более правильно для целостности данных и проходит в разы быстрее?
dammit666; Tarlich; Fox-trot; +3 Ответить
2. alexer 1028 23.09.19 08:38 Сейчас в теме
(1) я этот, как его, ретроград )). А вообще, так сложилось исторически?
12. chg 23.09.19 10:52 Сейчас в теме
(2)Технологии тоже не стоят на месте и выгонять пользователей для бэкапа уже давно не комильфо))))
15. alexer 1028 23.09.19 11:10 Сейчас в теме
(12) я уже начинаю сильно жалеть, что подняли пенсионный возраст )
21. chg 23.09.19 13:49 Сейчас в теме
(15)ну говорят, что мы стали жить лучше и дольше)))))
4. SlavaKron 23.09.19 09:37 Сейчас в теме
(1) Просто мимо проходил. Во-первых, намного меньше размер, во-вторых, удобно обновлять актуальными данными тестовую базу (базу разработки).
5. nomad_irk 76 23.09.19 09:44 Сейчас в теме
(4)ээээ.....вы всерьез считаете, что для актуализации тестовой базы данными рабочей в средине рабочего дня будет удобнее именно через выгрузку рабочей БД в *.dt?
Бэкап средствами MS SQL может быть в сжатом виде, его размер мало чем отличается от размера *.dt при этом может быть развернут всегда в отличии от разворачивания БД из *.dt.
dammit666; Fox-trot; +2 Ответить
6. SlavaKron 23.09.19 09:55 Сейчас в теме
(5)
при этом может быть развернут всегда в отличии от разворачивания БД из *.dt

Ровно наоборот.
7. nomad_irk 76 23.09.19 09:58 Сейчас в теме
(6)При размере БД в 100Гб, скажем, какова вероятность разворачивания БД из *.dt? Время, затраченное на разворачивание из *.dt будет в разы больше.
dendodor; +1 Ответить
13. ansh15 23.09.19 10:57 Сейчас в теме
(7)
При размере БД в 100Гб, скажем, какова вероятность разворачивания БД из *.dt?

Судя по этому фото, 100%, и там размер базы не 100 ГБ(гораздо больше).
Если база размером в 100 ГБ не выгружается в dt, то с большой долей вероятности можно говорить о том, что имеется (значительная) нехватка вычислительных ресурсов. Проще говоря, сервер не соответствует выполняемой на нем задаче. И программное обеспечение тоже желательно все 64-х разрядное(включая клиента).
14. nomad_irk 76 23.09.19 11:01 Сейчас в теме
(13)Я уже сказал в (8) о по-сути единственном случае, когда выгрузка в *.dt оправдана и вы как раз привели именно этот случай.
Много вы раз в день этой процедурой занимаетесь, чтобы скрипты на PS вам каким-то образом облегчили ваш труд? :)
19. ansh15 23.09.19 11:45 Сейчас в теме
(14) Еще есть разнообразные случаи, когда "злобный" админ не дает бедному специалисту 1С даже на сервер снаружи взглянуть, а уж пустить во внутрь -так и подавно :) А обновлять конфигурацию на 10 релизов вперед, все-таки, надо...
При всех недостатках выгрузки в *.dt, она может быть единственным способом.
PS-скриптами не пользуюсь, пользуюсь скриптами на bash(для ras/rac). Недавно(для себя) обнаружил, что в *.dt можно выгружать/загружать без толстого клиента в режиме конфигуратора, при помощи утилиты ibcmd(заметка), иногда может пригодиться.
То, что бэкапы средствами СУБД являются наиболее приемлемыми, сомнению, конечно, не подвергается.
23. user1274438 23.09.19 17:03 Сейчас в теме
(13) На фото изображен человек, который, по моему мнению, очень мало сталкивался с битыми dt-шниками, а также, похоже, плохо разбирается в mssql и пиарит какое-то линуксовое поделие.
24. ansh15 23.09.19 19:01 Сейчас в теме
(23)На слайде(на фото) приводится информация о том, что выгрузка/загрузка в *.dt может проводиться для баз размеров, гораздо больших, чем 100 ГБ.
Какой-либо иной информации я там не увидел.
26. user1274438 24.09.19 09:31 Сейчас в теме
16. SlavaKron 23.09.19 11:20 Сейчас в теме
(7) Разработку я веду в файловой, как прикажите её актуализировать из БАКа?
17. nomad_irk 76 23.09.19 11:30 Сейчас в теме
(16)Тогда вам *.1CD (пожатый архиватором) нужно...
18. SlavaKron 23.09.19 11:38 Сейчас в теме
(17) Так рабочая же на скуле, откуда я актуальный 1СД возьму)
20. nomad_irk 76 23.09.19 11:56 Сейчас в теме
9. chg 23.09.19 10:42 Сейчас в теме
(6)Отличия DT от BAK, выгони пользователей, в зависимости от размера базы дождись выгрузки, с SQL таких костылей нет, так неправда ваша.
3. user618912_redgad 14 23.09.19 09:33 Сейчас в теме
На слова "Так всегда было", "Сложилось исторически" и т.п. люблю приводить пример:

Опыт №1
Клетка. В ней 5 обезьян. К потолку подвязана связка бананов. Под ними лестница. Проголодавшись, одна из обезьян подошла к лестнице с явными намерениями достать банан. Как только она дотронулась до лестницы, открывается кран и ВСЕХ обезьян обливают очень холодной водой. Проходит немного времени, и другая обезьяна пытается полакомиться бананом. Та же ледяная вода. Третья обезьяна, одурев от голода, пытается достать банан, но остальные хватают ее, не желая холодного душа. А теперь уберите одну обезьяну из клетки и замените ее новой обезьяной. Она сразу же, заметив бананы, пытается их достать. К своему ужасу, она видит злые морды остальных обезьян, атакующих ее. После третьей попытки она поняла, что достать банан ей не удастся. Теперь уберите из клетки еще одну из первоначальных пяти обезьян и запустите туда новенькую. Как только она попыталась достать банан, все обезьяны дружно атаковали ее, причем и та, которую заменили первой (да еще с энтузиазмом). И так, постепенно заменяя всех обезьян, вы придете к ситуации, когда в клетке окажутся 5 обезьян, которых водой вообще не поливали, но которые не позволят никому достать банан.

Опыт №2
В пустой комнате 5 шимпанзе. В центре комнаты лестница, сверху лежит банан. Когда первая обезьяна замечает банан, она лезет за ним по лестнице, чтобы схватить и съесть. Но как только она приближается к фрукту, с потолка на нее обрушивается струя ледяной воды и сбивает вниз. Другие обезьяны тоже пытаются забраться на лестницу. Всех сбивает вниз струя холодной воды, и они отказываются от попыток взять банан. Воду выключают, а одну вымокшую обезьяну заменяют новой, сухой. Не успевает она войти, старые пытаются не дать ей забраться на лестницу, чтобы ее тоже не окатило водой. Новая обезьяна не понимает, в чем дело. Она видит только группу собратьев, мешающих ей взять вкусный фрукт. Тогда она пытается прорваться силой и дерется с теми, кто не хочет ее пропускать. Но она одна, и четыре прежних обезьяны берут верх. Другую промокшую обезьяну заменяют новой сухой. Как только она появляется, предшественник, подумавший, что именно так нужно встречать новичков, набрасывается на нее и колотит. Новичок даже не успевает заметить лестницу и банан, он уже вне игры. Затем третью, четвертую и пятую вымокших обезьян заменяют по очереди сухими. Каждый раз, как только новички появляются, их колотят. Прием становится с каждым разом все более жестоким. Обезьяны все вместе бросаются на новичка, как будто стараясь улучшить ритуальный прием. В финале на лестнице по прежнему лежит банан, но пять сухих обезьян оглушены постоянной дракой и даже не думают приблизиться к фрукту. Их единственной заботой является следить за дверью, откуда появится новая обезьяна, чтобы скорее напасть на нее.

Источник: Эксперимент с обезьянами: формирование общества — Фактрум
klaus38; user1274438; nomad_irk; +3 Ответить
8. nomad_irk 76 23.09.19 10:33 Сейчас в теме
На мой взгляд, выгрузка в *.dt оправдана ровно в 2-х случаях:
1. миграция БД между разными СУБД
2. передача кому-то БД. Что в общем случае будет п.1.
10. chg 23.09.19 10:43 Сейчас в теме
(8)Миграция да, передача, ну тут на усмотрение принимающей стороны и им иной раз проще bak получить.
11. nomad_irk 76 23.09.19 10:45 Сейчас в теме
(10)Согласен, поэтому и дополнил про общий случай.
22. user1274438 23.09.19 16:59 Сейчас в теме
Автору уже сообщили о том, что даже фирма 1С официально сообщает о том, что файлы dt не рекомендуется использовать для создания резервных копий? Ибо воистину!

"Администрирование" Глава 6
6.7. Выгрузка информационной базы данных в файл
...
Не рекомендуется использовать данный способ для создания резервной копии информационной базы по следующим причинам:
...
Аминь!

P.S.
В зависимости от свежести документации разделы могут отличаться.
25. Fox-trot 163 23.09.19 20:28 Сейчас в теме
документация надо читать, когда уже ничего не работает
27. vano6666 27.01.21 22:14 Сейчас в теме
а я так понимаю есть и скрипт загрузки ?
и еще бы и базу создавал .... вот уж точно миграция )
Оставьте свое сообщение