При администрировании кластера серверов «1С:Предприятие 8.3» системные администраторы нередко сталкиваются с ситуацией, когда при попытке открыть свойства информационной базы или удалить её из консоли возникает ошибка: «Ошибка получения параметров информационной базы. Возможной причиной является отсутствие установленного Microsoft SQL Server Native Client». При этом сама информационная база может успешно создаваться и функционировать, а требуемый драйвер Microsoft SQL Server Native Client нужной версии уже установлен в операционной системе. Разберем причины такого поведения платформы и детальные способы устранения неполадки.
Проанализируем природу этой проблемы. В большинстве случаев текст сообщения о драйвере является ложным диагностическим сообщением оснастки управления MMC. Когда графическая консоль пытается запросить параметры базы у рабочего процесса кластера rphost или диспетчера rmngr, при отсутствии предварительно подтвержденных прав администратора конкретной базы вызов завершается сбоем. Консоль кластера перехватывает исключение и выдает стандартную заготовку о недоступности интерфейсов СУБД, маскируя отсутствие авторизации.
Выясним самый быстрый способ инициализировать контекст авторизации в текущей сессии консоли администрирования без перезапуска служб и переустановки драйверов. Разберем процедуру по шагам:
Если принудительная авторизация не помогла, проверим разрядность установленных компонентов. Распространенная ошибка заключается в проверке битности операционной системы вместо проверки разрядности процессов сервера 1С. Рассмотрим требования соответствия:
ragent. Если на 64-битной версии Windows Server установлена 32-разрядная платформа 1С (процессы rphost.exe и ragent.exe имеют признак 32-bit), то для взаимодействия с MS SQL Server необходим именно 32-разрядный драйвер sqlncli_x86.msi.sqlncli_x64.msi.Проанализируем конфигурацию на стороне СУБД, так как сбой чтения параметров может происходить из-за блокировки учетной записи SQL, от имени которой база зарегистрирована в кластере:
SQL Server Network Configuration для рабочего экземпляра убедимся, что протоколы TCP/IP и Named Pipes находятся в состоянии Enabled.Connections включен параметр Allow remote connections to this server.Login is locked out), а срок действия пароля не должен истечь. Для корректной работы кластера учетная запись должна обладать ролью db_owner в целевой базе данных.Если графическая оснастка MMC дает сбой из-за кэша или системных ограничений, разберем альтернативные инструменты прямого взаимодействия с кластером.
Для изменения настроек и управления базами данных задействуем консольную утилиту rac, работающую через службу ras. Пример команды для получения списка и свойств баз данных с явной передачей учетных данных администратора кластера и базы:
rac infobase --cluster=cluster-id summary --cluster-user=admin --cluster-pwd=pass
rac infobase --cluster=cluster-id info --infobase=ib-id --infobase-user=admin1c --infobase-pwd=pass1c
Аналогично можно выполнить программное чтение параметров через внешнее соединение на встроенном языке с использованием объекта V83.COMConnector:
Соединитель = Новый COMОбъект("V83.COMConnector");
Агент = Соединитель.ConnectAgent("ServerName");
Кластеры = Агент.GetClusters();
Кластер = Кластеры[0];
Агент.Authenticate(Кластер, "ClusterAdmin", "ClusterPass");
Базы = Агент.GetInfoBases(Кластер);
Для Каждого ИБ Из Базы Цикл
Если ИБ.Name = "TestBase" Тогда
Агент.AuthenticateInfoBase(Кластер, ИБ, "Admin1C", "Pass1C");
// Чтение параметров и управление базой
КонецЕсли;
КонецЦикла;
Обратим внимание на современные релизы платформы «1С:Предприятие 8.3». Библиотека Native Client 11.0 объявлена Microsoft устаревшей (deprecated). В современных версиях платформы поддерживается работа через актуальные драйверы Microsoft ODBC Driver for SQL Server (версий 17 и 18), а также MSOLEDBSQL, использование которых позволяет избежать подобных проблем совместимости.