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


6.8 Доступ к источникам данных Informix (новая глава)

Перед тем, как добавить в сервер объединения DB2 источники данных Informix, на сервере объединения необходимо установить и сконфигурировать программное обеспечение Informix Client SDK. Особенности установки программного обеспечения Client SDK подробно описаны в установочных процедурах в документации, поставляемой с программным обеспечением баз данных Informix. Не забудьте включить в установку библиотеки Informix Client SDK.

Чтобы настроить свой сервер объединения на доступ к данным, хранимым в источниках данных Informix:

  1. Установите DB2 Relational Connect. Смотрите раздел 6.3.3, Установка DB2 Relational Connect.
  2. Примените последний пакет DB2 FixPak.
  3. Добавьте источники данных Informix на сервер объединения.

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

Указания этой главы относятся к операционным системам AIX, Solaris и HP-UX. Особенности конкретных операционных систем оговариваются специально.

6.8.1 Добавление источников данных Informix на сервер объединения

Чтобы добавить источник данных Informix на сервер объединения:

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

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

6.8.1.1 Шаг 1: Задание переменных среды и изменение реестра профиля

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

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

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

  1. Отредактируйте файл db2dj.ini в каталоге sqllib/cfg, задав следующие переменные среды:
    Прим.:
    |Если этого файла еще нет в системе, вы можете создать его |сами. |

    INFORMIXDIR

    Задайте переменную среды INFORMIXDIR, указав путь к каталогу, где устанавливается программное обеспечение Informix Client SDK, например:

    |INFORMIXDIR=/informix/csdk
    
    

    INFORMIXSERVER

    Эта переменная задает имя сервера Informix по умолчанию.

    |INFORMIXSERVER=inf93
    | 
    
    

    Замечание: Хотя оболочкой Informix значение этой переменной не используется, клиент Informix требует, чтобы эта переменная была задана. Данная оболочка использует значение опции сервера node, задающее сервер баз данных Informix, к которому вы хотите обращаться.

    INFORMIXSQLHOSTS

    При использовании для файла Informix sqlhosts пути по умолчанию ($INFORMIXDIR/etc/sqlhosts) эту переменную задавать необязательно. Однако при использовании для файла Informix sqlhosts другого пути эту переменную необходимо задать, указав полное имя файла Informix sqlhosts. Например:

    |INFORMIXSQLHOSTS=/informix/csdk/etc/my_sqlhosts
    | 
    
    
  2. Измените файл .profile экземпляра DB2, задав переменные среды Informix. Для этого задайте и экспортируйте каждую переменную, введя следующие команды:
    PATH=$INFORMIXDIR/bin:$PATH
    export PATH
     
    INFORMIXDIR=<путь_клиента_informix>
    export INFORMIXDIR
    

    где путь_клиента_informix - путь на сервере объединения к каталогу, где устанавливается клиент Informix. Если имя в пути содержит пробелы, такой путь нужно заключить в двойные кавычки (").

  3. Запустите на выполнение .profile экземпляра DB2, введя:
    . .profile
    
  4. Введите команду db2set, чтобы внести сделанные изменения в реестр профиля DB2. Синтаксис этой команды db2set зависит от структуры вашей системы баз данных. Этот шаг необходим, только если вы используете файл db2dj.ini в одной из следующих структур систем баз данных:

    Если вы используете файл db2dj.ini в системе однораздельных баз данных или хотите применить файл db2dj.ini только к текущему узлу, введите:

    db2set DB2_DJ_INI=sqllib/cfg/db2dj.ini
    
    Прим.:
    |Пути в этом разделе надо указывать полностью. Например, |my_home/my_instance/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 
    

    где:

    ЭКЗЕМПЛЯРx
    - Имя нужного экземпляра.

    3
    - Номер узла, указанный в файле db2nodes.cfg.

    node3.ini
    - Измененный и переименованный вариант файла db2dj.ini.

6.8.1.2 Шаг 2: Компоновка DB2 с программным обеспечением клиента Informix

Для возможности доступа к источникам данных 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. |

6.8.1.3 Шаг 3: Перезапуск экземпляра DB2

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

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

На серверах DB2 for AIX, операционной среды Solaris и HP-UX:
db2stop
db2start

|6.8.1.4 Шаг 4: Создание файла Informix sqlhosts

|Этот файл задает положение и тип соединения (протокол) для каждого сервера |баз данных 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, вы получите сообщение об ошибке.

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

С помощью оператора CREATE WRAPPER задайте оболочку, которая будет использоваться для работы с источниками данных Informix. Оболочка - это механизм, посредством которого серверы объединения подключаются к источникам данных и получают от них данные. Ниже приводится пример оператора CREATE WRAPPER:

CREATE WRAPPER имя_оболочки

где имя_оболочки - informix; по умолчанию программное обеспечение Informix Client SDK использует имя оболочки informix.

Имя оболочки по умолчанию можно заменить на выбранное вами имя. Однако в этом случае придется включить параметр LIBRARY и указать имя библиотеки оболочки для сервера объединения в операторе CREATE WRAPPER. Дополнительную информацию об именах библиотек оболочек смотрите в описании оператора CREATE WRAPPER в справочнике DB2 SOL Reference.

Имена библиотек оболочек для Informix:

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

Чтобы улучшить производительность при обращении к источнику данных Informix, задайте на сервере объединения переменную среды DB2_DJ_COMM. Эта переменная определяет, загружается ли оболочка при инициализации сервера объединения. Задайте переменную среды DB2_DJ_COMM, чтобы включить библиотеку оболочки, соответствующую оболочке, заданной вами в предыдущем шаге. При использовании интерфейсов командной строки оболочек Korn или Bourne применяются следующие команды экспорта:

На серверах DB2 for AIX:
DB2_DJ_COMM='libinformix.a'
export DB2_DJ_COMM

На серверах DB2 for Solaris Operating Environment:
DB2_DJ_COMM='libinformix.so'
export DB2_DJ_COMM

На серверах DB2 for HP-UX:
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 Environment)
setenv DB2_DJ_COMM 'libinformix.sl' (для серверов DB2 for HP-UX)

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

