Скрипт для автоматического применения требований назначения функциональности

15.02.22

База данных - Журнал регистрации

Под конкретную задачу потребовалось сделать скрипт, который подключается на сервере приложений 1С к предварительно созданным службам RAS, обходит все кластера 1С на этом же сервере и применяет требования назначения функциональности (далее ТНФ).

Синопсис:

Есть два сервера приложений 1С на Windows, на каждом сервере по несколько служб 1С, на каждой службе 1С по одному локальному кластеру; между двумя серверами локальные кластеры собраны в кластеры из двух центральных серверов, уровень отказоустойчивости 0.

Требование:

Поставлена задача, чтобы журнал регистрации писался только на первом сервере приложений. Все просто. И как было бы круто просто настроить на первом сервере ТНФ «Сервис журналов регистрации» с типом «Назначать», а на втором это же требование с типом «Не назначать». Но если первый сервер будет выключен, то это ТНФ убьет всю отказоустойчивость, пользователи не смогут зайти на второй сервер т.к. журнал регистрации на него запрещено писать.

Кажется, опять все просто, на первом сервере для ТНФ «Сервис журналов регистрации» нужно поставить тип «Назначать», приоритет 1; на втором сервере для ТНФ «Сервис журналов регистрации» нужно поставить тип «Назначать», приоритет 0. Тогда посте применения ТНФ журнал регистрации пишется на первый сервер, а если первый сервер выключить, то начинает писаться на второй. НО когда первый сервер будет включен то журнал регистрации так и будет писаться на второй сервер, пока снова не применить ТНФ. Вот этот момент отслеживать и тыкать руками применение не очень-то прикольно, поэтому был создан скрипт на PowerShell, который, по расписанию в планировщике Windows, обходит все кластера 1С на сервере и применяет ТНФ.

При желании скрипт можно легко переделать на применение ТНФ не для всех кластеров сервера, а для конкретного. Так же легко изменить его назначение, заменив код применяющий ТНФ на любые другие команды сервера администрирования(rac.exe –help).

Важно: 1. писал выше, но повторюсь, чтобы скрипт работал, нужно чтобы для каждой службы 1С была создана служба RAS. Как создавать службу RAS, что это такое и как ей пользоваться есть статья //infostart.ru/1c/articles/810752/, но если потребуются пояснения, примеры и т.п. то пишите в комментарии.

2. Скрипт нужно добавить в планировщик.

Всем спасибо!

Скрипт:

cls
&chcp 1251
$srv_name = Get-WmiObject -Class win32_ComputerSystem | select name
$hostras = $srv_name.name
$rasservers = gwmi win32_service -Filter "PathName like '%ras.exe%'" | select PathName #получить все службы RAS
#получить параметры служб RAS с помощью регулярных выражений
$rasmas = $rasservers | select `
    "-",
    @{N="RasPort";E={[regex]::match($_.PathName,"(?<=--port=)\d+").value}},
    @{N="BinaryPath";E={[regex]::match($_.PathName,"^.*ras.exe").value -replace "`"",""}},
    @{N="RacBin";E={([regex]::match($_.PathName,"^.*ras.exe").value -replace "`"","" -replace "ras.exe", "rac.exe")}},
    @{N="HostPort";E={("$hostras`:"+[regex]::match($_.PathName,"(?<=--port=)\d+").value)}},
    #получить id кластеров
    @{N="Clusters";E={[regex]::Matches((&([regex]::match($_.PathName,"^.*ras.exe").value -replace "`"","" -replace "ras.exe", "rac.exe") ('cluster') ("$hostras`:"+[regex]::match($_.PathName,"(?<=--port=)\d+").value) ("list")|out-string),"[0-9a-fA-F]{8}[-][0-9a-fA-F]{4}[-][0-9a-fA-F]{4}[-][0-9a-fA-F]{4}[-][0-9a-fA-F]{12}")}},
    @{N="PathName";E={$_.PathName}}
$rasmas
#обход полученных кластеров ras
foreach($ras in $rasmas){
    foreach($clust in $ras.clusters){
        $adr = ""; $adr = $ras.HostPort
        $cluster = ""; $cluster = "--cluster="+$clust.Value
        $adr
        $cluster
        #применение ТНФ
       &$ras.RacBin 'rule' $adr $cluster 'apply' --full
    }
}

скрипт ТНФ требования назначения функциональности

См. также

Журнал регистрации Мониторинг Системный администратор Программист Бизнес-аналитик Руководитель проекта Платформа 1С v8.3 Платные (руб)

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

9000 руб.

28.08.2019    32789    19    21    

71

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

Конфигурация LogiCH эффективно решает проблему хранения и анализа записей журналов регистрации. Разработка использует столбцовую СУБД ClickHouse, одну из самых быстрых Big Data OLAP СУБД. Любой анализ журнала можно выполнить в одном отчете, в котором доступны все возможности СКД с учетом ограничений RLS. Количество подключаемых баз не ограничено и не влияет на скорость построения анализа.

5000 руб.

28.11.2018    20321    18    6    

40

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

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал регистрации изменений документов в 1С для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма «История изменений». Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

21600 руб.

15.05.2017    43444    12    24    

40

Инструменты администратора БД Журнал регистрации Системный администратор Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Внешняя обработка для регламентного сокращения журнала регистрации для конфигураций на базе БСП и платформы 8.3.20+

1 стартмани

29.12.2023    1894    27    dima_gsv    3    

13

Журнал регистрации Мониторинг Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

19.11.2023    1234    5    AlexSTAL    0    

8

Мониторинг Журнал регистрации Технологический журнал Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    4227    9    AlexSTAL    0    

47

Журнал регистрации Инструменты администратора БД Мониторинг Мессенджеры и боты Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х Абонемент ($m)

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

3 стартмани

26.09.2023    2452    14    doom2good    10    

14

Журнал регистрации Статистика базы данных HighLoad оптимизация Конфигурации 1cv8 Абонемент ($m)

Удобный отчет по выполнению фоновых заданий в 1С с разбивкой по разным критериям, например по срокам, в какой последовательности, выполнение дольше всех, сколько одновременно и так далее.

5 стартмани

04.09.2023    1161    11    Maxiko    0    

8
Оставьте свое сообщение