Замечания по выпуску


5.6 Обращение к источникам данных Microsoft SQL Server с использованием ODBC (новая глава)

Перед тем, как добавить в сервер объединения DB2 источники данных Microsoft SQL Server, на сервере объединения необходимо установить и сконфигурировать драйвер ODBC. Особенности установки драйвера подробно описаны в установочных процедурах в документации, поставляемой с драйвером ODBC.

Чтобы настроить сервер объединения на доступ к данным из источников данных Microsoft SQL Server, нужно:

  1. Установить и сконфигурировать драйвер ODBC на сервере объединения. Особенности установки драйвера подробно описаны в установочных процедурах в документации, поставляемой с драйвером ODBC.

    На серверах DB2 for Windows NT:
    Сконфигурируйте системное имя источника данных (DSN) с помощью менеджера устройств ODBC.

    На серверах DB2 for AIX:
    Установите потоковую версию библиотек, поставляемых MERANT, первой записью в LIBPATH задайте каталог библиотеки MERANT и настройте файл .odbc.ini. Создайте файл .odbc.ini в домашнем каталоге.
  2. Установите DB2 Relational Connect Версии 7.2. Смотрите раздел 5.3.2, Установка DB2 Relational Connect.
  3. Добавьте источники данных Microsoft SQL Server на сервер объединения.
  4. Задайте кодовые страницы Microsoft SQL Server.

В этой главе обсуждаются шаги 3 и 4.

Указания этой главы относятся к платформам Windows NT и AIX. Особенности конкретных платформ оговариваются специально.

5.6.1 Добавление на сервер объединения источников данных Microsoft SQL Server

После установки драйвера ODBC и DB2 Relational Connect добавьте на сервер объединения источники данных Microsoft SQL Server, выполнив следующие шаги:

  1. Задайте переменные среды (только для AIX).
  2. Запустите сценарий оболочки (только для AIX).
  3. Необязательно: Задайте переменную среды DB2_DJ_COMM.
  4. Перезапустите экземпляр DB2 (только для AIX).
  5. Создайте оболочку.
  6. Создайте сервер.
  7. Создайте отображение пользователей.
  8. Создайте псевдонимы для таблиц и производных таблиц.
  9. Необязательно: Получите трассировки ODBC.

Эти шаги подробно объясняются в разделах ниже.

5.6.1.1 Шаг 1: Задание переменных среды (только для AIX)

Задайте переменные среды источника данных: внесите изменения в файл db2dj.ini и введите команду db2set. В файле db2dj.ini содержится информация о конфигурации для соединения с источниками данных Microsoft SQL Server. Команда db2set приводит реестр профиля DB2 в соответствие с вашими настройками.

В системе многораздельной базы данных можно использовать один файл db2dj.ini для всех узлов определенного экземпляра сервера или же отдельные файлы db2dj.ini для одного или нескольких узлов экземпляра сервера. В системе однораздельных баз данных может быть только один файл db2dj.ini на один экземпляр сервера.

Чтобы задать переменные среды:

  1. Отредактируйте файл db2dj.ini в каталоге $HOME/sqllib/cfg, задав следующие переменные среды:
    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

5.6.1.2 Шаг 2: Запуск сценария оболочки (только для AIX)

Сценарий оболочки djxlink.sh компонует клиентские библиотеки с библиотеками оболочки. Чтобы запустить сценарий оболочки, введите:

djxlink

5.6.1.3 Шаг 3 (необязательный): Задание переменной среды DB2_DJ_COMM

Если вы считаете, что обращение к источнику данных Microsoft SQL Server занимает слишком много времени, можно улучшить производительность, задав переменную среды DB2_DJ_COMM, чтобы загружать оболочку при инициализации сервера объединения, а не при обращении к этому источнику. Задайте переменную среды DB2_DJ_COMM, чтобы включить библиотеку оболочки, соответствующую оболочке, заданной вами на Шаге 5. Например:

На серверах DB2 for Windows NT:
db2set DB2_DJ_COMM=djxmssql3.dll

На серверах DB2 for AIX:
db2set DB2_DJ_COMM=libmssql3.a

Слева и справа от знака равенства (=) не должно быть пробелов.

Дополнительную информацию об именах библиотек оболочек смотрите в справочнике DB2 SQL Reference.

5.6.1.4 Шаг 4: Перезапуск экземпляра DB2 (только для AIX)

Чтобы гарантировать задание переменных среды в программе, перезапустите экземпляр DB2. При перезапуске экземпляра DB2 вы его обновляете, и внесенные изменения вступают в силу. Перезапустите экземпляр DB2, введя команду:

db2stop
db2start

5.6.1.5 Шаг 5: Создание оболочки

В DB2 Universal Database есть два разных протокола, называемых оболочками, которые можно использовать для обращения к источникам данных Microsoft SQL Server. Оболочка - это механизм, посредством которого серверы объединения подключаются к источникам данных и получают от них данные. Используемая оболочка зависит от платформы, на которой запускается DB2 Universal Database. Чтобы выбрать подходящую оболочку, посмотрите Табл. 2.

Табл. 2. Драйверы ODBC
Драйвер 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. Например:

На серверах DB2 for Windows NT:
CREATE WRAPPER имя_оболочки LIBRARY 'djxmssql3.dll'

где имя_оболочки - имя, которое вы хотите присвоить оболочке, а 'djxmssql3.dll' - имя библиотеки.

На серверах DB2 for AIX:
CREATE WRAPPER имя_оболочки LIBRARY 'libmssql3.a'

где имя_оболочки - имя, которое вы хотите присвоить оболочке, а 'libdjxmssql.a' - имя библиотеки.

Дополнительную информацию об именах библиотек оболочек смотрите в описании оператора CREATE WRAPPER в справочнике DB2 SQL Reference.

5.6.1.6 Шаг 6: Создание сервера

Задайте каждый источник данных Microsoft SQL Server, с которым вы хотите соединяться, при помощи оператора CREATE SERVER. Например:

CREATE SERVER сервер_sql TYPE MSSQLSERVER VERSION 7.0 WRAPPER djxmssql3
OPTIONS (NODE 'узел_sql', DBNAME 'имя_базы_данных')

где:

сервер_sql
- Имя, присваиваемое серверу Microsoft SQL Server. Это имя должно быть уникальным.

MSSQLSERVER
- Тип источника данных, доступ к которому вы конфигурируете.

7.0
- Версия Microsoft SQL Server, к которому производится подключение. DB2 Universal Database поддерживает Microsoft SQL Server Версий 6.5 и 7.0.

djxmssql3
- Имя оболочки, которое вы задали в операторе CREATE WRAPPER.

'узел_sql'
- имя системного источника данных (DSN), ссылающегося на Microsoft SQL Server. Значение этого параметра регистрозависимо.

Хотя имя узла указывается как необязательный параметр, при работе с источниками данных Microsoft SQL Server его задание необходимо.

Дополнительные опции, которые можно использовать с оператором CREATE SERVER, описаны в справочнике DB2 SQL Reference.

'имя_базы_данных'
- Имя базы данных, к которой вы подсоединяетесь.

Хотя имя базы данных указывается в операторе CREATE SERVER как необязательный параметр, при работе с источниками данных Microsoft SQL Server его задание необходимо.

5.6.1.7 Шаг 7: Создание отображения пользователей

Если 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ль')

где:

пользователь_db2
- Локальный ID пользователя, для которого создается отображение на ID пользователя, заданный в источнике данных Microsoft SQL Server.

имя_сервера
- Имя сервера, определенное в операторе CREATE SERVER.

'пользователь_mssql'
- ID пользователя в источнике данных Microsoft SQL Server, с которым устанавливается соответствие идентификатора пользователь_db2. Значение этого параметра регистрозависимо.

'пар0ль'
- Пароль пользователя "пользователь_mssql". Значение этого параметра регистрозависимо.

Дополнительные опции, которые можно использовать с оператором CREATE USER MAPPING, описаны в справочнике DB2 SQL Reference.

5.6.1.8 Шаг 8: Создание псевдонимов для таблиц и производных таблиц

Назначьте псевдонимы для всех производных таблиц и таблиц, находящихся в источнике данных Microsoft SQL Server, к которому вы намереваетесь подключаться. Эти псевдонимы будут использоваться при запросах источника данных Microsoft SQL Server. Для назначения псевдонимов используйте оператор CREATE NICKNAME. Псевдонимы регистрозависимы. Ниже приводится пример использования оператора CREATE NICKNAME:

CREATE NICKNAME mssqlsales FOR server_name.salesdata.europe

где:

mssqlsales
- Уникальный псевдоним таблицы или производной таблицы Microsoft SQL Server.

server_name.salesdata.europe
- Трехчастный идентификатор в формате:

имя_сервера_источника_данных.имя_удаленной_схемы.имя_удаленной _таблицы

Части псевдонима имя_удаленной_схемы и имя_удаленной_таблицы рекомендуется задавать в двойных кавычках.

После создания псевдонима DB2 пытается получить доступ к таблицам каталога источника данных (Microsoft SQL Server обращается к ним как к системным таблицам). При этом происходит проверка соединения с источником данных. Если соединение завершается неудачно, вы получаете сообщение об ошибке.

Повторите этот шаг для каждой таблицы и производной таблицы базы данных, для которых хотите создать псевдонимы.

Дополнительную информацию об операторе CREATE NICKNAME смотрите в справочнике DB2 SQL Reference. Более подробную информацию о псевдонимах в целом и о проверке отображения типов данных смотрите в публикации Руководство администратора DB2.

5.6.1.9 Шаг 9 (необязательный): Получение трассировок ODBC

Если вы испытываете трудности при обращении к источнику данных, можно получить информацию трассировки ODBC, чтобы проанализировать причины затруднений и устранить их. Чтобы убедиться, что трассировка ODBC работает правильно, воспользуйтесь инструментом трассировки, предоставляемым ODBC Data Source Administrator. Включенная трассировка снижает производительность системы, поэтому ее следует отключить, как только проблема будет решена.

5.6.2 Обзор кодовых страниц Microsoft SQL Server

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.


[ Начало страницы | Страница назад | Страница вперед | Содержание | Индекс ]