Примеры приготовления ibsrv (автономный сервер)
База данных - Администрирование СУБД
Зачем нужен автономный сервер
В этой статье собраны примеры работы с ibsrv, которые показывают пользу автономного сервера на реальных задачах. Он работает с файловыми базами и СУБД, публикует базу через встроенный HTTP-сервер и принимает прямые подключения.
Перед началом
ibsrv.exe находится в каталоге bin нужной версии платформы:
После имени исполняемого файла передаются параметры базы, служебных каталогов, шлюзов и отладки:
Основные группы параметров
| Что настраиваем | Основные параметры | Для чего нужны |
|---|---|---|
| Файловая база | --database-path |
Каталог с файлом 1Cv8.1CD |
| База в СУБД | --dbms, --database-server, --database-name |
Подключение к существующей базе данных |
| Экземпляр сервера | --data |
Служебные данные: журнал и данные сеансов |
| Имя базы | --name |
Имя базы для клиентов |
| HTTP-шлюз | --http-address, --http-port, --http-base |
Веб-клиент и подключение по HTTP |
| Прямой шлюз | --direct-regport, --direct-range |
Тонкий клиент и Конфигуратор по TCP/IP |
| SSH-шлюз | --ssh-address, --ssh-port, --ssh-host-key |
Удалённое управление через ibcmd |
| Отладка | --debug, --debug-address, --debug-port |
Подключение отладчика |
Проверить доступные параметры своей версии можно встроенной справкой:
ibsrv обслуживает одну информационную базу. Эту же базу нельзя одновременно обслуживать кластером или открывать прямым файловым подключением.- Для разных экземпляров используйте отдельные каталоги
--dataи непересекающиеся сетевые порты. --database-pathуказывает каталог файловой базы, а не сам файл1Cv8.1CD.- Если путь базы не указан, сервер ищет её в подкаталоге
db-dataкаталога--data.
Настройки сервера в YAML
Параметры подключения и шлюзов можно хранить в YAML. Это удобно, когда команда разрастается на несколько экранов или один запуск нужно воспроизводить на разных стендах.
Базовый YAML для существующей файловой базы создаёт утилита ibcmd:
Каталог D:\Standalone\Demo должен существовать до создания файла. После этого сервер запускается короткой командой:
База будет доступна по адресу http://localhost:8314/demo. Команда server config init формирует настройки, но не создаёт информационную базу.
Служебные пути --data, --temp, --log-data и другие задаются при запуске. Параметры командной строки имеют приоритет над YAML. Путь к файлу каждый раз передаётся через --config.
Запуск с файловой базой
Запустить существующую базу
Основной и самый прозрачный вариант запуска:
База находится в D:\Bases\Demo\1Cv8.1CD, служебные данные записываются в D:\Standalone\Demo. Имя demo понадобится клиентам при прямом подключении.
Создать файловую базу из CF и сразу запустить
Сначала ibcmd создаёт базу и применяет конфигурацию, затем ibsrv начинает её обслуживать:
В D:\Bases\NewDemo до первой команды не должно быть существующей базы. Параметр --apply относится к ibcmd, а имя для клиентов задаётся параметром --name при запуске ibsrv.
HTTP-публикация
У ibsrv есть встроенный HTTP-сервер. Для простой публикации не нужны IIS или Apache. Значения по умолчанию: интерфейс localhost, порт 8314, путь /.
--enable-http-gate Включает приём HTTP-подключений: веб-клиент, тонкий клиент по /WS и опубликованные сервисы.Опубликовать базу только на этом компьютере
При --http-address=localhost база доступна по HTTP только локально. С других компьютеров подключиться к ней не получится.
Веб-клиент будет доступен по адресу http://localhost:8080/demo.
Опубликовать базу в локальной сети
Укажите IP сетевого интерфейса компьютера, на котором работает сервер:
Адрес для клиентов: http://192.168.1.150:8080/demo. Входящие подключения к порту 8080 должны быть разрешены в фаерволе.
Слушать все сетевые интерфейсы
Клиенты используют реальный IP или DNS-имя сервера, например http://srv-1c:8314/demo. Значение any указывается только в настройках и не подставляется в URL.
ibsrv ставят обратный прокси, который принимает HTTPS и передаёт запросы на HTTP-порт автономного сервера.Несколько публикаций одной базы, OData, веб-сервисы и HTTP-сервисы настраиваются через YAML. Подробная структура файла описана на ИТС.
Запуск с базой в СУБД
ibsrv подключается к уже существующей базе 1С в СУБД. Он не регистрирует её в кластере и не создаёт автоматически. Для создания используйте ibcmd infobase create.
Параметры --database-user и --database-password содержат учётные данные СУБД, а не пользователя информационной базы 1С.
Microsoft SQL Server
--database-name задаёт физическое имя базы в SQL Server, а --name задаёт имя для клиентских подключений. Они могут различаться. Microsoft SQL Server поддерживается автономным сервером под Windows.
PostgreSQL с HTTP-публикацией
База будет опубликована по адресу http://192.168.1.150:8080/demo.
ibsrv использует для подключения к СУБД.Передача пароля СУБД через stdin
Параметр --request-database-password заставляет сервер прочитать пароль из стандартного потока ввода, поэтому его не нужно оставлять среди аргументов процесса.
Ввести пароль после запуска
После запуска введите пароль и нажмите Enter. Отдельное приглашение не выводится: консоль просто ждёт ввод без подсказки.
Прочитать пароль из файла
sqlpwd.txt. Ограничьте права доступа к этому файлу.Шлюзы и подключение клиентов
Автономный сервер использует три основных шлюза:
| Шлюз | Для чего нужен |
|---|---|
| HTTP | Веб-клиент, тонкий клиент по HTTP и публикация сервисов |
| Прямой TCP/IP | Тонкий клиент и Конфигуратор |
| SSH | Удалённое управление через ibcmd и операции SSH/SFTP |
По документации шлюзы включены по умолчанию. Для предсказуемого и безопасного запуска лучше явно включать нужные и отключать остальные.
Оставить только HTTP
Тонкий клиент подключается по URL публикации:
По тому же адресу базу можно открыть веб-клиентом в браузере.
Оставить только прямое подключение TCP/IP
Подключение тонкого клиента и Конфигуратора на том же компьютере:
Имя после \ должно совпадать со значением --name. Порт регистрации по умолчанию равен 1541, диапазон дополнительных портов равен 1560:1591. Толстый клиент не поддерживает прямое подключение к автономному серверу по TCP/IP.
Включить SSH-шлюз
Для SSH нужен существующий закрытый ключ хоста:
ibcmd сможет обратиться к серверу по адресу ssh://192.168.1.150:8282. Значения SSH по умолчанию в версии 8.3.27.2074: адрес 127.0.0.1, порт 1543, ключ %USERPROFILE%\.ssh\id_rsa.
Несколько экземпляров IBSRV
Для каждой базы запускается отдельный процесс. У процессов должны различаться базы, каталоги данных и все занятые сетевые порты.
Бухгалтерская база
База розницы
Адреса публикаций: http://localhost:8314/accounting и http://localhost:8315/retail. Разные процессы ibsrv не позволяют совместно использовать один и тот же порт, поэтому --http-portразличаются.
--direct-regport и непересекающиеся --direct-range. Также должны различаться --ssh-port, --debug-port и --monitor-port.Отладка и Конфигуратор
Включить отладку по TCP/IP
Этот вариант используется вместе с прямым шлюзом.
Включить отладку по HTTP
Сервер использует только один протокол отладки одновременно. Явное значение tcp или http делает запуск понятнее.
Подключить внешний сервер отладки
Внешний сервер отладки настраивается отдельно. В версии 8.3.27.2074 используется параметр --debug-server-url.
Включить расширенные возможности Конфигуратора
Параметр включает дополнительные возможности Конфигуратора, например запись конфигураций мобильных приложений в файл. Для отключения используйте --disable-extended-designer-features.
Служебные каталоги
По умолчанию служебные данные находятся внутри --data. Их можно разнести по отдельным дискам, чтобы журнал регистрации и временные данные не конкурировали за одно хранилище.
Разнести временные файлы, сеансы и журнал
--temp задаёт временный каталог информационной базы. Временные файлы процесса ibsrv используют временный каталог пользователя операционной системы, который можно изменить переменной среды TEMP.
Разнести остальные служебные данные
--ftext-data и --ftext2-data хранят индексы разных версий полнотекстового поиска. В справке 8.3.27.2074 хранилище двоичных данных задаётся параметром --bin-data-strg.
Запуск службой Windows
--service переводит процесс в режим службы, но не регистрирует его в Windows. Создание, запуск и удаление службы выполняются системной утилитой sc.exe.
Подготовить командную строку службы
Пользователь службы должен иметь доступ к платформе, базе и всем служебным каталогам.
Зарегистрировать и запустить службу
Команды выполняются в CMD с правами администратора:
После binPath=, start=, obj= и других имён параметров sc.exe нужен пробел. Последовательность \" сохраняет кавычки внутри командной строки службы.
Остановить и удалить службу
Перед удалением дождитесь остановки процесса. Для нескольких служб используйте разные имена, базы, каталоги --data и сетевые порты.
Запуск в Linux
В Linux исполняемый файл называется ibsrv, без расширения .exe. В примерах предполагается, что каталог с ним добавлен в PATH. Перенос строки в shell выполняется символом \.
Параметры конкретного Linux-релиза проверяйте командой ibsrv help. Например, --daemon отсутствует в справке Windows 8.3.27.2074, хотя описан для Linux на ИТС.
Запустить файловую базу в терминале
Запустить в режиме демона
Памятка по параметрам
| Параметр | Что задаёт |
|---|---|
help, --version |
Справка и версия установленной утилиты |
--config |
YAML с настройками базы и шлюзов |
--data |
Основной каталог служебных данных экземпляра |
--database-path |
Каталог файловой базы с 1Cv8.1CD |
--name |
Имя информационной базы для прямого подключения |
--dbms |
Тип СУБД: mssqlserver или postgresql |
--database-server, --database-name |
Сервер СУБД и физическое имя базы |
--database-user, --database-password |
Учётные данные СУБД |
--request-database-password |
Чтение пароля СУБД из stdin |
--http-address, --http-port, --http-base |
Интерфейс, порт и путь HTTP-публикации |
--enable-http-gate, --disable-http-gate |
Включение и отключение приёма HTTP-соединений |
--direct-regport, --direct-range |
Порт регистрации и диапазон прямого подключения |
--enable-direct-gate, --disable-direct-gate |
Включение и отключение прямого TCP/IP-шлюза |
--ssh-address, --ssh-port, --ssh-host-key |
Интерфейс, порт и ключ хоста SSH |
--enable-ssh-gate, --disable-ssh-gate |
Включение и отключение SSH-шлюза |
--debug=none, --debug=tcp, --debug=http, --debug=server |
Отключение отладки или выбор её режима |
--debug-address, --debug-port, --debug-password |
Настройки HTTP-сервера отладки |
--debug-server-url |
URL внешнего сервера отладки |
--monitor-address, --monitor-port, --monitor-base |
Настройки шлюза монитора производительности |
--enable-extended-designer-features |
Расширенные возможности Конфигуратора |
--temp, --users-data, --session-data, --log-data |
Основные служебные каталоги |
--ftext-data, --ftext2-data |
Каталоги индексов полнотекстового поиска |
--openid-data, --bin-data-strg, --clnt-notif-data |
Каталоги OpenID, двоичных данных и уведомлений |
--service |
Режим службы Windows |
--daemon |
Режим демона в поддерживающем его Linux-релизе |
Куда смотреть дальше
Для создания базы, загрузки CF или DT, работы с расширениями и администрирования запущенного сервера используйте ibcmd. Готовые команды собраны в статье «Примеры приготовления IBCMD».
ibsrv остаётся работать и обслуживает подключения, а ibcmd выполняет одну операцию и завершается.
Примеры приготовления IBSRV · 1С:Предприятие 8.3.27
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.