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


|6.5 Доступ к источникам данных Sybase

| |

|Перед тем, как добавить в сервер объединения источники данных |Sybase, на сервере объединения DB2 необходимо установить и сконфигурировать |клиентское программное обеспечение Sybase Open Client. Особенности |установки программного обеспечения Open Client подробно описаны в установочных |процедурах в документации, поставляемой с программным обеспечением баз данных |Sybase. Не забудьте включить в установку хранимые процедуры каталога и |библиотеки Sybase Open Client. После конфигурирования соединения от |программного обеспечения клиента к серверу Sybase проверьте это соединение при |помощи одного из инструментов Sybase. Для UNIX используйте инструмент |isql, а для Windows - инструмент SQL Advantage.

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

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

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

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

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

|

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

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

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

|6.5.1.1 Шаг 1: Задайте переменные среды и измените реестр профиля (только для AIX и Solaris).

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

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

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

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

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

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

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

    |db2set DB2_DJ_INI=$HOME/sqllib/cfg/db2dj.ini

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

    |db2set -g DB2_DJ_INI=$HOME/sqllib/cfg/db2dj.ini

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

    | db2set -i ЭКЗЕМПЛЯРx 3 DB2_DJ_INI=$HOME/sqllib/cfg/node3.ini 

    |где: |

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

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

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

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

|

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

|djxlink

|6.5.1.3 Шаг 3: Перезапуск экземпляра DB2 (только для AIX и Solaris)

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

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

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

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

|6.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
    |
    |

|6.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.

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

|

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

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

|На серверах DB2 for Solaris:
|db2set DB2_DJ_COMM='libctlib.so' 
|

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

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

|6.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, к которой хотите получить доступ. |Получите его с сервера Sybase |

|6.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"'
| 

|6.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 'day2night')

|где: |

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

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

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

|'day2night'
|- Пароль пользователя "пользователь_Sybase". Это значение |регистрозависимо. |

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

|6.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. Более подробная информация о |псевдонимах в целом приводится в книге Руководство администратора |DB2.

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

|

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

|Табл. 2. Опции кодовых страниц Sybase

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


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