Nano Hash - криптовалюты, майнинг, программирование

Как создать связанный сервер, ориентированный на удаленный ODBC?

У меня есть источник ODBC WebTrends на server1 и SQL Server 2005 на server2. Я хочу подключиться к этому ODBC с SQL Server на server2. До сих пор мне удалось подключиться к этому ODBC с SQL Server, который находится на том же сервере, используя следующее определение для связанного сервера:

EXEC sp_addlinkedserver 
@server = N'WT_ODBC', 
@provider=N'MSDASQL', 
@datasrc=N'WT_ODBC_test'

EXEC sp_addlinkedsrvlogin 
@rmtsrvname=N'WT_ODBC',
@useself=N'False',
@locallogin=N'sa',
@rmtuser=N'administrator',
@rmtpassword='########'

Я могу запросить этот связанный сервер следующим образом:

SELECT *
FROM OPENQUERY(WT_ODBC, 'SELECT * FROM CompleteViewV85.DownloadedFiles'); 

Кстати, я не могу запросить его с именем из четырех частей, например:

SELECT *
FROM WT_ODBC.[Complete View V8.5].CompleteViewV85.DownloadedFiles

Я получаю следующую ошибку:

Invalid use of schema or catalog for OLE DB provider "MSDASQL" for linked server   
"WT_ODBC". A four-part name was supplied, but the provider does not expose the  
necessary   interfaces to use a catalog or schema.

... и я проверил, что опция «Только нулевой уровень» не отмечена. Но это не так уж и проблематично, так как первый запрос работает.

Моя проблема - как подключиться к этому ODBC, но с другого сервера? Я пошел на server2, и там в SQL Server я создал следующий связанный сервер:

EXEC sp_addlinkedserver 
@server = N'WT_ODBC', 
@srvproduct=N'Microsoft OLE DB Provider for ODBC', 
@provider=N'MSDASQL', 
@datasrc=N'WT_ODBC_test',
@location=N'10.254.251.20'

EXEC sp_addlinkedsrvlogin 
@rmtsrvname=N'WT_ODBC',
@useself=N'False',
@locallogin=N'sa',
@rmtuser=N'administrator',
@rmtpassword='########'

.. где я поместил IP-адрес server1 в качестве параметра @location. Связанный сервер, созданный таким образом, не может подключиться к ODBC на server1. Когда я пытаюсь выполнить тот же запрос, который работает на server1, я получаю следующую ошибку:

Cannot get the column information from OLE DB provider "MSDASQL" for linked server  
"WT_ODBC".

Помощь? Кто то? Пожалуйста? :)

Заранее спасибо.


  • Правильно ли я предполагаю, что вы пытались запустить первый блок кода на server2 и в результате получили ошибку в последнем блоке кода? 08.12.2009
  • Да, я могу создать SQL Linked Server на обоих серверах, но запуск OPENQUERY работает только на первом (server1). Даже когда я перехожу к этому связанному серверу через Management Studio, я получаю сообщение об ошибке: Не удается инициализировать объект источника данных поставщика OLE DB MSDASQL для связанного сервера WT_ODBC. (Microsoft SQL Server, ошибка: 7303) 08.12.2009

Ответы:


1

Работает ли он из источников ODBC в Windows при проверке соединения? В 1_

Кстати, OPENQUERY — это хороший способ получить данные из «необычных» (из-за отсутствия лучшего слова) источников, потому что запрос является сквозным. Команда запроса отправляется на удаленный сервер, выполняется там, и возвращаются только результаты.

Если вы не используете открытый запрос, это зависит от оптимизатора. Если удаленный сервер — это SQL-сервер, DB2, Oracle, оптимизатор разберется. Если это что-то необычное, он может решить начать перемещение всех данных таблицы, а затем начать фильтрацию столбцов и строк на локальном компьютере - намного медленнее.

08.12.2009
  • Да, источник ODBC в порядке, и связанный сервер на его основе работает нормально, если они оба находятся на одной физической машине. Я пытаюсь заставить его работать с удаленного сервера. Существует не так много примеров связанных серверов с этой проблемой. Большинство из них просто указывают на файл и указывают правильный путь. Я не уверен, правильно ли я использую параметр @location, или, может быть, это проблема входа в систему. В любом случае, спасибо за совет OPENQUERY. 08.12.2009
  • Может быть, реальный вопрос здесь в том, можете ли вы даже напрямую получить доступ к ODBC, который находится на удаленном сервере? 08.12.2009
  • ДА, сначала заставьте его работать из администратора источника данных ODBC. 08.12.2009
  • Итак, если я правильно понял, чтобы получить доступ к ODBC на сервере 1, мне нужно создать новый ODBC на сервере 2, который будет нацелен на первый. Если это так, то я застрял, потому что не могу создать ODBC на server2. ODBC на сервере1 — это специальный тип ODBC, предоставляемый WebTrends, и его можно установить только на том сервере, где находится приложение WebTrends. 09.12.2009
  • Да, ODBC должен быть установлен на клиентской машине. Очень необычно, что драйвер ODBC привязан к машине БД. 09.12.2009
  • Загрузите драйвер ODBC для MySQL. Установите драйвер. Создайте системный DSN для базы данных. Создайте связанный сервер в SQL Server. Выберите данные из источника и вставьте их в таблицу базы данных SQL Server. 14.03.2019

  • 2

    Я бы сказал, что не используйте параметр @location, а вместо этого правильно настройте источник данных WT_ODBC_test ODBC. Конечно, вам нужно настроить его на server2.

    08.12.2009
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..