Dsn что это oracle

Обновлено: 02.07.2024

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

Пакет DTS в настоящее время использует Microsoft OLE DB Provider для Oracle со следующими свойствами:

  • Источник данных: SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.1.3.42)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=acc)));uid=*UserName*;pwd=*UserPassword*;
  • Пароль: пароль пользователя
  • Идентификатор пользователя: Имя пользователя
  • Разрешить сохранение пароля: true

Как мне настроить подключенный сервер к базе данных Oracle, используя источник данных, определенный выше?

2 ответа

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

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

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

а. Загрузите необходимые пакеты Oracle Instant Client : Basic, ODBC и SQL * Plus (необязательно)

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

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

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

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

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

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

ф. Запустите утилиту [directory]\odbc_install.exe , чтобы установить драйверы Oracle ODBC.

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

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

а. Откройте инструмент Администратор источника данных ODBC . [Администрирование -> Источники данных (ODBC)]

б. Откройте вкладку «Системный DSN», а затем нажмите кнопку «Добавить».

с. В списке драйверов выберите Oracle in instantclient . (например, «Oracle in instantclient 10_2»), а затем нажмите кнопку «Готово».

д. Укажите следующее:

  • Data Source Name :
  • Description :
  • TNS Service Name : должен иметь OracleTnsName , который вы определили в списке tnsnames.ora выберите его в качестве значения.
  • ИД пользователя :

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

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

Примечание: может быть любым, что вы хотите использовать при обращении к серверу Oracle, но должен соответствовать имени системного DSN, которое вы создали ранее.

должен совпадать с идентификатором пользователя, используемым системным DSN, и должно совпадать с тем, которое вы использовали для успешного тестирования соединения ODBC. См. KB 280106 для получения информации об устранении неполадок, связанных с сервером Oracle.вопросы.

Запрос к связанному серверу Oracle

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

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

2. Далее необходимо найти расположение файла TNSNAMES.ORA (с помощью поиска в вашей
папке, куда установлен Oracle). Может найтись два файла, выберите тот, что больше,
скорее всего в нем есть актуальная информация о подключении к базе.
И вы можете взять имя TNS из этого файла. Либо спросите у своего системного
администратора данную информацию.
Вот пример блока кода с TNS-именем "ORCLPDB" одного из моих подключений:
ORCLPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclPDB)
)
)

3. После установки компонентов Oracle: Basic Package и ODBC Package и определения
имени TNS необходимо запустить файл настройки ODBC соединения, например:
- если Excel 32x, то открыть C:\Windows\System32\odbcad32.exe
- если Excel 64x, то открыть C:\Windows\SysWOW64\odbcad32.exe
И нажать добавить.
Кстати, если вы установите оба драйвера (32х и 64х) из пункта 1, то в окне
"Create New Data Source" (создание нового источника данных), например:
для 64х Excel следует выбрать драйвер "Oracle in OraDB12Home1" (12.02.00.01)
для 32x Excel следует выбрать драйвер "Oracle in instantclient_12_2" (12.02.00.01)
И ввести необходимые данные, например для моего TNS-имени можно создать следующее:
Data Source Name = DSN_ORCLPDB (здесь пишется на ваше усмотрение на английском)
Description = D_ORCLPDB (здесь пишется на ваше усмотрение на английском)
TNS Service Name = ORCLPDB (здесь пишется имя TNS)
User (это название схемы)
Далее нажмите кнопку Test Connection, появится окно с пустым полем пароля, куда
необходимо ввести ваш пароль, привязанный к вашему User ID и нажмите OK. Должно
появится окно с уведомлением об успешном подключении "Connection successful".
Кстати, если вы используете PL/SQL Developer, то в нем при входе на форме:
Database это "TNS Service Name", Username это "User ID".

4. Далее необходимо создать пользовательскую (не системную) переменную среды:
имя переменной = TNS_ADMIN
значение переменной = здесь указывается местоположение вашего файла tnsnames.ora,
например C:\app\myu\product\12.2.0\dbhome_1\network\admin

5. Далее в файле Excel, в котором планируете использовать подключение, необходимо
перейти в среду разработки Visual Basic и в меню: Tools - References активировать
библиотеки (поставить галочки):
Microsoft ActiveX Data Objects 2.8 Library
Microsoft ActiveX Data Objects Recordset 2.8 Library
Либо можно выбрать:
Microsoft ActiveX Data Objects 6.1 Library
Microsoft ActiveX Data Objects Recordset 6.0 Library

6. Далее необходимо написать код в вашем файле с подключением к базе данных.
Но вы можете скачать уже ГОТОВЫЙ файл, в котором требуется ввести Data Source Name,
User ID и пароль к этому User ID.

