Як правильно обнов і ть платформу 1с і запустити кілька служб 1с на одному сервері техлаб

Як правильно обнов і ть платформу 1С і запустити кілька служб 1С на одному сервері?

Як швидко і без проблем встановити нову версію платформи 1С і при цьому мінімізувати переривання роботи користувачів? Як запустити кілька екземплярів сервера 1С на одній машині? Дані питання є поширеним предметом для обговорення серед адміністраторів серверів 1С. Загалом, відповіді на них ви можете знайти на сайті ІТС за цим посиланням. а також по цій.

У нашій статті ми хочемо виділити найголовніше, додати щось від себе, а також поділитися досвідом, і, що досить важливо, показати, що ці завдання не є чимось складним і вирішуються буквально за дві секунди і навіть без танців з бубном , як багато хто думає.

оновлення платформи

Так як установка служби 1С на сервер, де її ще не було, не представляє ніяких складнощів і не відрізняється якимись особливостями, розглянемо іншу задачу, коли у нас вже є продуктивний сервер з запущеним сервером додатків, в якому працюють користувачі, і нам необхідно оновити на ньому версію платформи 1С. Це завдання можна розбити на два умовні етапи: підготовчий етап і етап оновлення.

Підготовчий етап

Коли ми переконалися, що все в порядку, можемо запускати установку платформи 1С на сервері додатків. Якщо при його установці зняти галочку «встановити як сервіс», можна не зупиняти службу 1С, яка обслуговує поточну версію платформи 1С і, що дуже важливо, можна не переривати роботу користувачів.

Як правильно обнов і ть платформу 1с і запустити кілька служб 1с на одному сервері техлаб

Після цього всі компоненти сервера будуть встановлені, але не будуть використовуватися.

етап поновлення

Після того, як підготовчий етап закінчений, необхідно узгодити з користувачами час, коли можна буде перервати їх роботу на кілька хвилин. Коли цей час настане, потрібно зупинити службу 1С та змінити рядок запуску служби 1С, а саме шлях до виконуваного файлу ragent.exe. Це можна зробити декількома способами:

  • вручну, за допомогою regedit:
  • за допомогою заздалегідь підготовленого файлу реєстру:

У потрібний момент натискаємо правою кнопкою миші на експортований файл реєстру зі зміненою рядком запуску служби 1С і натискаємо «Злиття». Перевага даного методу в тому, що даний файл ми можемо підготувати заздалегідь і виконати зміна параметрів служби 1С в два кліка без необхідності «копатися» в реєстрі.

  • або за допомогою скрипта, із застосуванням утиліти sc (виконується з командного рядка з правами адміністратора):

