Утилиты RAS/RAC (1С:Предприятие): Полный гайд и примеры консольных команд
Архитектура RAS/RAC и необходимость автоматизации
Для администрирования кластера серверов 1С (создание баз, принудительное отключение пользователей, очистка кэша) традиционно используется графическая MMC-консоль (только для Windows). Однако в гетерогенных средах (серверы на Linux / CentOS / Ubuntu) или для интеграции с системами CI/CD (Jenkins, GitLab), скриптами бэкапов и Zabbix-мониторингом необходим интерфейс командной строки (CLI). Для этого в платформе 1С реализованы две компоненты: RAS (Remote Administration Server — служба/демон) и RAC (Remote Administration Client — консольная утилита). Бизнес-риски: невозможность автоматизировать регламентные операции, зависимость администраторов от графического интерфейса Windows.
Архитектурное взаимодействие
| Компонента | Процесс | Порт (по умолчанию) | Назначение |
|---|---|---|---|
| Менеджер кластера | rmngr | 1541 | Ядро кластера, управляет базами и сеансами. |
| Служба RAS | ras | 1545 | Слушает команды извне и транслирует их в менеджер кластера (rmngr). |
| Утилита RAC | rac | - (Исходящий) | Клиентское приложение (exe/bin), отправляет команды на порт RAS (1545). |
Алгоритм работы с RAS и примеры скриптов RAC
Сценарий 1: Запуск службы RAS (Серверная часть)
RAS должен быть запущен на сервере, где работает Центральный менеджер кластера (rmngr).
Запуск RAS на ОС Windows как службы
sc create "1C_RAS_8.3" binPath= "C:\Program Files\1cv8\8.3.22.1709\bin\ras.exe cluster --service --port=1545" start= auto
net start 1C_RAS_8.3
Запуск RAS на ОС Linux (Systemd)
systemctl enable srv1cv8-ras-8.3.22.1709.service
systemctl start srv1cv8-ras-8.3.22.1709.serviceСценарий 2: Базовые команды утилиты RAC (Клиент)
Утилита rac может запускаться с любой машины в сети (Даже без установленного сервера 1С, достаточно скопировать папку bin).
1. Получение ID кластера (Необходим для большинства команд)
rac cluster list --cluster-admin=admin --cluster-pwd=pass host_name:1545
2. Получение списка информационных баз в кластере
rac infobase --cluster= summary list --cluster-admin=admin --cluster-pwd=pass host_name:1545
3. Принудительное завершение конкретного сеанса (Kick user)
rac session --cluster= terminate --session= --cluster-admin=admin --cluster-pwd=pass host_name:1545 Сценарий 3: Автоматизация блокировки базы (Скрипт для Бэкапа)
Блокировка начала сеансов и фоновых заданий перед SQL-бэкапом
rac infobase --cluster= update --infobase= --sessions-deny=on --scheduled-jobs-deny=on --denied-message="Техническое обслуживание" --infobase-user=Admin --infobase-pwd=Pass host_name:1545 Типовые ошибки администраторов
- Путаница между портами 1541 и 1545: Утилита RAC обязана обращаться к порту демона RAS (1545), а не к порту самого кластера 1541. Попытка выполнить
rac ... localhost:1541приведет к ошибке таймаута или отказа соединения. - Забытые параметры авторизации: Большинство команд, изменяющих состояние (update, terminate, drop), требуют передачи двух уровней прав:
--cluster-admin(Администратор кластера) и, если команда применяется к базе,--infobase-user(Администратор самой базы данных 1С).
DevOps-инженеры ITSTM разработают для вас автоматизированные CI/CD пайплайны. Мы внедрим автообновление конфигураций через конфигуратор (batch mode) и RAS/RAC, настроим мониторинг сеансов Zabbix/Prometheus и обеспечим Zero-Downtime деплой для ваших баз.
Частые вопросы (FAQ)
Почему при выполнении команды rac выдает 'Ошибка связи: соединение разорвано'?
Убедитесь, что служба RAS запущена (процесс ras.exe / ras). Также проверьте фаервол (iptables / Windows Firewall): порт 1545 должен быть открыт для входящих TCP-соединений.
Можно ли через RAC снять монопольную блокировку с базы?
Да. Нужно выполнить команду 'rac infobase update' с параметром '--sessions-deny=off'. Это аналогично снятию галочки 'Блокировка начала сеансов' в консоли администрирования.
Нужно ли запускать RAS на каждом сервере в кластере?
Нет. RAS достаточно запустить только на одном сервере — там, где активен Центральный менеджер кластера (rmngr). RAS сам свяжется с rmngr, а тот уже разошлет команды по всем рабочим серверам (rphost).
Как сбросить пароль пользователя базы 1С через RAC?
Никак. RAC управляет инфраструктурой кластера (базы, сеансы, лицензии). Пользователи информационной базы, их права и пароли — это сущности самой конфигурации 1С. Для управления ими нужно использовать встроенный язык 1С (объект ПользователиИнформационнойБазы).