Перед тем, как добавить в сервер объединения источники данных Sybase, на сервере объединения DB2 необходимо установить и сконфигурировать клиентское программное обеспечение Sybase Open Client. Особенности установки программного обеспечения Open Client подробно описаны в установочных процедурах в документации, поставляемой с программным обеспечением баз данных Sybase. Не забудьте включить в установку хранимые процедуры каталога и библиотеки Sybase Open Client.
Чтобы настроить свой сервер объединения на доступ к данным, хранимым в источниках данных Sybase, нужно:
В этой главе обсуждаются шаги 2 и 3.
Указания этой главы относятся к операционным средам Windows NT, AIX и Solaris. Особенности конкретных платформ оговариваются специально.
Чтобы добавить источник данных Sybase на сервер объединения, нужно:
Эти шаги подробно объясняются в данном разделе.
Задайте переменные среды источника данных: внесите изменения в файл db2dj.ini и введите команду db2set. В файле db2dj.ini содержится информация о конфигурации программного обеспечения клиента Sybase, установленного на вашем сервере объединения. Команда db2set приводит реестр профиля DB2 в соответствие с вашими настройками.
В системе многораздельной базы данных можно использовать один файл db2dj.ini для всех узлов определенного экземпляра сервера или же отдельные файлы db2dj.ini для одного или нескольких узлов экземпляра сервера. В системе однораздельных баз данных может быть только один файл db2dj.ini на один экземпляр сервера.
Чтобы задать переменные среды:
SYBASE="<домашний каталог Sybase>"
где <домашний каталог Sybase> - каталог установки клиента Sybase.
export PATH="$SYBASE/bin:$PATH" export SYBASE="<домашний каталог Sybase>"
где <домашний каталог Sybase> - каталог установки клиента Sybase.
. .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 ЭКЗЕМПЛЯРx 3 DB2_DJ_INI = sqllib/cfg/node3.ini
где:
Для возможности доступа к источникам данных Sybase сервер объединения DB2 нужно скомпоновать с библиотеками клиента. В процессе компоновки создается оболочка для каждого источника данных, с которым будет связываться сервер объединения. Запуская сценарий djxlink, вы создаете библиотеку оболочки. Чтобы запустить сценарий djxlink, введите:
djxlink
Чтобы гарантировать задание переменных среды в программе, перезапустите экземпляр DB2. При перезапуске экземпляра DB2 вы обновляете его, и внесенные изменения вступают в силу.
Чтобы перезапустить экземпляр DB2, введите следующую команду:
NET STOP имя_экземпляра NET START имя_экземпляра
db2stop db2start
Чтобы создать и настроить файл интерфейсов, нужно создать этот файл и сделать его доступным.
В Windows NT этот файл обычно называется sql.ini. Переименуйте этот файл из sql.ini в interfaces, чтобы он назывался одинаково во всех платформах. Если вы не переименуете sql.ini в interfaces, надо будет воспользоваться параметром IFILE или опцией CONNECTSTRING, которые объясняются в шаге 8.
В системах AIX и Solaris этот файл называется <домашний_каталог_экземпляра>/sqllib/interfaces.
ln -s -f /home/sybase/interfaces /home/db2djinst1/sqllib
С помощью оператора 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.
Чтобы улучшить производительность при обращении к источнику данных Sybase, задайте переменную среды DB2_DJ_COMM. Эта переменная определяет, загружается ли оболочка при инициализации сервера объединения. Задайте переменную среды DB2_DJ_COMM, чтобы включить библиотеку оболочки, соответствующую оболочке, заданной вами на предыдущем этапе; например:
db2set DB2_DJ_COMM='ctlib.dll'
db2set DB2_DJ_COMM='libctlib.a'
db2set DB2_DJ_COMM='libctlib.so'
Слева и справа от знака равенства (=) не должно быть пробелов.
Дополнительную информацию об именах библиотек оболочек смотрите в справочнике DB2 SQL Reference. Информацию о переменной среды DB2_DJ_COMM смотрите в руководстве Руководство администратора.
Задайте каждый сервер Sybase, к источникам данных которого вы намереваетесь обращаться, с помощью оператора CREATE SERVER; например:
CREATE SERVER сервер_Sybase TYPE SYBASE VERSION 12.0 WRAPPER имя_оболочки OPTIONS (NODE 'узел_Sybase', DBNAME'база_данных_Sybase')
где:
Хотя имя узла указывается как необязательный параметр, при работе с источниками данных Sybase его задание необходимо. Информацию о дополнительных опциях смотрите в справочнике DB2 SQL Reference.
Задайте предельные значения для срока ожидания, путь и имя для файла интерфейсов, а также размер пакета файла интерфейсов. Предельные значения для срока ожидания используются в Sybase Open Client для прерывания запросов и ответов, которые выполняются слишком долго. Эти предельные значения можно задать в DB2 с помощью опции CONNECTSTRING оператора CREATE SERVER OPTION DDL. С помощью опции CONNECTSTRING задается:
.-;-------------------------------------------. V | >>----+---------------------------------------+--+------------->< +-TIMEOUT-- = --время_в_секундах--------+ +-LOGIN_TIMEOUT-- = --время_в_секундах--+ +-IFILE-- = --"строка"------------------+ +-PACKET_SIZE-- = --размер_в_байтах-----+ '-;-------------------------------------'
Примеры:
На серверах 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";'
Если ID или пароль пользователя на сервере объединения отличен от ID или пароля пользователя в источнике данных Sybase, создайте отображение локального ID пользователя на ID и пароль, заданные в источнике данных Sybase, с помощью оператора CREATE USER MAPPING, например:
CREATE USER MAPPING FOR пользователь_DB2 SERVER сервер_Sybase OPTIONS ( REMOTE_AUTHID 'пользователь_Sybase', REMOTE_PASSWORD 'пар0ль')
где:
Подробную информацию о дополнительных опциях смотрите в справочнике DB2 SQL Reference.
Назначьте псевдонимы для всех производных таблиц и таблиц, находящихся в источнике данных Sybase. Эти псевдонимы будут использоваться при запросах источника данных Sybase. Псевдонимы Sybase регистрозависимы. Заключите имена схем и таблиц в двойные кавычки ("). Ниже приводится пример использования оператора CREATE NICKNAME:
CREATE NICKNAME SYBSALES FOR SYBSERVER."salesdata"."europe"
где:
имя_источника_данных."имя_удаленной_схемы"."имя_удаленной_таблицы"
Повторите данный шаг для каждой таблицы и производной таблицы, для которой хотите создать псевдоним. После создания псевдонима DB2 будет использовать соединение для запроса каталога источника данных. При таком запросе происходит проверка вашего соединения с источником данных. Если соединение не работает, вы получаете сообщение об ошибке.
Более подробную информацию об операторе CREATE NICKNAME смотрите в справочникеDB2 SQL Reference. Более подробная информация о псевдонимах в целом приводится в публикации Руководство администратора
Этот шаг необходим, только если сервер объединения 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 |