Перед тем, как добавить в сервер объединения DB2 источники данных Informix, на сервере объединения необходимо установить и сконфигурировать программное обеспечение Informix Client SDK. Особенности установки программного обеспечения Client SDK подробно описаны в установочных процедурах в документации, поставляемой с программным обеспечением баз данных Informix. Не забудьте включить в установку библиотеки Informix Client SDK.
Чтобы настроить свой сервер объединения на доступ к данным, хранимым в источниках данных Informix:
В этой главе обсуждается шаг 3.
Указания этой главы относятся к операционным системам AIX, Solaris и HP-UX. Особенности конкретных операционных систем оговариваются специально.
Чтобы добавить источник данных Informix на сервер объединения:
Эти шаги подробно объясняются в данном разделе.
Задайте переменные среды источника данных: внесите изменения в файл db2dj.ini и введите команду db2set. В файле db2dj.ini содержится информация о конфигурации программного обеспечения клиента Informix, установленного на вашем сервере объединения. Команда db2set приводит реестр профиля DB2 в соответствие с вашими настройками.
В системе многораздельной базы данных можно использовать один файл db2dj.ini для всех узлов определенного экземпляра сервера или же отдельные файлы db2dj.ini для одного или нескольких узлов экземпляра сервера. В системе однораздельных баз данных может быть только один файл db2dj.ini на один экземпляр сервера.
Чтобы задать переменные среды:
Задайте переменную среды INFORMIXDIR, указав путь к каталогу, где устанавливается программное обеспечение Informix Client SDK, например:
|INFORMIXDIR=/informix/csdk
Эта переменная задает имя сервера Informix по умолчанию.
|INFORMIXSERVER=inf93 |
Замечание: Хотя оболочкой Informix значение этой переменной не используется, клиент Informix требует, чтобы эта переменная была задана. Данная оболочка использует значение опции сервера node, задающее сервер баз данных Informix, к которому вы хотите обращаться.
При использовании для файла Informix sqlhosts пути по умолчанию ($INFORMIXDIR/etc/sqlhosts) эту переменную задавать необязательно. Однако при использовании для файла Informix sqlhosts другого пути эту переменную необходимо задать, указав полное имя файла Informix sqlhosts. Например:
|INFORMIXSQLHOSTS=/informix/csdk/etc/my_sqlhosts |
PATH=$INFORMIXDIR/bin:$PATH export PATH INFORMIXDIR=<путь_клиента_informix> export INFORMIXDIR
где путь_клиента_informix - путь на сервере объединения к каталогу, где устанавливается клиент Informix. Если имя в пути содержит пробелы, такой путь нужно заключить в двойные кавычки (").
. .profile
Если вы используете файл db2dj.ini в системе однораздельных баз данных или хотите применить файл db2dj.ini только к текущему узлу, введите:
db2set DB2_DJ_INI=sqllib/cfg/db2dj.ini
Если вы используете файл db2dj.ini в системе многораздельной базы данных и хотите применить значения в файле db2dj.ini ко всем узлам в пределах данного экземпляра, введите:
db2set -g DB2_DJ_INI = sqllib/cfg/db2dj.ini
Если вы используете файл db2dj.ini в системе многораздельной базы данных и хотите применить значения в файле db2dj.ini к конкретному узлу, введите:
db2set -i INSTANCEX 3 DB2_DJ_INI=sqllib/cfg/node3.ini
где:
Для возможности доступа к источникам данных Informix сервер объединения DB2 нужно скомпоновать с библиотеками клиента. В процессе компоновки создается библиотека оболочки для каждого источника данных, с которым будет связываться сервер объединения. Библиотека оболочки создается, когда вы запускаете сценарий djxlinkInformix. Чтобы запустить сценарий djxlinkInformix, введите:
djxlinkInformix
|Сценарий djxlinkInformix создает только библиотеку оболочки |Informix. Существует и другой сценарий, djxlink, который пытается |создать библиотеку оболочки для каждого источника данных, поддерживаемого DB2 |Universal Database (Oracle, Microsoft SQL Server и т.д.). |Если у вас программное обеспечение клиента есть не для всех установленных |источников данных, при запуске сценария djxlink вы получите сообщение об |ошибке для каждого из пропущенных источников.
|Для запуска сценариев djxlinkInformix и djxlink у вас должны быть права |системного администратора UNIX (root).
|Сценарии djxlinkInformix и djxlink записывают подробные сообщения об |ошибках и предупреждения в заданный файл в зависимости от операционной |системы. Например, в AIX сценарий djxlinkInformix записывает эти |сообщения в файл /usr/lpp/db2_07_01/lib/djxlinkInformix.out, |а сценарий djxlink - в файл |/usr/lpp/db2_07_01/lib/djxlink.out.
|Сценарии djxlinkInformix и djxlink создают библиотеку оболочки в заданном |каталоге, который зависит от операционной системы. Например, в AIX |библиотека оболочки libinformix.a создается в каталоге |/usr/lpp/db2_07_01/lib.
|После создания библиотеки оболочки libinformix.a проверьте |установленные на нее разрешения, чтобы гарантировать возможность ее чтения и |выполнения для владельцев экземпляров DB2. Если владельцы экземпляров |DB2 не входят в состав группы System, разрешения на библиотеку оболочки |libinformix.a должны быть -rwxr-xr-x root |system...libinformix.a. |
Чтобы гарантировать задание переменных среды в программе, перезапустите экземпляр DB2. При перезапуске экземпляра DB2 вы обновляете его, и внесенные изменения вступают в силу.
Чтобы перезапустить экземпляр DB2, введите следующую команду:
db2stop db2start
|Этот файл задает положение и тип соединения (протокол) для каждого сервера |баз данных Informix. Есть несколько способов создать этот файл. |Его можно скопировать из другой системы, где установлен комплект Informix |Connect SDK или Informix Client SDK, соединенный с сервером Informix. |Кроме того, файл sqlhosts можно создать, сконфигурировав комплект Informix |Client SDK на сервере DB2 для соединения с сервером Informix.
|После копирования или создания файла sqlhosts владельцу экземпляра DB2 |нужно при помощи Informix dbaccess (если он находится на сервере DB2) |соединиться с сервером Informix и направить ему запрос. Это установит |возможность соединения Informix Client SDK с сервером Informix, прежде чем вы |попробуете сконфигурировать DB2 Relational Connect для работы с комплектом |Informix Client SDK.
|Дополнительную информацию о конфигурировании этого файла смотрите в |руководстве Informix Administrators Guide for Informix Dynamic Server.
Предупреждение: |
---|
Если не задать имя сервера баз данных Informix в файле sqlhosts, при выполнении операции, где требуется соединение с сервером баз данных Informix, вы получите сообщение об ошибке. |
С помощью оператора CREATE WRAPPER задайте оболочку, которая будет использоваться для работы с источниками данных Informix. Оболочка - это механизм, посредством которого серверы объединения подключаются к источникам данных и получают от них данные. Ниже приводится пример оператора CREATE WRAPPER:
CREATE WRAPPER имя_оболочки
где имя_оболочки - informix; по умолчанию программное обеспечение Informix Client SDK использует имя оболочки informix.
Имя оболочки по умолчанию можно заменить на выбранное вами имя. Однако в этом случае придется включить параметр LIBRARY и указать имя библиотеки оболочки для сервера объединения в операторе CREATE WRAPPER. Дополнительную информацию об именах библиотек оболочек смотрите в описании оператора CREATE WRAPPER в справочнике DB2 SOL Reference.
Имена библиотек оболочек для Informix:
Чтобы улучшить производительность при обращении к источнику данных Informix, задайте на сервере объединения переменную среды DB2_DJ_COMM. Эта переменная определяет, загружается ли оболочка при инициализации сервера объединения. Задайте переменную среды DB2_DJ_COMM, чтобы включить библиотеку оболочки, соответствующую оболочке, заданной вами в предыдущем шаге. При использовании интерфейсов командной строки оболочек Korn или Bourne применяются следующие команды экспорта:
DB2_DJ_COMM='libinformix.a' export DB2_DJ_COMM
DB2_DJ_COMM='libinformix.so' export DB2_DJ_COMM
DB2_DJ_COMM='libinformix.sl' export DB2_DJ_COMM
Слева и справа от знака равенства (=) не должно быть пробелов.
При использовании интерфейса командной строки оболочки C задайте переменные среды, введя следующие команды:
setenv DB2_DJ_COMM 'libinformix.a' (для серверов DB2 for AIX) setenv DB2_DJ_COMM 'libinformix.so' (для серверов DB2 for Solaris Operating Environment) setenv DB2_DJ_COMM 'libinformix.sl' (для серверов DB2 for HP-UX)
Дополнительную информацию об именах библиотек оболочек и переменной среды DB2_DJ_COMM смотрите в справочнике DB2 SQL Reference.
C помощью оператора CREATE SERVER задайте каждый сервер Informix, к источникам данных которого вы намереваетесь обращаться. Синтаксис этого оператора:
CREATE SERVER имя_сервера TYPE тип_сервера VERSION версия_сервера WRAPPER имя_оболочки OPTIONS (NODE 'имя_узла', DBNAME 'имя_базы_данных')
где:
Пример оператора CREATE SERVER:
CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'sales')
Опции сервера FOLD_ID и FOLD_PW задают, переводит ли оболочка ID и пароль пользователя перед отправкой их в Informix в верхний или в нижний регистр. Пример оператора CREATE SERVER с опциями сервера FOLD_ID и FOLD_PW:
CREATE SERVER asia TYPE informix VERSION 9 WRAPPER informix OPTIONS (NODE 'abc', DBNAME 'sales', FOLD_ID 'U', FOLD_PW 'U')
Если ID или пароль пользователя на сервере объединения отличается от ID или пароля пользователя в источнике данных Informix, создайте отображение локального ID пользователя на ID и пароль, заданные в источнике данных Informix, с помощью оператора CREATE USER MAPPING, например:
CREATE USER MAPPING FOR локальный_id_пользователя SERVER имя_сервера OPTIONS (REMOTE_AUTHID 'локальный_id_пользователя', REMOTE_PASSWORD 'удаленный_пароль')
где:
Пример оператора CREATE USER MAPPING:
CREATE USER MAPPING FOR robert SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night')
Для отображения ID авторизации пользователя можно воспользоваться специальным регистром DB2 USER, введя оператор CREATE USER MAPPING для ID авторизации источника данных, заданного в пользовательской опции REMOTE_AUTHID. Пример оператора CREATE USER MAPPING с использованием специального регистра USER:
CREATE USER MAPPING FOR USER SERVER asia OPTIONS (REMOTE_AUTHID 'bob', REMOTE_PASSWORD 'day2night')
Подробную информацию о дополнительных опциях смотрите в справочнике DB2 SQL Reference .
Назначьте псевдоним для каждой таблицы, производной таблицы и синонима Informix в источнике данных Informix. Псевдонимы могут быть длиной до 128 символов. Эти псевдонимы будут использоваться при запросах источника данных Informix. Если вы не заключите имена сервера, схемы и таблицы в двойные кавычки ("), DB2 переведет их в верхний регистр. Ниже приводится пример использования оператора CREATE NICKNAME:
CREATE NICKNAME псевдоним FOR имя_сервера."имя_удаленной_схемы"."имя_удаленной_таблицы"
где:
Пример оператора CREATE NICKNAME:
CREATE NICKNAME salesjapan FOR asia."salesdata"."japan"
Повторите данный шаг для каждой таблицы и производной таблицы, для которой хотите создать псевдоним. После создания псевдонима DB2 будет использовать соединение для запроса каталога источника данных. При таком запросе происходит проверка вашего соединения с источником данных. Если соединение не работает, вы получаете сообщение об ошибке.
Более подробную информацию об операторе CREATE NICKNAME смотрите в справочникеDB2 SQL Reference. Более подробная информация о псевдонимах в целом приводится в книге Руководство администратора DB2.