Как Вы устанавливаете связанный сервер к базе данных Oracle по SQL 2000/2005?

21
задан jpaugh 20 July 2017 в 14:52
поделиться

2 ответа

Я смог установить связанный сервер к удаленной базе данных Oracle, которая закончила тем, что была многоступенчатым процессом:

  1. Установка драйверы ODBC Oracle на SQL Server.
  2. Создают Систему DSN к базе данных Oracle по SQL Server.
  3. Создают связанный сервер на SQL-сервере с помощью Системы DSN.

Шаг 1: Установите драйверы ODBC Oracle на сервере

a. Загрузите необходимое Моментальный Клиент Oracle пакеты: Основной, ODBC и SQL*Plus (дополнительно)

b. Разархивируйте пакеты к локальному каталогу на SQL-сервере, обычно C:\Oracle. Это должно привести к [каталог] как C:\Oracle\instantclient_10_2, который будет значением [каталога], на который ссылаются в остальной части этого ответа.

c. Создайте текстовый файл, названный tnsnames.ora в мгновенном клиенте [каталог], который содержит следующее:

OracleTnsName = 
(
  DESCRIPTION=
  (
    ADDRESS = (PROTOCOL=TCP)(HOST=10.1.3.42)(PORT=1521)
  )
  (
    CONNECT_DATA = (SERVICE_NAME=acc)
  )
)

Примечание: Фактический HOST, PORT, и SERVICE_NAME будет варьироваться на основе сервера Oracle, с которым Вы устанавливаете соединение. Эта информация может часто находиться с помощью инструментов сетевого клиента Oracle под эти слушатели .

Эти OracleTnsName может быть любое имя, которое Вы хотите присвоить источнику данных Oracle и будете использоваться при установке системы DSN. Можно также использовать синтаксис выше для определения нескольких имен TNS в том же файл tnsnames.ora при желании.

d. Добавьте [каталог] к системе PATH переменная среды.

e. Создайте новую системную переменную, названную TNS_Admin , который имеет значение [каталога]

f. Выполнитесь [directory]\odbc_install.exe утилита для установки драйверов ODBC Oracle.

г. Рекомендуется, чтобы Вы перезагрузили SQL-сервер, но не могли быть необходимыми. Кроме того, можно хотеть предоставить права доступа этому каталогу для SQL-сервера и пользовательских идентификационных данных агента SQL.

Шаг 2: Создайте Системный DNS, который использует драйвер

a ODBC Oracle. Откройтесь инструмент ODBC Data Source Administrator . [Средства администрирования-> Источники данных (ODBC)]

b. Выберите вкладку System DSN и затем нажмите кнопку Add.

c. В списке драйверов выберите Oracle в instantclient {версия} . (например, 'Oracle в instantclient 10_2'), и затем нажимают кнопку Finish.

d. Определите следующее:

  • Data Source Name: {Система Имя DSN}
  • Description: {оставляют пустыми/пустыми}
  • TNS Service Name: должен иметь OracleTnsName, Вы определили в tnsnames.ora , перечисленный файл, выбирает его как значение.
  • идентификатор пользователя : {имя пользователя Oracle}

e. Нажмите кнопку Test Connection. Вам нужно предложить обеспечить {пароль пользователя Oracle}. Если все будет подходить, то тест успешно выполнится.

Шаг 3: Создайте связанный сервер в SQL к базе данных Oracle

, Открывают окно запроса в SQL-сервере и выполняют следующее:

EXEC sp_addlinkedserver 
     @server        = '{Linked Server Name}'
    ,@srvproduct    = '{System DSN Name}'
    ,@provider      = 'MSDASQL'
    ,@datasrc       = '{System DSN Name}'

EXEC sp_addlinkedsrvlogin 
     @rmtsrvname    = '{Linked Server Name}'
    ,@useself       = 'False'
    ,@locallogin    = NULL
    ,@rmtuser       = '{Oracle User Name}'
    ,@rmtpassword   = '{Oracle User Password}'

Примечание: Эти {Linked Server Name} может быть что-либо, что Вы хотите использовать, когда ссылка на сервер Oracle, но {System DNS Name} должна соответствовать названию системы DSN, который Вы создали ранее.

Эти {Oracle User Name} должен совпасть с идентификатором пользователя, используемым системой, DSN, и эти {Oracle User Password} должен совпасть с Вами используемый для успешного тестирования соединения ODBC. См. КБ 280106 для получения информации о поиске и устранении неисправностей проблем связанного сервера Oracle.

Запросы связанного сервера

Oracle можно использовать OPENQUERY для выполнения запросов к внешнему источнику данных на связанном сервере Oracle, но знать, что для очень большого recordsets можно получить ORA-01652 сообщение об ошибке, если Вы определяете ORDER BY пункт в запросе к внешнему источнику данных. При перемещении ORDER BY пункт от запроса к внешнему источнику данных до внешнего избранного оператора решил эту проблему для меня.

36
ответ дан 29 November 2019 в 20:51
поделиться

У меня была такая же проблема. Я часами разговаривал по телефону с Microsoft, и у них не было решения. Ни одна из настроек "тайм-аута соединения" мне не помогла.

Чтобы решить эту проблему, я создал задание DTS, которое запускает процедуру, которая обновляет время только в одной строке в одном столбце каждые две минуты. Затем я настраиваю репликацию между SQL Server и Oracle, по расписанию репликацию этого единственного изменения ячейки с SQL на Oracle каждые 3 минуты. Поддерживает соединение!

1
ответ дан 29 November 2019 в 20:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: