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


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

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

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

  1. Установить DB2 Relational Connect Версии 7.2. Смотрите раздел 5.3.2, Установка DB2 Relational Connect.
  2. Добавить источники данных Sybase на сервер объединения.
  3. Задать кодовые страницы Sybase.

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

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

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

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

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

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

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

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

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

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

  1. Отредактируйте файл db2dj.ini в каталоге sqllib/cfg, задав следующую переменную среды:
     SYBASE="<домашний каталог Sybase>"
     
    

    где <домашний каталог Sybase> - каталог установки клиента Sybase.

  2. Измените файл .profile экземпляра DB2, задав переменную среды Sybase. Для этого введите следующие команды:
    export PATH="$SYBASE/bin:$PATH"
    export SYBASE="<домашний каталог Sybase>"
    

    где <домашний каталог Sybase> - каталог установки клиента Sybase.

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

    Если вы используете файл 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 ЭКЗЕМПЛЯРx 3 DB2_DJ_INI = sqllib/cfg/node3.ini 
    

    где:

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

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

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

5.5.1.2 Шаг 2: Компоновка DB2 с программным обеспечением клиента Sybase (только для AIX и Solaris)

Для возможности доступа к источникам данных Sybase сервер объединения DB2 нужно скомпоновать с библиотеками клиента. В процессе компоновки создается оболочка для каждого источника данных, с которым будет связываться сервер объединения. Запуская сценарий djxlink, вы создаете библиотеку оболочки. Чтобы запустить сценарий djxlink, введите:

djxlink

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

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

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

На серверах DB2 для Windows NT:
NET STOP имя_экземпляра
NET START имя_экземпляра

На серверах DB2 для AIX и Solaris:
db2stop
db2start

5.5.1.4 Шаг 4: Создание и настройка файла интерфейсов

Чтобы создать и настроить файл интерфейсов, нужно создать этот файл и сделать его доступным.

  1. Чтобы создать файл интерфейсов, включающий в себя данные для всех серверов Sybase Open Server, к которым вы хотите получить доступ, воспользуйтесь утилитой, поставляемой с Sybase. Дополнительную информацию об использовании этой утилиты смотрите в документации по установке Sybase.

    В Windows NT этот файл обычно называется sql.ini. Переименуйте этот файл из sql.ini в interfaces, чтобы он назывался одинаково во всех платформах. Если вы не переименуете sql.ini в interfaces, надо будет воспользоваться параметром IFILE или опцией CONNECTSTRING, которые объясняются в шаге 8.

    В системах AIX и Solaris этот файл называется <домашний_каталог_экземпляра>/sqllib/interfaces.

  2. Сделайте файл интерфейсов доступным для DB2.

    На серверах DB2 для Windows NT:
    Поместите этот файл в каталог %DB2PATH% экземпляра DB2.

    На серверах DB2 для AIX и Solaris:
    Поместите этот файл в каталог %HOME/sqllib% экземпляра DB2. Воспользуйтесь командой ln для компоновки с файлом из каталога $HOME/sqllib экземпляра DB2. Например:
    ln -s -f /home/sybase/interfaces  /home/db2djinst1/sqllib
    

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

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

CREATE WRAPPER CTLIB 

где CTLIB - имя оболочки по умолчанию, используемое с программным обеспечением Sybase Open Client. Оболочку CTLIB можно использовать на серверах Windows NT, AIX и Solaris.

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

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

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

На серверах DB2 для Windows NT:
db2set DB2_DJ_COMM='ctlib.dll'

На серверах DB2 для AIX:
db2set DB2_DJ_COMM='libctlib.a' 

На серверах DB2 для Solaris:
db2set DB2_DJ_COMM='libctlib.so' 

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

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

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

Задайте каждый сервер Sybase, к источникам данных которого вы намереваетесь обращаться, с помощью оператора CREATE SERVER; например:

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

где:

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

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

12.0
- Версия Sybase, к которой производится подключение. Поддерживаются версии 10.0, 11.0, 11.1, 11.5, 11.9 и 12.0.

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

'узел_Sybase'
- Имя узла, на котором расположен сервер_Sybase. Возьмите это значение из файла интерфейсов. Оно регистрозависимо.

Хотя имя узла указывается как необязательный параметр, при работе с источниками данных Sybase его задание необходимо. Информацию о дополнительных опциях смотрите в справочнике DB2 SQL Reference.

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

5.5.1.8 Шаг 8 (необязательный): Задание опции сервера CONNECTSTRING

Задайте предельные значения для срока ожидания, путь и имя для файла интерфейсов, а также размер пакета файла интерфейсов. Предельные значения для срока ожидания используются в Sybase Open Client для прерывания запросов и ответов, которые выполняются слишком долго. Эти предельные значения можно задать в DB2 с помощью опции CONNECTSTRING оператора CREATE SERVER OPTION DDL. С помощью опции CONNECTSTRING задается:

   .-;-------------------------------------------.
   V                                             |
>>----+---------------------------------------+--+-------------><
      +-TIMEOUT-- = --время_в_секундах--------+
      +-LOGIN_TIMEOUT-- = --время_в_секундах--+
      +-IFILE-- = --"строка"------------------+
      +-PACKET_SIZE-- = --размер_в_байтах-----+
      '-;-------------------------------------'
 

TIMEOUT
Задает число секунд, которое DB2 Universal Database будет ждать ответ от Sybase Open Client на любой оператор SQL. Значение время_в_секундах - положительное целое число в диапазоне целых числе DB2 Universal Database. Задаваемое вами значение для срока ожидания зависит от используемой оболочки. Все серверы Windows NT, AIX и Solaris могут использовать оболочку DBLIB. Значение по умолчанию для оболочки DBLIB - 0. На серверах Windows NT, AIX и Solaris это значение по умолчанию для DBLIB заставляет DB2 Universal Database ожидать ответ неопределенно долгое время.

LOGIN_TIMEOUT
Задает время в секундах, которое DB2 Universal Database будет ждать ответ от Sybase Open Client на запрос по регистрации. Значения по умолчанию такие же, как и для TIMEOUT.

IFILE
Задает путь и имя для файла интерфейсов Sybase Open Client. Путь, который указывается в строке, должен быть заключен в двойные кавычки ("). На серверах Windows NT значение по умолчанию - %DB2PATH%. На серверах AIX и Solaris значение по умолчанию - sqllib/interfaces в домашнем каталоге экземпляра DB2 Universal Database.

PACKET_SIZE
Задает размер пакета файла интерфейсов в байтах. Если источник данных не поддерживает заданный размер пакета, соединение завершится неудачно. Если каждая запись очень большая (например, при вставке строк в большие таблицы), увеличение размера пакета значительно улучшает производительность. Размер в байтах - числовое значение. Дополнительную информацию смотрите в справочных руководствах Sybase.

Примеры:

На серверах Windows NT задайте значение срока ожидания 60 секунд и имя файла интерфейсов C:\etc\interfaces, введя следующее:

CREATE SERVER OPTION connectstring FOR SERVER sybase1
SETTING 'TIMEOUT=60;LOGIN_TIMEOUT=5;IFILE="C:\etc\interfaces";'
 

На серверах AIX и Solaris задайте значение срока ожидания 60 секунд и имя файла интерфейсов /etc/interfaces, введя:

CREATE SERVER OPTION connectstring FOR SERVER sybase1
SETTING 'TIMEOUT=60;PACKET_SIZE=4096;IFILE="/etc/interfaces";'
 

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

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

 CREATE USER MAPPING FOR пользователь_DB2 SERVER сервер_Sybase
OPTIONS ( REMOTE_AUTHID 'пользователь_Sybase', REMOTE_PASSWORD 'пар0ль')

где:

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

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

'пользователь_Sybase'
- ID пользователя в источнике данных Sybase, с которым устанавливается соответствие идентификатора пользователь_DB2. Значение этого параметра регистрозависимо.

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

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

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

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

CREATE NICKNAME SYBSALES FOR SYBSERVER."salesdata"."europe"

где:

SYBSALES
- Уникальный псевдоним таблицы или производной таблицы Sybase.

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

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

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

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

5.5.2 Задание кодовых страниц Sybase

Этот шаг необходим, только если сервер объединения DB2 и сервер Sybase запускаются с разными кодовыми страницами. Для источников данных, где используется тот же кодовый набор, что и в DB2, преобразование не требуется. Ниже в таблице приводятся эквивалентные опции Sybase для общих кодовых страниц поддержки национальных языков (NLS). Необходимо, чтобы источник данных Sybase был сконфигурирован в соответствии с этими эквивалентами, либо чтобы программа клиента могла распознавать несовпадения и помечать их как ошибки или выполнять отображение данных с помощью собственной семантики. Если не удается найти ни одной таблицы преобразования из исходной кодовой страницы в кодовую страницу назначения, DB2 выдает сообщение об ошибке. Дополнительную информацию смотрите в документации по Sybase.

Табл. 1. Опции кодовых страниц Sybase
Кодовая страница Эквивалентная опция Sybase
850 cp850
897 sjis
819 iso_1
912 iso_2
1089 iso_6
813 iso_7
916 iso_8
920 iso_9


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