|Перед тем, как добавить в сервер объединения DB2 источники данных Microsoft |SQL Server, на сервере объединения необходимо установить и сконфигурировать |драйвер ODBC. Особенности установки драйвера подробно описаны в |установочных процедурах в документации, поставляемой с драйвером ODBC.
|Чтобы настроить сервер объединения на доступ к данным из источников данных |Microsoft SQL Server, нужно: |
|В этой главе обсуждаются шаги 3 и 4.
|Указания этой главы относятся к платформам Windows NT и AIX. |Особенности конкретных платформ оговариваются специально.
|После установки драйвера ODBC и DB2 Relational Connect добавьте на сервер |объединения источники данных Microsoft SQL Server, выполнив следующие |шаги: |
|Эти шаги подробно объясняются в разделах ниже.
|Задайте переменные среды источника данных: внесите изменения в файл |db2dj.ini и введите команду db2set. В |файле db2dj.ini содержится информация о конфигурации для |соединения с источниками данных Microsoft SQL Server. Команда |db2set приводит реестр профиля DB2 в соответствие с вашими |настройками.
|В системе многораздельной базы данных можно использовать один файл |db2dj.ini для всех узлов определенного экземпляра сервера |или же отдельные файлы db2dj.ini для одного или нескольких |узлов экземпляра сервера. В системе однораздельных баз данных может |быть только один файл db2dj.ini на один экземпляр |сервера.
|Чтобы задать переменные среды: |
|ODBCINI=$HOME/.odbc.ini |DJX_ODBC_LIBRARY_PATH=<путь к драйверу Merant>/lib |DB2ENVLIST=LIBPATH ||
|Введите команду db2set, чтобы внести сделанные изменения в |реестр профиля DB2. Синтаксис db2set зависит от структуры |вашей системы баз данных: |
|db2set DB2_DJ_INI=<путь к файлу ini>/db2dj.ini
||db2set -g DB2_DJ_INI=<путь к файлу ini>/db2dj.ini
||db2set -i ЭКЗЕМПЛЯРx 3 DB2_DJ_INI=$HOME/sqllib/cfg/node3.ini
|где: |
|Чтобы задать путь к клиентской библиотеке, введите команды:
|db2set DB2LIBPATH=<путь к клиентской библиотеке Merant> |db2set DB2ENVLIST=LIBPATH
|Сценарий оболочки djxlink.sh компонует клиентские |библиотеки с библиотеками оболочки. Чтобы запустить сценарий оболочки, |введите:
|djxlink
|Если вы считаете, что обращение к источнику данных Microsoft SQL Server |занимает слишком много времени, можно улучшить производительность, задав |переменную среды DB2_DJ_COMM, чтобы загружать оболочку при инициализации |сервера объединения, а не при обращении к этому источнику. Задайте |переменную среды DB2_DJ_COMM, чтобы включить библиотеку оболочки, |соответствующую оболочке, заданной вами на Шаге 5. Например: |
|db2set DB2_DJ_COMM=djxmssql3.dll
|db2set DB2_DJ_COMM=libmssql3.a
||Слева и справа от знака равенства (=) не должно быть пробелов.
|Дополнительную информацию об именах библиотек оболочек смотрите в |справочнике DB2 SQL Reference .
|Чтобы гарантировать задание переменных среды в программе, перезапустите |экземпляр DB2. При перезапуске экземпляра DB2 вы его обновляете, и |внесенные изменения вступают в силу. Перезапустите экземпляр DB2, введя |команду:
|db2stop |db2start
|В DB2 Universal Database есть два разных протокола, называемых оболочками,
|которые можно использовать для обращения к источникам данных Microsoft SQL
|Server. Оболочка - это механизм, посредством которого серверы
|объединения подключаются к источникам данных и получают от них данные.
|Используемая оболочка зависит от платформы, на которой запускается DB2
|Universal Database. Чтобы выбрать подходящую оболочку, посмотрите Табл. 3.
|
Драйвер ODBC | Платформа | Имя оболочки |
Драйвер ODBC Версии 3.0 (или новее) | Windows NT | DJXMSSQL3 |
Драйвер MERANT DataDirect Connect ODBC Версии 3.6 | AIX | MSSQLODBC3 |
|С помощью оператора CREATE WRAPPER задайте оболочку, которая будет |использоваться для работы с источниками данных Microsoft SQL Server. |Ниже приводится пример оператора CREATE WRAPPER:
|CREATE WRAPPER DJXMSSQL3
|где DJXMSSQL3 - имя оболочки по умолчанию, используемое на |сервере DB2 for Windows NT (с использованием драйвера ODBC Версии |3.0). Для сервера DB2 for AIX нужно задать имя оболочки |MSSQLODBC3.
|Имя оболочки по умолчанию можно заменить на выбранное вами имя. |Однако в этом случае придется включить параметр LIBRARY и указать имя |библиотеки оболочки для платформы сервера объединения в операторе CREATE |WRAPPER. Например: |
|CREATE WRAPPER имя_оболочки LIBRARY 'djxmssql3.dll'
|где имя_оболочки - имя, которое вы хотите присвоить оболочке, а |'djxmssql3.dll' - имя библиотеки.
|CREATE WRAPPER имя_оболочки LIBRARY 'libmssql3.a'
|где имя_оболочки - имя, которое вы хотите присвоить оболочке, а |'libdjxmssql.a' - имя библиотеки. |
|Дополнительную информацию об именах библиотек оболочек смотрите в описании |оператора CREATE WRAPPER в справочнике DB2 SQL Reference.
|Задайте каждый источник данных Microsoft SQL Server, с которым вы хотите |соединяться, при помощи оператора CREATE SERVER. Например:
|CREATE SERVER сервер_sql TYPE MSSQLSERVER VERSION 7.0 WRAPPER djxmssql3 |OPTIONS (NODE 'узел_sql', DBNAME 'имя_базы_данных')
|где: |
|Хотя имя узла указывается как необязательный параметр, при работе с |источниками данных Microsoft SQL Server его задание необходимо. В |Windows посмотрите DSN на вкладке System DSN инструмента Windows ODBC Data |Source Administrator. В AIX посмотрите DSN в файле |.odbc.ini в домашнем каталоге владельцев экземпляров |DB2.
|Дополнительные опции, которые можно использовать с оператором CREATE |SERVER, описаны в справочнике DB2 SQL Reference .
|Хотя имя базы данных указывается в операторе CREATE SERVER как |необязательный параметр, при работе с источниками данных Microsoft SQL Server |его задание необходимо. |
|Если ID или пароль пользователя на сервере объединения отличен от ID или |пароля пользователя в источнике данных Microsoft SQL Server, создайте |отображение локального ID пользователя на ID и пароль, заданные в источнике |данных Microsoft SQL Server, с помощью оператора CREATE USER MAPPING, |например:
|CREATE USER MAPPING FOR пользователь_db2 SERVER имя_сервера |OPTIONS (REMOTE_AUTHID 'пользователь_mssql', REMOTE_PASSWORD 'day2night')
|где: |
|Дополнительные опции, которые можно использовать с оператором CREATE USER |MAPPING, описаны в справочнике DB2 SQL Reference .
|Назначьте псевдонимы для всех производных таблиц и таблиц, находящихся в |источнике данных Microsoft SQL Server, к которому вы намереваетесь |подключаться. Эти псевдонимы будут использоваться при запросах |источника данных Microsoft SQL Server. Для назначения псевдонимов |используйте оператор CREATE NICKNAME. Псевдонимы |регистрозависимы. Ниже приводится пример использования оператора CREATE |NICKNAME:
|CREATE NICKNAME mssqlsales FOR server_name.salesdata.europe
|где: |
|имя_сервера_источника_данных.имя_удаленной_схемы.имя_удаленной_таблицы
|Части псевдонима имя_удаленной_схемы и |имя_удаленной_таблицы рекомендуется задавать в двойных |кавычках. |
|После создания псевдонима DB2 пытается получить доступ к таблицам каталога |источника данных (Microsoft SQL Server обращается к ним как к системным |таблицам). При этом происходит проверка соединения с источником |данных. Если соединение завершается неудачно, вы получаете сообщение об |ошибке.
|Повторите этот шаг для каждой таблицы и производной таблицы базы данных, |для которых хотите создать псевдонимы.
|Дополнительную информацию об операторе CREATE NICKNAME смотрите в |справочнике DB2 SQL Reference. Более подробную информацию о |псевдонимах в целом и о проверке отображения типов данных смотрите в книге |Руководство администратора DB2.
|Если вы испытываете трудности при обращении к источнику данных, можно |получить информацию трассировки ODBC, чтобы проанализировать причины |затруднений и устранить их. Чтобы убедиться, что трассировка ODBC |работает правильно, воспользуйтесь инструментом трассировки, предоставляемым |ODBC Data Source Administrator. Включенная трассировка снижает |производительность системы, поэтому ее следует отключить, как только проблема |будет решена.
|Microsoft SQL Server поддерживает многие из опций общих кодовых страниц
|поддержки национальных языков, которые поддерживает DB2 UDB. Для
|источников данных, где используется тот же кодовый набор, что и в DB2,
|преобразование не требуется. В таблице 3 приводятся кодовые страницы,
|которые поддерживает и DB2 Universal Database, и Microsoft SQL Server.
|
|Табл. 4. Опции кодовых страниц DB2 UDB и Microsoft SQL Server
Кодовая страница | Поддерживаемый язык |
---|---|
1252 | Набор символов ISO |
850 | Многоязычная |
437 | Американский английский |
874 | Тайский |
932 | Японский |
936 | Китайский (упрощенный) |
949 | Корейский |
950 | Китайский (традиционный) |
1250 | Центральная Европа |
1251 | Кириллица |
1253 | Греческий |
1254 | Турецкий |
1255 | Иврит |
1256 | Арабский |
|Когда сервер объединения DB2 и Microsoft SQL Server запускаются с разными |кодовыми страницами поддержки национальных языков (NLS), необходимо, чтобы |источник данных Microsoft SQL Server был сконфигурирован в соответствии с |этими эквивалентами, либо чтобы программа клиента могла распознавать |несовпадения и помечать их как ошибки или выполнять отображение данных с |помощью собственной семантики. Если не удается найти ни одной таблицы |преобразования из исходной кодовой страницы в кодовую страницу назначения, DB2 |выдает сообщение об ошибке. Более подробная информация приводится в |документации по Microsoft SQL Server.