Запуск двух экземпляров сервера 1С:Предприятие 8 на одном компьютере
И до нашего предприятия докатилась необходимость установки, настройки и запуска 1С:Предприятия версии 8.3, работающего с последней конфигурацией 3.0… Вот тут и начались “танцы с бубнами”. Как оказалось, совместно на одном компьютере две версии серверной части 1С:Предприятие работать не могут, т.к. по умолчанию обе будут использовать одни и те же порты. Вот почему бы разработчикам, предвидя подобную ситуацию, не добавить такую опцию при настройки инсталляции своего программного продукта, как диапазон рабочих портов?!! |
Предыстория… В нашей компании успешно работает 1С:Предприятие версии 8.2, в которой заведено порядка 100 интенсивно используемых бухгалтерских баз. Под это дело выделен отдельный сервер с довольно внушительными характеристиками, т.к. в процессе эксплуатации выяснилось, что связка 1С:Предприятие 8.2 + MS SQL 2005 очень требовательны к таким ресурсам “железа”, как жесткие диски, процессор, а самое главное – количество оперативной памяти. Стоимость подобного сервера для нас превысило 250 тысяч рублей (не считая лицензий как на ОС, так и на саму 1С).
Выделять отдельно “железо” под 1С:Предприятие версии 8.3 посчитали делом неразумным, к тому же платить еще порядка 100 тысяч рублей за второй комплект ключей для сервера 1С, ну очень накладно! Попытка установить “в лоб” 1С:Предприятие версии 8.3 привело к тому, что был потерян кластер с уже существующими базами. Вот тут-то и вскрылись особенности установки и запуска двух серверных версий 1С:Предприятия на одном компьютере.
Программа установки 1С:Предприятия 8.2 и 8.3 настраивает программное обеспечение на использование своих стандартных портов: 1540 (используемый агентом сервера), 1541 (используемый менеджером кластера), 1560-1591 (диапазон портов, используемый для рабочих процессов). Поэтому, если сервер 1С:Предприятие 8.3 должен работать одновременно с сервером 1С:Предприятия 8.2, то первому необходимо указать порты отличные от тех, что уже использует работающий экземпляр сервера предыдущей версии.
На компьютере с уже установленным сервером 1С:Предприятия версии 8.2 зарегистрирован и запущен сервис “Агент сервера 1С:Предприятия 8.2”, уже использующий указанные выше стандартные порты. Если вы установили “рядом” сервер 1С:Предприятие 8.3, то запуск его сервиса “Агент сервера 1С:Предприятия 8.3” завершится аварийно, т.к. он попытается использовать уже “занятые” порты. Чтобы избежать этого, необходимо выполнить следующее.
(Все описанное ниже справедливо для Windows Server 2008 R2 Enterprise (и Standart) 64 bit + SP1 и 32-х разрядных серверных версий 1С:Предприятие 8.2 и 8.3).
1С:Предприятие 8.2 (версия 8.2.19.90) мной устанавливались как сервис Windows с правами для запуска от имени существующего локального пользователя “Администратор”.
По окончании установки в окне Диспетчер сервера -> Конфигурация -> Службы мы видим запущенную службу “Агент сервера 1С:Предприятия 8.2”:
запущенную с параметрами:
где поле “Исполняемый файл” имеет настройку:
C:\Program Files (x86)\1cv82\8.2.19.90\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files (x86)\1cv82\srvinfo"
Сервер 1С:Предприятия 8.3 (версия 8.3.4.437) мной устанавливался аналогичным образом:
Однако, как мы видим в окне Диспетчер сервера -> Конфигурация -> Службы, служба “Агент сервера 1С:Предприятия 8.3” не стартовала:
Теперь нам надо открыть окно командной строки cmd и перейти в каталог bin установленной серверной версии 1С:Предприятия 8.3 и попытаться удалить регистрацию сервиса “Агент сервера 1С:Предприятия 8.3” командой ragent.exe -rmsrvc
:
C:\Users\администратор>cd C:\Program Files (x86)\1cv8\8.3.4.437\bin C:\Program Files (x86)\1cv8\8.3.4.437\bin>ragent.exe -rmsrvc Error! ControlService error!
У меня выскочила ошибка Error! ControlService error!
, что в принципе ожидаемо, т.к. сервис должным образом не зарегистрировался в системе. Но на самом деле, он должен удалиться. В окне Диспетчер сервера -> Конфигурация -> Службы вы его больше не увидите.
Теперь вам надо произвести повторную регистрацию данного сервера, но при этом указать порты отличные от тех, которые уже использует агент 1С:Предприятия 8.2. В моем случае команда будет иметь вид:
C:\Program Files (x86)\1cv8\8.3.4.437\bin>ragent.exe -instsrvc -port 2540 -regport 2541 -range 2560:2591 -d "C:\Program Files (x86)\1cv8\srvinfo" -usr .\Администратор -pwd ********
— где:
- -port 2540 — порт, на котором будет работать агент сервера 1С:Предприятие версии 8.3;
- -regport 2541 — порт, через который будет осуществляться администрирование кластера сервера 1С:Предприятие версии 8.3;
- -range 2560:2591 — диапазон портов для рабочих процессов;
- -в “C:\Program Files (x86)\1cv8\srvinfo” — каталог для хранения информации о новом создаваемом кластере сервера 1С:Предприятие версии 8.3;
- -usr .\Администратор — пользователь, от имени которого будет осуществлен запуск агента сервера 1С:Предприятие версии 8.3;
- -pwd ******** — пароль для указанного пользователя (введите свой).
После этого вы вновь увидите сервис “Агент сервера 1С:Предприятия 8.3” в окне Диспетчер сервера -> Конфигурация -> Службы. Вам осталось только запустить его командой ragent.exe -start
:
C:\Program Files (x86)\1cv8\8.3.4.437\bin>ragent.exe -start
В окне Диспетчер сервера -> Конфигурация -> Службы мы видим службу “Агент сервера 1С:Предприятия 8.3”:
запущенную с параметрами:
где поле “Исполняемый файл” имеет настройку:
C:\Program Files (x86)\1cv8\8.3.4.437\bin\ragent.exe" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d "C:\Program Files (x86)\1cv8\srvinfo"
А теперь самое интересное: вам придется проделывать данную операцию каждый раз, когда возникнет необходимость обновить версию сервера 1С:Предприятия 8.3! “Браво”, разработчики…
Теперь немного о том, каким образом жить с указанной связкой. Необходимости запускать саму программу 1С:Предприятия старой версией (из папки C:\Program Files (x86)\1cv82\common
) больше нет. При установке 1С:Предприятия версии 8.3 ярлык на рабочем столе автоматически перезапишется на запуск программы из папки C:\Program Files (x86)\1cv8\common
. Если вы будете открывать бухгалтерскую базу, работающую на сервере версии 8.2, она автоматически откроется в нужной версии тонкого клиента.
Шаблоны для создания баз (бухгалтерских или ЗИК) помещаются по умолчанию в каталог пользователя, от имени которого вы запустили их установку. Если вы делаете это от имени администратора, то найдете их по пути C:\Users\администратор\AppData\Roaming\1C\1cv8\tmplts
. Если вы захотите добавить новую базу на основе установленного шаблона, тонкий клиент версии 8.3 увидит их все:
Теперь, если вам необходимо прописать базу версии 8.3, то вам необходимо будет указывать в поле “Кластер серверов 1С:Предприятия” компьютер, с установленным сервером 1С версии 8.3 и через двоеточие порт менеджера кластера, который вы указали при регистрации агента сервера 1С версии 8.3. В моем случае – это 2541:
При добавлении в список бухгалтерских баз новой, находящейся на сервере предприятия под управлением 1С:Предприятие версии 8.3 также необходимо указывать имя сервера, а через двоеточие – порт, используемый менеджером кластера:
Необходимость производить регистрацию утилиты для администрирование кластера обоих сервером 1С (как версии 8.2, так и 8.3) после каждой установки/обновления сохраняется.
Теперь перейдем к администрированию кластеров под управлением различных версий серверов 1С:Предприятие на одном компьютере. Откройте в проводнике папку по пути C:\Program Files (x86)\1cv8\common
, и создайте на рабочем столе ярлык для консоли администрирование кластера версии 8.3 (ярлык лучше сразу переименовать соответствующим образом, например 1CV8.3):
Таким же образом, откройте в проводнике папку по пути C:\Program Files (x86)\1cv82\common
, и создайте на рабочем столе ярлык для консоли администрирование кластера версии 8.2 (ярлык лучше сразу переименовать, например в 1CV8.2):
На рабочем столе вы получите следующее:
Запустим утилиту администрирование кластера сервера 1С:Предприятие версии 8.2 ярлыком “1CV8.2” (т.к. сервер использует порты по умолчанию, то кластер отобразится без проблем):
При попытке открыть данный кластер из консоли, предназначенной для администрирование кластера сервера 1С:Предприятие версии 8.3 (по ярлыку с рабочего стола с именем “1CV8.3”) вы увидите ошибку:
Ошибка соединения с сервером 1С:Предприятия 8.3: Различаются версии клиента и сервера (8.3.4.437 - 8.2.19.90), клиентское приложение: Консоль кластера
Для отображения нужного нам кластера сервера 1С:Предприятие версии 8.3 необходимо в данной оснастке создать новый центральный сервер 1С:Предприятия 8.3:
—где:
- в поле Имя необходимо указать имя компьютера с установленным сервером 1С:Предприятие 8.3;
- в поле IP порт необходимо указать порт, на котором работает агент сервера 1С:Предприятия 8.3, который вы обозначали при настройке службы запуска агента;
- в поле Описание обозначить описание.
После нажатия кнопки “ОК” вы сможете увидеть ваш новый кластер, который получился после установки сервера 1С:Предприятие версии 8.3.
Т.е. администрирование кластеров различных версий сервера 1С:Предприятия, установленных на одном компьютере, осуществляется соответствующими оснастками.
Вот, в принципе, и все. Удачи!
_________
UPD. Как показала практика, способ, описанный в данной статье, не подходит для одновременного запуска на одном сервере нескольких экземпляров сервера 1С:Предприятия версии 8.3. При попытке создать новую службу агента 1С от другой версии 1С:Предприятия, работающую на иных портах, операция:
C:\Program Files (x86)\1cv8\8.3.4.437\bin>ragent.exe -instsrvc -port 2540 -regport 2541 -range 2560:2591 -d "C:\Program Files (x86)\1cv8\srvinfo" -usr .\Администратор -pwd ********
заканчивается тем, что удаляется уже работающая служба старой версии 1С 8.3, а новая не создается.
В своей следующей статье я описал способ установки, создания соответствующих и запуска на одном сервере нескольких версий сервера 1С:Предприятия 8.3…
А как быть с лицензиями на сервер, можно ли использывать один хасп на обе версии?
Отличная статья!!! Все по полочкам! Очень помогла. Спасибо ОГРОМНОЕ!
Всего Вам Доброго!
Отличная статья. Еще для изменения портов можно изменить их в regedit:
HKLM – system-CurrentControlSet-services-1C:Enterprise 8.3 Server Agent-ImagePath
“C:\Program Files (x86)\1cv8\8.3.4.465\bin\ragent.exe” -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d “C:\Program Files (x86)\1cv8\srvinfo” – Меняем порты
спасибо за помощь, особенно долго пришлось искать – что чтобы открывать базы в 8.3, при установленном 8.2, надо прописать server:порт при запуске Базы 1с
А если поменять порты на версии 8.2? Тогда при обновлении 8.3 не надо заморачиваться.
Спасибо, помогло!
А что делать если ночью, когда должны делаться бэкапы, кластер как будто пропадает(с начала идёт перезагрузка сервера, потом уже по времени делаются бэкапы) и с утра никто не может войти в на эти базы, помогает перезагрузка
Спасибо! Уникальная по содержанию статься.
При попытки установки Сервер 1С:Предприятия 8.3 (версия 8.5) как сервис Windows с правами для запуска от имени существующего локального пользователя “Администратор”. выдает ошибку: В процессе установки произошла неисправимая ошибка(( как быть?
Добрый день!
А кто-нибудь сталкивался с ситуацией, когда одна консоль 8.3 выдает ошибку, прописываешь правильные порты, все нормально для 8.3, возвращаешься к консоли 8.2 теперь там ошибка. И так по кругу
Спасибо за статью.
В самом конце написано “В своей следующей статье я описал способ установки, создания соответствующих и запуска на одном сервере нескольких версий сервера 1С:Предприятия 8.3”
Но линк не содержит этой информации, пришлите пожалуйста правильный линк.
Заранее благодарю
А у меня возникла проблема: система пишет, что ragent.exe не является приложением Win32. Посмотрел свойства ragent.exe — весит 0 байт. В чём проблема? Может установочник “битый”?
Хорошая статья, очень доступно написано. Спасибо за помощь.
Скажите а во время установки 8.3 нужно останавливать 8.2? или можно в рабочем режиме?
Lev – 8.2 может работать в штатном режиме
Статья отличная но после пройденной операции началась проблема при просмотре сеансов на сервере 8.2 появляется ошибка MMC has detected an error in snap-in/ It is recommendet that you shut down and restart MMC. Это вообще может быть связанно? иЧто посоветуете?
Проделал все как сказано и все работает, но теперь необходимо все базы перевести на 8.3
подскажите как сделать так что бы обновить 8.2. на 8.3 так что бы все подключенные на сервере 8.2 базы автоматом перешли на новый сервер 8.3 и 8.2 можно было бы остановить.
Сейчас на 8.2 подключено 6 баз на 8.3 – 2 базы, но те что на 8.3 я смогу если что пересоздать, а вот те что на 8.2 заново создать не смогу так как там не знаю пароль от пользователя на серваке sql.
Хоть 10 сервисов можно паставить 8.3 “INSTSRV “Агент сервера 8.3.11” “C:\Program Files\1cv82\8.3.11.229\bin\ragent.exe”“, Где Агент сервера 8.3.11 – придуманное имя сервиса. утилиту INSTSRV ищите в инете.Следующим шагом является редактирование реестра. Запускаем редактор реестра Regedit. Ищем строку “C:\Program Files\1cv83\8.3.11.229\bin\ragent.exe” и меняем ее на правильную команду запуска с параметрами, например: ““C:\Program Files\1cv82\8.3.11.229\bin\ragent.exe” /Debug -srvc -agent -regport 11641 -port 11640 -range 11660:11691 -d “C:\Program Files\1cv83\srvinfo”“. в 1с в настройке указываем кластер серверов srv01:11640
а я просто нахожу в реестре ветку hklm\system\controlset001\1c:enterprise 8.3 server agent и правлю параметр imagepath
мне кажется так проще, тоже работает