Либо, откройте этот файл и посмотрите процедуру
ConnectToOracle64bit, в которой будет понятно, что делать с данными из DSN
подключения, которые вы создали в пункте 3.
Файл НЕ содержит вредоносных макросов.

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

Подробные требования и необходимые условия для подключения к базе данных Oracle выходят за рамки этой статьи Майкрософт. В ней предполагается, что у вас уже установлено клиентское программное обеспечение Oracle и вы можете успешно подключиться к целевой базе данных Oracle. Для получения дополнительных сведений обратитесь к администратору базы данных Oracle или к документации по Oracle.

Параметры подключения для этого поставщика данных одинаковы независимо от того, является ли Oracle источником или назначением. Таким образом, на страницах Выбор источника данных и Выбор назначения мастера отображаются одинаковые параметры.

Вам не нужно вводить строку подключения в поле ConnectionString списка. После ввода отдельных значений для имени сервера Oracle (источника данных) и информации для входа мастер собирает строку подключения из отдельных свойств и их значений.

Подключение к Oracle с помощью поставщика .NET

Подключение к Oracle с помощью драйвера Microsoft ODBC для Oracle

Подключение к Oracle с помощью ODBC ранее

Указываемые параметры (драйвер ODBC для Oracle)

Параметры подключения для этого поставщика данных и драйвера ODBC одинаковы независимо от того, является ли сервер Oracle источником или назначением. Таким образом, на страницах Выбор источника данных и Выбор назначения мастера отображаются одинаковые параметры.

Чтобы подключиться к Oracle с помощью драйвера ODBC для Oracle, соберите строку подключения, используя указанные ниже параметры и их значения. Полный формат строки подключения приведен после списка параметров.

Вы можете получить помощь в построении строки подключения. Кроме того, вместо указания строки подключения вы можете предоставить существующее имя DSN (имя источника данных) или создать новое. Дополнительные сведения об этих возможностях см. в разделе Подключение к источнику данных ODBC.

Драйвер
Имя драйвера ODBC — Microsoft ODBC for Oracle.

Server
Имя сервера Oracle.

Uid и Pwd
Идентификатор пользователя и пароль для подключения.

Формат строки подключения

Ниже приведен формат типичной строки подключения.

Ввод строки подключения

Введите строку подключения в поле ConnectionString либо введите имя DSN в поле Dsn на странице Выбор источника данных или Выбор назначения. После того как вы введете строку подключения, мастер проанализирует ее и отобразит отдельные свойства и их значения в списке.

Ниже показан экран, который появляется после ввода строки подключения.

Подключение к Oracle с помощью ODBC

Какое имя у моего сервера Oracle?

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

SELECT host_name FROM v$instance

SELECT sys_context('USERENV','SERVER_HOST') FROM dual

Другие поставщики данных и дополнительные сведения

Сведения о подключении к Oracle с помощью поставщика данных, не представленного в этом списке, см. в разделе Строки подключения Oracle. Этот сторонний сайт также содержит дополнительные сведения о поставщиках данных и параметрах подключения, описанных на этой странице.

Администрирование Oracle. Программирование на PL\SQL. А также все что касается лидера разработки корпоративного ПО.

среда, сентября 21, 2011

Oracle Gateway 11.2 для Oracle Database 10.2 для WinX64


Многие из тех, кому по той или иной причине приходится администрировать СУБД Oracle на платформе Windows Server, кто переехал на 64-битную платформу, были неприятно удивлены, что такая простая штука как hsodbc теперь не работает (касается версий Oracle выше 9.2).

Весьма неприятное известие для тех, кто собирает данные из множества сторонних баз, MS SQL Server, DB2 и даже, если у вас кто-то предоставляет данные в виде регулярно обновляемого Excel-файла или базы в Access или dBase, было проще всего организовать ODBC-коннект через HSODBC. Но халява кончилась.

  • рядом с Oracle Database 10.1-11.2 для Windows x64 поставить 32-битную версию Oracle Database, настроить в ней hsodbc, настроить Listener на нестандартный порт;
  • извращаться с инициацией передачи данных со стороны источника;
  • установить Oracle Database Gateway 11.2 и организовать коннект через него.
  • Имя листенера должно отличаться от основного, скажем LISTENERGTW
  • HOST=<имя хоста с гейтом>
  • PORT=<отличный от порта основного слушателя, например 1522>
  • SID_NAME=MSDB

SID_LIST_LISTENERGTW=
(SID_LIST=
(SID_DESC=
(SID_NAME= msdb )
(ORACLE_HOME= <OraGtw_home> )
(PROGRAM= <OraGtw_home> \bin\dg4odbc.exe )
)
)

CREATE DATABASE LINK msdb_link CONNECT TO
msuser IDENTIFIED BY mspass
USING ' msdb ';