Рано или поздно любая развивающаяся компания сталкивается с проблемой нехватки оперативной памяти на сервере 1С. Типичный сценарий: базы данных растут, количество пользователей увеличивается, и сервер начинает регулярно падать с критическими ошибками нехватки памяти (например, аварийное завершение рабочих процессов rphost). Причина кроется в использовании 32-битной архитектуры сервера 1С, которая имеет жесткое ограничение на адресное пространство — не более 2–3 ГБ на один рабочий процесс. Единственным надежным решением в этой ситуации является переход на 64-разрядный сервер 1С.
В этой статье мы подробно рассмотрим, как правильно выполнить миграцию с 32-битного сервера 1С на 64-битный на одной физической машине (или виртуальном сервере), выясним, что произойдет с программными и аппаратными лицензиями, а также разберем, как сохранить работоспособность торгового оборудования (сканеров штрихкодов, терминалов сбора данных) при работе пользователей через удаленный рабочий стол (RDP).
Проанализируем архитектурные ограничения 32-битных систем. Любой 32-разрядный процесс в операционной системе Windows может адресовать максимум 4 ГБ виртуальной памяти. На практике из-за системных ограничений процессу rphost сервера 1С доступно всего около 2 ГБ (в редких случаях до 3 ГБ при использовании специального ключа разметки памяти в ОС). Как только объем временных данных, кэша или тяжелого отчета превышает этот лимит, процесс экстренно завершается. Это приводит к разрыву соединений у всех пользователей, работающих в данной базе данных.
64-битный сервер 1С практически не имеет таких ограничений. Он способен адресовать терабайты оперативной памяти, что позволяет комфортно выполнять ресурсоемкие фоновые задания, строить сложные аналитические отчеты и обслуживать сотни одновременно работающих пользователей без риска падения рабочих процессов.
Вопрос сохранения и переноса лицензий при смене разрядности платформы вызывает больше всего опасений у системных администраторов. Давайте разделим лицензии на три категории и разберем каждую из них по отдельности:
Рассмотрим очень частую проблему: на предприятии используется торговое оборудование (например, сканеры штрихкодов в режиме эмуляции клавиатуры или COM-порта), и пользователи подключаются к 1С через удаленный рабочий стол (RDP) на том же сервере, где крутится служба 1С. Как поведет себя оборудование при обновлении сервера?
Для начала проанализируем, где именно инициализируются драйверы торгового оборудования. Они работают исключительно в контексте клиентского приложения (клиентской части 1С), а не на сервере приложений. Это дает нам ключевую лазейку для сохранения стабильной работы:
8.3.22.1709 (32-бит) и сервер 8.3.22.1709 (64-бит)).Посмотрим на практический процесс перехода. Чтобы минимизировать время простоя пользователей и избежать потери критически важных данных, выполним миграцию по шагам.
Шаг 1. Подготовка и резервное копирование. Перед проведением любых работ обязательно создайте резервные копии всех баз данных (как средствами СУБД MS SQL/PostgreSQL, так и в виде файлов выгрузки .dt). Также сделайте резервную копию каталога служебных данных сервера 1С. По умолчанию на 32-битных системах он находится по пути:
C:\Program Files (x86)\1cv8\srvinfo
Шаг 2. Остановка службы старого сервера. Зайдите в меню управления службами Windows (services.msc), найдите службу «Агент сервера 1С:Предприятие 8.3» (32-разрядную) и остановите ее. Переведите тип запуска службы в режим «Отключена».
Шаг 3. Установка 64-битной платформы 1С. Запустите технологическую платформу 1С нужного релиза (версия должна строго совпадать со старой, если вы не планируете одновременное обновление версии). При установке выберите компонент «Сервер 1С:Предприятия» и убедитесь, что устанавливается именно 64-разрядная версия службы. Помните, что исполняемые файлы 64-битной версии будут установлены в другой системный каталог:
C:\Program Files\1cv8
Шаг 4. Миграция настроек и списка баз данных (каталог srvinfo). Это критически важный этап, о котором часто забывают начинающие администраторы. Если вы просто запустите новую службу 64-битного сервера, она создаст новый пустой каталог служебных файлов по пути C:\Program Files\1cv8\srvinfo. В результате сервер «забудет» список зарегистрированных на нем баз данных, а самое главное — вы потеряете историю действий пользователей (журналы регистрации)! Для анализа и контроля содержимого рабочего каталога серверов 1С можно использовать обработку для анализа и очистки каталога srvinfo.
Чтобы этого избежать, выполните одно из двух действий:
srvinfo из каталога Program Files (x86) в аналогичный каталог в Program Files перед первым запуском новой службы.-d), указав старый путь, чтобы служба сразу подхватила все существующие настройки и журналы регистрации.Шаг 5. Активация лицензии и запуск новой службы. Если у вас программная лицензия на 64-битный сервер, активируйте ее. Запустите новую службу «Агент сервера 1С:Предприятие 8.3 (x86-64)». Проверьте в диспетчере задач Windows, что процессы ragent.exe, rmngr.exe и rphost.exe теперь запускаются из каталога C:\Program Files\1cv8\... и имеют признак 64-битных процессов.
Проанализируем классическую техническую проблему, которая возникает сразу после перехода сервера на 64-битную архитектуру. Если в вашей организации настроен автоматический обмен данными между базами (например, регулярная синхронизация «Зарплата и управление персоналом» и «Бухгалтерия предприятия») посредством COM-соединения, вы гарантированно столкнетесь с ошибкой:
V83.COMConnector: Класс не зарегистрирован
Эта проблема возникает из-за того, что при установке 64-битной версии сервера в операционной системе Windows не регистрируется автоматически 64-разрядный COM-класс. Для исправления этой ситуации выполним регистрацию библиотеки вручную. Разберем этот процесс по шагам:
comcntr.dll, указав точный путь к установленному 64-разрядному релизу платформы 1С. Выглядеть это будет следующим образом:
regsvr32 "C:\Program Files\1cv8\8.3.22.1709\bin\comcntr.dll"
Если после выполнения этой команды операционная система выдаст сообщение об успешной регистрации библиотеки, но интеграции по-прежнему будут выдавать ошибку разрядности, нам потребуется настроить приложение COM+ в службах компонентов Windows. Проделаем следующие действия:
comexp.msc в строке «Выполнить»).1C_COM_64bit) и установите способ активации «Серверное приложение».comcntr.dll в каталоге C:\Program Files\1cv8\[Версия_Релиза]\bin\.После проведения данных манипуляций 64-битные процессы вашего нового сервера смогут беспрепятственно обмениваться данными с любыми другими базами данных без возникновения ошибок несовместимости разрядностей.
Переход на 64-разрядную версию сервера 1С — это логичный шаг в развитии ИТ-инфраструктуры любой компании, позволяющий раз и навсегда забыть об ошибках нехватки памяти рабочих процессов. Мы выяснили, что этот процесс полностью безопасен для существующих пользовательских лицензий, а при наличии лицензии «x86-64» не потребует дополнительных финансовых затрат. Сохранение работоспособности торгового оборудования легко достигается комбинированием разрядности клиентских приложений на терминальном сервере, что обеспечивает плавную и комфортную работу пользователей без остановки бизнес-процессов организации.