sc config [ім'я служби 1С в якій міняємо версію платформи 1С] binPath = [рядок запуску служби 1С нової версії платформи]

Рядок запуску служби 1С нової версії платформи можна отримати з рядка запуску служби 1С поточної версії платформи, замінивши в ній шлях до виконуваного файлу ragent.exe:

Як правильно обнов і ть платформу 1с і запустити кілька служб 1с на одному сервері техлаб

Наприклад, якщо ми хочемо оновити версію платформи з поточної (наприклад, 8.3.7.1873) до 8.3.7.1917, тоді рядок запуску поточної версії може виглядати так:

"C: \ Program Files \ 1cv8 \ 8.3.7.1873 \ bin \ ragent.exe" -srvc -agent -regport одна тисячу п'ятсот сорок одна -port 1540 -range 1560 1591 -debug -d "C: \ Program Files \ 1cv8 \ srvinfo"
з неї отримаємо рядок запуску служби 1С нової версії платформи:
"C: \ Program Files \ 1cv8 \ 8.3.7.1917 \ bin \ ragent.exe" -srvc -agent -regport одна тисячу п'ятсот сорок одна -port 1540 -range 1560 1591 -debug -d "C: \ Program Files \ 1cv8 \ srvinfo"

ім'я служби 1С, наприклад, наступне:
1C: Enterprise 8.3 Server Agent (x86-64)

тоді скрипт буде виглядати так:

sc config "1C: Enterprise 8.3 Server Agent (x86-64)" binPath = "/" C: \ Program Files \ 1cv8 \ 8.3.7.1917 \ bin \ ragent.exe / "-srvc -agent -regport 1541 -port 1540 - range 1560 1591 -debug -d / "C: \ Program Files \ 1cv8 \ srvinfo /" "

Установка додаткової служби 1С

Отже, для того, щоб використовувати кілька примірників сервера 1С на одній машині, для обох версій серверів 1С (якщо вони відрізняються) спочатку виконуємо «Підготовчий етап» з попереднього пункту.

Далі нам знадобиться наступний скрипт:

4 "/ debug"
set Desctiption = "Агент сервера 1С: Підприємства 8.3. Параметри:% 1,% CtrlPort%"
if not exist "%

4 "mkdir"%

4 "
sc stop% SrvcName%
sc delete% SrvcName%
sc create% SrvcName% binPath =% BinPath% start = auto obj =% SrvUserName% password =% SrvUserPwd% displayname = .esctiption% depend = Dnscache / Tcpip / Tcpip6 / lanmanworkstation / lanmanserver

Отже, наведений вище скрипт слід зберегти в командний файл, який назвемо register-service.bat. Перед його застосуванням необхідно вказати в ньому дані реального користувача (ім'я та пароль) від імені якого буде працювати служба кластера серверів (рядки set SrvUserName = і set SrvUserPwd =). Примітка: якщо в скрипті використовуються символи кирилиці, командний файл слід зберігати в кодуванні OEM 866.

Для реєстрації служби виконайте з командного рядка наступну команду:

register-service [номер версії платформи] [перші цифри номерів портів] [цифра сотого розряду номерів портів] [каталог служби 1С]

Наприклад, якщо нам необхідно зареєструвати дві служби для двох серверів 1С однаковою версії 8.3.6.2332, то в командному рядку напишемо наступне:

Типові помилки і можливі проблеми

Крім цього, необхідно пам'ятати, що за замовчуванням 1С реєструє порт +1541 для менеджера кластера, тобто в параметрах запуску служби 1С можна побачити:

Це означає, що після установки нової версії платформи під час запуску служби за замовчуванням завжди буде створений новий кластер і запущений процес rmngr.exe, навіть якщо він в принципі на сервері нам не потрібен, і ми не хочемо використовувати цей робочий сервер, як центральний. Також в рядку запуску вказано діапазон портів rphost для нового кластера:

На жаль, на даний момент немає можливості керувати створенням локального кластера при першому запуску служби 1С за допомогою параметрів командного рядка служби. Але це завдання можна вирішити наступними двома способами.

Перший і, мабуть, найпростіший - це видалити створений локальний кластер з консолі кластера 1С:

Як правильно обнов і ть платформу 1с і запустити кілька служб 1с на одному сервері техлаб

Другий варіант: для того, щоб при першому запуску служби 1С новий кластер не створювалася, перед її запуском в каталозі службових файлів даної служби, що зазначений в рядку її запуску після ключа -d, необхідно створити файл з ім'ям 1cv8wsrv.lst такого змісту:

Ми отримаємо такий же файл при видаленні локального кластера, як це описано в першому варіанті.

Після цього можемо запускати дану службу 1С. При старті служби, відбувається перевірка наявності файлу 1cv8wsrv.lst в каталозі службових файлів нової служби 1С. З цього файлу Новомосковскются дані про зареєстрованих кластерах. Якщо файлу немає - створюється кластер за замовчуванням з параметрами, заданими в рядку запуску служби, якщо файл є, дані Новомосковскются з нього і автоматичного створення не відбувається. Відповідно, в цьому випадку наявність даного файлу підтверджується і новий кластер не створюється.

Якщо новий кластер створити все-таки потрібно, то необхідно перевірити, що порт в параметрі / regport (або порт за замовчуванням - 1 541, якщо параметр / regport не вказано), при реєстрації нової служби не зайнятий. Якщо цього не зробити, то можливо прояв ситуації, коли дві служби працюватимуть з одним менеджером кластера, якщо, наприклад, для порту, зазначеного в рядку запуску нової служби (або для порту за замовчуванням - одна тисячу п'ятсот сорок один, якщо ключ -regport не вказано в рядку запуску) вже зареєстрований менеджер кластера. Причиною цього є те, що при первинному старті служби та реєстрації порту для менеджера кластера не відбувається перевірки зайнятий цей порт чи ні. Завдання по реалізації даної перевірки відома і буде реалізована в наступних версіях платформи.

Ще один параметр рядка запуску служби 1С, який варто розглянути, це:

Він відповідає за каталог, в якому будуть розташовані (або розташовуються) службові файли служби сервера 1С (в тому числі список кластерів). За замовчуванням каталог встановлюється наступний:

Також багато хто забуває вказувати ключ в рядку запуску, який відповідає за можливість використання програми в режимі налагодження, якщо він необхідний:

Крім цього, однією з частих помилок є те, що адміністратор 1С забуває видалити службові файли інформаційних баз (а саме: індекси повнотекстового пошуку та журнали реєстрації) з каталогу реєстру кластера 1С після того, як бази вилучені зі списку інформаційних баз кластера 1С. Дана помилка призводить до того, що дисковий простір сервера додатків використовується неефективно.

Каталог реєстру кластера виглядає наступним чином:

«C: \ Program Files \ 1cv8 \ srvinfo \ reg_ [номер порту менеджера кластера]»

Каталог службових файлів інформаційної бази:

«... \ srvinfo \ reg _ **** \ [UUID інформаційної бази]»

Наприклад, якщо номер порту менеджера кластера 1 541, то каталог службових файлів деякої інформаційної бази з унікальним ідентифікатором «0c1bd57c-4a1b-47df-a229-ade9833de359» буде:

Список невикористовуваних баз можна отримати, порівнявши за унікальним ідентифікатором список баз в файлі «1CV8Clst.lst» (розташовується в каталозі реєстру кластера) і список баз, для яких існують каталоги зі службовими файлами. Для швидкого отримання ідентифікаторів баз і їх імен з файлу реєстру кластера можна скористатися наступним регулярним виразом: «\\ -. * \ W) \," (. *?) "\,. * [\\ r] * \ n +. * "\, \ d + \>».

висновок

Ми постаралися скомпонувати в статті досить повну і детальну інформацію про те, як правильно і швидко оновити версію платформи 1С. Така інформація може бути корисна на підприємствах, де тривалий переривання роботи користувачів може бути досить критичним.

Також досить важливим було для нас описати, як налаштувати одночасну роботу декількох служб кластера 1С на одній машині. Ця інформація може бути корисна тим, хто хоче ізолювати кілька кластерів 1С, наприклад, для цілей розробки або тестування або ви використовуєте в роботі інформаційні бази, керовані різними версіями 1С: Підприємства.

Сподіваємося, ви зможете з легкістю виконати потрібну вам задачу і продовжите із задоволенням користуватися продуктами 1С. Ну а якщо у вас щось не вийде, або ви зіткнетеся з якимись труднощами, звертайтеся до нас. ми обов'язково допоможемо!