6.8.1.7 Шаг 7: Создание сервера

C помощью оператора CREATE SERVER задайте каждый сервер Informix, к источникам данных которого вы намереваетесь обращаться. Синтаксис этого оператора:

CREATE SERVER имя_сервера TYPE тип_сервера VERSION версия_сервера WRAPPER имя_оболочки
OPTIONS (NODE 'имя_узла', DBNAME 'имя_базы_данных')

где:

|имя_сервера
|Имя, назначаемое вами для сервера баз данных Informix. Это имя |должно быть уникально и не может совпадать ни с одним из уже существующих в |базе данных объединения параметров имя_сервера. Это имя_сервера не |может также совпадать с уже существующими в базе данных объединения именами |табличных пространств.

TYPE тип_сервера
Задает тип источника данных, доступ к которому вы конфигурируете.
Прим.:
|Для оболочки Informix тип_сервера должен быть informix. |

VERSION версия_сервера
Версия сервера баз данных Informix, к которому вы намереваетесь обращаться. Поддерживаемые версии Informix - 5, 7, 8 и 9.

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

NODE 'имя_узла'
Имя узла, на котором расположен имя_сервера. имя_узла нужно задать в файле Informix sqlhosts (смотрите шаг 4). Хотя имя_узла указывается в операторе CREATE SERVER SQL как необязательный параметр, при работе с источниками данных Informix его задание необходимо. Это значение регистрозависимо. Информацию о дополнительных опциях смотрите в справочнике DB2 SQL Reference .

DBNAME 'имя_базы_данных'
Имя базы данных Informix, к которой хотите обращаться.

Пример оператора 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')

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

Если ID или пароль пользователя на сервере объединения отличается от ID или пароля пользователя в источнике данных Informix, создайте отображение локального ID пользователя на ID и пароль, заданные в источнике данных Informix, с помощью оператора CREATE USER MAPPING, например:

CREATE USER MAPPING FOR локальный_id_пользователя SERVER имя_сервера
OPTIONS (REMOTE_AUTHID 'локальный_id_пользователя', REMOTE_PASSWORD 'удаленный_пароль')

где:

локальный_id_пользователя
Локальный ID пользователя, для которого создается отображение на ID пользователя, заданный в источнике данных Informix.

SERVER имя_сервера
Имя источника данных Informix, заданное в операторе CREATE SERVER.

REMOTE_AUTHID 'удаленный_id_пользователя'
ID пользователя на сервере баз данных Informix, с которым устанавливается соответствие идентификатора локальный_id_пользователя. Это значение регистрозависимо, если в операторе CREATE SERVER для опции сервера FOLD_ID не задано значение 'U' или 'L'.

REMOTE_PASSWORD 'удаленный_пароль'
|Пароль пользователя, связанный с |"удаленным_id_пользователя". Это значение регистрозависимо, |если в операторе CREATE SERVER для опции сервера FOLD_PW не задано значение |'U' или 'L'.

Пример оператора 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 .

6.8.1.9 Шаг 9: Создание псевдонимов для таблиц, производных таблиц и синонимов Informix

Назначьте псевдоним для каждой таблицы, производной таблицы и синонима Informix в источнике данных Informix. Псевдонимы могут быть длиной до 128 символов. Эти псевдонимы будут использоваться при запросах источника данных Informix. Если вы не заключите имена сервера, схемы и таблицы в двойные кавычки ("), DB2 переведет их в верхний регистр. Ниже приводится пример использования оператора CREATE NICKNAME:

CREATE NICKNAME псевдоним FOR имя_сервера."имя_удаленной_схемы"."имя_удаленной_таблицы"

где:

псевдоним
Уникальный псевдоним, используемый для идентификации таблицы, производной таблицы или синонима Informix.

server_name."имя_удаленной_схемы"."имя_удаленной_таблицы"
Трехчастный идентификатор для удаленного объекта.

Пример оператора CREATE NICKNAME:

CREATE NICKNAME salesjapan FOR asia."salesdata"."japan"

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

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


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