Устранение ошибок поставщика OLE DB для связанных серверов

Исходный номер базы знаний: 2555855

Сводка

Эта статья поможет устранить ошибки поставщика OLE DB, возникающие при выполнении запросов T-SQL с помощью linked server или нерегламентированных запросов с помощью OPENROWSET или OPENDATASOURCE в Microsoft SQL Server. Обычно эти ошибки указывают на то, что поставщик OLE DB не установлен, не зарегистрирован или не соответствует архитектуре SQL Server.

Симптомы

При выполнении запросов T-SQL, использующих связанные серверы или нерегламентированные запросы (с помощью OPENROWSET или OPENDATASOURCE), можно получить одно из следующих сообщений об ошибках:

Поставщик OLE DB "<ProviderName>" не зарегистрирован. (Microsoft SQL Server, ошибка: 7403)

Не удается создать экземпляр поставщика OLE DB "<ProviderName>" для связанного сервера< LinkedServerName>. (Microsoft SQL Server, ошибка: 7302)

Эти ошибки также могут возникать после того, как вы:

  • Перенос SQL Server с одного компьютера на другой.
  • Восстановите master базу данных с другого сервера.

Причина

SQL Server не удается инициализировать указанный поставщик OLE DB по одной из следующих причин:

  • Поставщик ИЛИ драйвер OLE DB не установлен на сервере.
  • Установленный поставщик не соответствует разрядности SQL Server (x86 или x64).
  • Поставщик OLE DB установлен, но не зарегистрирован должным образом.

Замечание

При создании связанного сервера с помощью sp_addlinkedserver SQL Server не сразу сообщает об ошибках, связанных с доступностью поставщика. Эти ошибки отображаются только при выполнении запроса, использующего связанный сервер.

Решение

Чтобы устранить проблему, выполните действия, описанные в каждом разделе в указанном порядке.

Проверка установленных поставщиков или драйверов OLE DB

Проверьте, какие поставщики или драйверы OLE DB зарегистрированы в SQL Server экземпляре, используя один из следующих методов:

  • В SQL Server Management Studio (SSMS) разверните Server Objects>Linked Servers>Providers, чтобы просмотреть список зарегистрированных поставщиков или драйверов OLE DB.

  • Выполните следующий запрос, чтобы просмотреть все определенные связанные серверы и связанные с ними поставщики или драйверы:

    SELECT * FROM sys.servers;
    

    Дополнительные сведения о возвращаемых столбцах см. в разделе sys.servers (Transact-SQL).

Проверка установки поставщика или драйвера

Убедитесь, что установлен правильный поставщик OLE DB и соответствует архитектуре SQL Server:

  1. Проверьте, присутствует ли поставщик, необходимый вашему связанному серверу, в списке поставщиков из списка установленных поставщиков ИЛИ драйверов OLE DB.

  2. Если поставщик отсутствует, установите его:

    • For Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL): Скачайте последнюю версию на странице загрузки драйвера OLE DB Microsoft.
    • Для сторонних поставщиков или драйверов: Обратитесь к поставщику, чтобы получить правильный установщик.
  3. Убедитесь, что версия поставщика соответствует архитектуре SQL Server. Например, установите 64-разрядный поставщик для 64-разрядного экземпляра SQL Server.

Дополнительные методы проверки поставщика см. в разделе "Проверка установки драйвера OLE DB".

Регистрация поставщика OLE DB

Если библиотека DLL поставщика существует на диске, но не зарегистрирована, переустановите поставщика или драйвера, выполнив действия, описанные в разделе "Проверка установки поставщика или драйвера". Переустановка гарантирует правильность регистрации библиотеки DLL.

Проверка подключения поставщика

Используйте файл универсального канала данных (UDL), чтобы убедиться, что поставщик OLE DB может подключиться к целевому источнику данных:

  1. Создайте новый тестовый файл .udl.
  2. Дважды щелкните UDL-файл , чтобы открыть диалоговое окно "Свойства канала данных ".
  3. Выберите вкладку "Поставщик" и выберите поставщика OLE DB из списка.
  4. На вкладке "Подключение" введите имя сервера и сведения о проверке подлинности.
  5. Выберите "Проверить подключение", чтобы проверить подключение.

Подробные шаги см. в разделе Проверка подключения OLE DB к SQL Server с использованием UDL-файла.

Отказ от ответственности за информацию третьих лиц

Сторонние продукты, которые обсуждаются в этой статье, производятся компаниями, которые не зависят от Microsoft. Microsoft не предоставляет никаких явных или подразумеваемых гарантий, о производительности или надежности этих продуктов.