При обновлении платформы 1С:Предприятие и одновременном переходе с 32-разрядного сервера приложений на 64-разрядный системные администраторы часто сталкиваются с ситуацией, когда консоль администрирования кластера оказывается пустой. При попытке повторно зарегистрировать существующую базу данных вручную система выдает ошибку: «Ошибка создания информационной базы. База данных ... не найдена в сервере баз данных», хотя физически база присутствует на MS SQL Server и ранее успешно функционировала. Проанализируем причины такого поведения и разберем по шагам, как восстановить работоспособность сервиса.
Выясним, почему после установки новой разрядности платформы список информационных баз в консоли кластера оказался полностью пустым. Сервер 1С:Предприятия хранит настройки кластера, списки баз и служебные файлы в каталоге srvinfo. По умолчанию пути установки служб разной разрядности различаются:
C:\Program Files (x86)\1cv8\srvinfo\C:\Program Files\1cv8\srvinfo\Когда мы устанавливаем 64-битный сервер и запускаем новую службу, она обращается к новому, еще не заполненному каталогу в Program Files. В результате создается чистый кластер серверов с портом по умолчанию 1541, в котором еще нет зарегистрированных информационных баз.
Чтобы восстановить прежние настройки кластера без ручного пересоздания баз, выполним перенос настроек:
reg_1541 из каталога C:\Program Files (x86)\1cv8\srvinfo\ в каталог C:\Program Files\1cv8\srvinfo\ (при этом обязательно удалим старые файлы блокировок с расширением *.lck).-d параметра ImagePath в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\).Разберем теперь вторую часть проблемы: почему при попытке вручную привязать базу 1С возвращает ошибку о том, что база не найдена в СУБД. Главная причина кроется в правах пользователя, под которым сервер 1С подключается к MS SQL Server.
В MS SQL Server доступ к просмотру метаданных ограничен. Если учетная запись пользователя СУБД не имеет серверного разрешения VIEW ANY DATABASE, сервер баз данных скрывает список существующих баз из системного представления sys.databases. В этом случае кластер 1С делает запрос к СУБД, получает пустой ответ и сообщает, что указанная база данных не найдена.
Проанализируем шаги по исправлению прав пользователя в SQL Server Management Studio (SSMS):
sa).VIEW ANY DATABASE.db_owner.После предоставления необходимых прав или указания корректного пользователя с правами db_owner и доступом к просмотру баз регистрация информационной базы в кластере проходит успешно.
При миграции на 64-разрядный сервер приложений рассмотрим сопутствующие технические нюансы, которые могут блокировать соединение с СУБД:
rphost) не могут работать с 32-битными библиотеками подключения к SQL. Убедимся, что на сервере приложений установлен 64-разрядный клиент СУБД (например, SQL Server Native Client или актуальный Microsoft OLE DB Driver for SQL Server)._CS), имя базы данных в диалоге создания базы 1С должно в точности совпадать по регистру с именем базы в Management Studio.SQLSRV\INST1), убедимся, что на сервере СУБД запущена служба SQL Server Browser (UDP-порт 1434), либо укажем прямое подключение через статический порт через запятую (SQLSRV,1433).1540, 1541, 1560:1591. Старую службу следует полностью остановить или удалить с помощью команды:
sc delete "1C:Enterprise 8.3 Server Agent"
Таким образом, комплексное решение проблемы состоит в сопоставлении путей реестра кластера srvinfo и корректной настройке прав учетной записи СУБД в MS SQL Server.