Частичная интеграция. Создание Linked Server

10 0

В вашей компании несколько различных СУБД? Как более оперативно получить доступ к информации из разных баз данных? Эта статья поможет Вам  через SQL Server соединиться с базами на MySQL или Firebird, как к обычному  клиентскому  приложению, и позволить обращаться к нему с запросами. А раз мы сможем получить данные на прямую, то вопрос написания сценария  в DIRECTUM с целью синхронизации данных в разных СУБД становиться более понятным и реализуемым. Ведь результаты запросов доступны на стороне SQL Server!

Один из вариантов -  это использовать Linked Server (прилинкованный сервер).

Подготовка к созданию Linked Server 

Кратко о том, что необходимо сделать.

  • MySQL

Самый популярный OLE DB Provider для MySQL от Cherry City Software. ODBC-драйвер можно скачать с сайта MySQL -  MySQL Connector/ODBC 5.1 Downloads, дистрибутив с Windows MSI Installer. Пошаговую инструкцию, если вдруг кому-то понадобится,  можно скачать здесь - http://freehost.com.ua/faq/buleten/article/article_id/20. В списке драйверов образуется драйвер MySQL ODBC 5.1, версии 5.01.05.00, MYODBC5.DLL от 18/08/2008.

 

Теперь до MySQL можно достучаться через ODBC. Делать это можно, предварительно создав ODBC DSN (Data Source Name), либо напрямую прописывая координаты источника в строке соединения.

Рассмотрим создание DSN: зайдите в меню Пуск выберите Администрирование и в нем Data Sources (ODBC). В ODBC создайте новый System DSN. Перейдите на закладку System DSN, нажмите кнопку Add.

 

Из списка драйверов выберете MySQL-ный драйвер, и нажимаем  кнопку Finish. Откроется окно конфигурации MySQL-ного драйвера. Введите в него информацию о соединении с источником. Нажмите кнопку Details и введите при необходимости дополнительную информацию по настройкам соединения. У меня согласно рекомендациям отмечены следующие пункты: закладка Flag1 - Return matched rows instead of affected rows; Allow big result sets; Use compression; Treat BIGINT columns as INT columns, Enable safe options; Flag2 - Don't prompt when connecting; Flag3 - Include table name in SQLDescribeCol(); Disable transaction support; Allow multiple statements. Остальные закладки оставлены по умолчанию.

 

Создание Linked Server

Откройте SQL Server  Management Studio (Start -> All Programs -> Microsoft SQL Server 2008 -> SQL Server  Management Studio). В панели Object Explorer раскройте пункт Server Objects и кликните правой кнопкой по папке Linked Servers. В контекстном меню выберите пункт New Linked Server.

 

Задайте параметры создаваемому прилинкованному серверу: имя (без разницы), OLE DB провайдер – MSDASQL (выбираем OLE DB провайдер для работы с ODBC, Data Source – указываем имя ранее созданного ODBC DSN.)

 

Следующий экран (Security) позволяет отобразить SQL Serverных пользователей на MySQL-ных. В данном случае напомню, что все SQL Serverные пользователи будут идти на MySQL под рутом.

 

Жмем ОК и идем в запросное окно, чтобы убедиться, что прилинкованный сервер создан удачно. Нажмите New Query:

Напишите запрос: exec sp_tables_ex @table_server = 'MySQL'

Нажмите Ctrl-E или ! Execute в верхней панели. Мы получили список таблиц с MySQL. Теперь SQL Server соединен с MySQL, как обычное клиентское приложение, и может обращаться к нему с запросами. Результаты запросов доступны на стороне SQL Server.

Попробуйте запрос на выборку данных: exec sp_tables_ex @table_server = 'MySQL' ( Мы получили список таблиц с MySQL.)

 или такой:  select * from openquery(mysql, 'select version()') (результат версия MySQL)

  •  Firebird

Здесь все происходит по аналогии, но естественно использовать другой драйвер. Я использую версию IBProvider_free_32_3.0.0.7475. Здесь самое важное настроить  свойство Provider String (пример):

user=SYSDBA;password=111;auto_commit=true;truncate_char=true;support_odbc_query=True;odbc_call_sp=2

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

 

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

10
Авторизуйтесь, чтобы оценить материал.
Пока комментариев нет.

Авторизуйтесь, чтобы написать комментарий