linked server s bazoj dannyh oracle

Наше время – время информационного взрыва. Создаются мегабайты, гигабайты, терабайты нужной информации, которая будет  востребована множеством  других пользователей и которую нужно как-то хранить. Год от года количество хранимой информации растет  почти в геометрической прогрессии.

Если хранимую сейчас информации перевести в биты, то полученное число будет столь велико, что превзойдет число звезд, которые существуют во Вселенной. Специалисты прогнозируют, что в 2023 году это число станет еще больше, и оставит позади известное Число Авогадро, которое, для наглядности, выглядит так: 602 200 000 000 000 000 000 000.

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

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

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

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

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

Наиболее более простым, с точки зрения архитектуры, является создание шлюза: база данных <-> база данных

Процесс создания Linked сервера с базой данных Oracle

  1. Устанавливаем клиентское ПО Oracle

Для этого с ресурса http://www.oracle.com/technetwork/database/windows/downloads скачиваем подходящую версию клиентского софта. Разрядность софта (x64 или x32) должна соответствовать разрядности SQL сервера, к которому мы планируем подключить Oracle.

Запускаем инсталлятор софта и выбираем тип установки Runtime.

ustanovka klientskogo oracle

Это опция установит Oracle’s OLE DB Provider and ODBC driver, SQL Plus, Configuration Assistant и Net Manager.

  1. Настройка клиентского софта Oracle

2.1. Запускаем Net Configuration Assistant

2.2. Выбираем пункт Local Net Service Name configuration

nastrojka-klientskogo-oracle

2.3. Выбираем Add и вводим название оракловой базы данных. В терминах оракла это SID БД.

baza-dannyh-oracle

2.4. Протокол подключения оставляем TCP

2.5. Вводим порт и DNS имя компьютера на котором установлена оракловая БД

nastrojka-baza-dannyh-oracle

2.6. Обязательно тестируем подключение вводя необходимый логин и пароль

2.7. Вводим название БД по которому будем подключаться по умолчанию совпадает с SID БД

nazvanie-bazy-dannyh-oracle

  1. Настраиваем параметры провайдера: Устанавливаем флаг для параметра Allow inprocess

установка параметров провайдера

  1. Создаем новый Linked server

В качестве провайдера выбираем Oracle Provider for OLE DB
В качестве Product Name вводим OraOleDB
В качестве Data source вводим название Net Service Name (созданный на шаге2.7) в нашем случае –  test

linked-server

Или это делаем следующей командой:

USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'TEST', @srvproduct=N' OraOleDB ', @provider=N'OraOLEDB.Oracle', @datasrc=N'Test'
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'TEST', @srvproduct=N' OraOleDB ', @provider=N'OraOLEDB.Oracle', @datasrc=N'Test'

 

  1. Прописываем параметры подключения;

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

Или так:

USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TEST', @locallogin = NULL , @useself = N'False', @rmtuser = N'sa', @rmtpassword = N'password'
GO
USE [master]
GO
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TEST', @locallogin = NULL , @useself = N'False', @rmtuser = N'sa', @rmtpassword = N'password'
GO

 

  1. Соединение установлено. Теперь к БД Oracle можно обратиться следующим запросом:
Select 
*
From 
[TEST]..[NAMESPACE].[TABLE]
Select 
*
From 
[TEST]..[NAMESPACE].[TABLE]

Где  [TEST] наш linked server!

Интересная статья?  Подпишитесь на обновления блога и получите еще больше информации по RSS Vladimir Shurygin RSS  ,   RSS Vladimir Shurygin Email   или  twitter Vladimir Shurygin twitter !
Поделитесь с друзьями этой статьей в: