Перед тем, как добавить в сервер объединения 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 LIBPATH=<путь к драйверу 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
где:
Сценарий оболочки 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. Чтобы выбрать подходящую оболочку, посмотрите Табл. 2.
Драйвер 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 его задание необходимо.
Дополнительные опции, которые можно использовать с оператором 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 'пар0ль')
где:
Дополнительные опции, которые можно использовать с оператором 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.
Табл. 3. Опции кодовых страниц 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.