Связь серверов

Конфигурация связанных серверов позволяет SQL Server выполнять команды на источниках данных OLE DB с удаленных серверов. Концепция связанных серверов имеет следующие преимущества.

  • Доступ к удаленному серверу.

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

  • Возможность единообразной адресации разных источников данных.

Компоненты связанных серверов

Определение связанного сервера задает следующие объекты.

  • Поставщик OLE DB

  • Источник данных OLE DB

Поставщиком OLE DB является динамическая библиотека, осуществляющая управление и взаимодействие с определенными источниками данных. Источник данных OLE DB определяет конкретную базу данных, доступ к которой выполняется через интерфейс OLE DB. Хотя источники данных, запросы к которым выполняются с помощью определений связанных серверов, являются обычными базами данных, существуют поставщики OLE DB для разнообразных файлов и форматов файлов. Сюда входят текстовые файлы, данные электронных таблиц и результаты поиска полнотекстового содержимого.

Поставщик OLE DB для собственного клиента Microsoft SQL Server (PROGID: SQLNCLI10) является официальным поставщиком OLE DB для SQL Server.

ПримечаниеПримечание

Распределенные запросы сервера SQL Server предназначены для работы с поставщиком OLE DB, реализующим необходимые интерфейсы OLE DB. Однако работа SQL Server проверялась только с поставщиком OLE DB для собственного клиента SQL Server и некоторыми другими поставщиками. Дополнительные сведения см. в разделе Поставщики OLE DB, проверенные в работе с SQL Server.

Подробности настройки связанных серверов

На следующей иллюстрации показаны основы настройки связанных серверов.

Уровень клиента, уровень сервера и уровень сервера баз данных

Обычно связанные серверы используются для обработки распределенных запросов. Если клиентское приложение выполняет распределенный запрос через связанный сервер, SQL Server проводит синтаксический анализ команды и передает запросы поставщику OLE DB. Запрос на набор строк может быть в форме выполнения запроса к поставщику или в форме открытия базовой таблицы из поставщика.

Чтобы источник данных мог вернуть данные при помощи связанного сервера, поставщик OLE DB (динамическая библиотека) для этого источника данных должен присутствовать на том же сервере, что и экземпляр SQL Server.

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

Управление поставщиками

Имеется набор параметров, определяющих, как SQL Server загружает и использует поставщики OLE DB, заданные в реестре. Дополнительные сведения см. в разделе Настройка поставщиков OLE DB для распределенных запросов.

Управление определениями связанных серверов

При установке связанного сервера зарегистрируйте параметры соединения и источника данных при помощи SQL Server. После регистрации к этому источнику данных можно обращаться по одному логическому имени.

Для управления определениями связанного сервера можно использовать хранимые процедуры и представления каталога.

  • Создайте определение связанного сервера, выполнив процедуру sp_addlinkedserver.

  • Просмотрите сведения о связанных серверах, определенных в конкретном экземпляре SQL Server, выполнив запрос к представлениям системного каталога sys.servers.

  • Удалите определение связанного сервера, выполнив процедуру sp_dropserver. Эта хранимая процедура может также использоваться для удаления удаленного сервера.

Определять связанные серверы можно также в среде Среда SQL Server Management Studio. В обозревателе объектов щелкните правой кнопкой мыши Объекты сервера, выберите Создать и выберите Связанный сервер. Определение связанного сервера можно удалить, щелкнув правой кнопкой мыши имя связанного сервера и выбрав Удалить.

При выполнении распределенного запроса к связанному серверу необходимо указать полное, состоящее из четырех частей имя таблицы для каждого источника данных, к которому выполняется запрос. Это имя из четырех частей должно задаваться в форме linked_server_name.catalog**.schema.**object_name. Дополнительные сведения см. в разделе Распределенные запросы.

ПримечаниеПримечание

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