||Перед тем, как добавить в сервер объединения источники данных |Sybase, на сервере объединения DB2 необходимо установить и сконфигурировать |клиентское программное обеспечение Sybase Open Client. Особенности |установки программного обеспечения Open Client подробно описаны в установочных |процедурах в документации, поставляемой с программным обеспечением баз данных |Sybase. Не забудьте при установке включить хранимые процедуры каталога |Sybase, установленные на сервере Sybase, и библиотеки Sybase Open Client, |установленные на сервере объединения DB2.
|После конфигурирования соединения от программного обеспечения |клиента к серверу Sybase проверьте это соединение при помощи одного из |инструментов Sybase. Для UNIX используйте инструмент isql, а для |Windows - инструмент SQL Advantage.
|Чтобы настроить свой сервер объединения на доступ к данным, хранимым в |источниках данных 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.
|Если вы используете файл 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
|где: |
|Для возможности доступа к источникам данных 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='libctlib.a'
|db2set DB2_DJ_COMM='libctlib.so'
||Слева и справа от знака равенства (=) не должно быть пробелов.
|Дополнительную информацию об именах библиотек оболочек смотрите в |справочнике DB2 SQL Reference . Информацию о переменной |среды DB2_DJ_COMM смотрите в руководстве Administration |Guide.
|Задайте каждый сервер Sybase, к источникам данных которого вы намереваетесь |обращаться, с помощью оператора CREATE SERVER; например:
|CREATE SERVER сервер_Sybase TYPE SYBASE VERSION 12.0 WRAPPER имя_оболочки |OPTIONS (NODE 'узел_Sybase', DBNAME'база_данных_Sybase')
|где: |
|Хотя имя узла указывается как необязательный параметр, при работе с |источниками данных Sybase его задание необходимо. Информацию о |дополнительных опциях смотрите в справочнике DB2 SQL Reference |.
|Опцию сервера IGNORE_UDT можно использовать с протоколами CTLIB и DBLIB, |чтобы задать, должен ли сервер объединения определять встроенный тип, на |котором основан пользовательский тип, не применяя строгой типизации. |Эта опция сервера применяется только к источникам данных, которые доступны |через протоколы CTLIB и DBLIB. Допустимые значения: |
|Когда DB2 создает псевдонимы, она ищет и вносит в каталог информацию об |объектах (таблицах, производных таблицах, хранимых процедурах), на которые |указывают псевдонимы. При поиске этой информации она может найти |некоторые объекты с неизвестными для нее типами данных (то есть такими типами, |для которых нет соответствий в базе данных объединения). К таким |нераспознаваемым типам относятся: |
|Когда сервер находит типы данных, которые не может распознать, он |возвращает сообщение об ошибке SQL3324N. Однако из этого правила есть |исключение. Для источников данных, доступных по протоколам CTLIB или |DBLIB, можно задать опцию сервера IGNORE_UDT, и база данных объединения будет |считать нераспознанные пользовательские типы без строгой типизации теми |встроенными типами, на которых они основаны. Если база данных |объединения распознает этот встроенный тип, она записывает в каталог |информацию о нем. Чтобы база данных объединения определяла встроенный |исходный тип для пользовательских типов без строгой типизации, задайте для |IGNORE_UDT значение 'Y'.
|Задайте предельные значения для срока ожидания, путь и имя для файла |интерфейсов, а также размер пакета файла интерфейсов. Предельные |значения для срока ожидания используются в 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 'day2night')
|где: |
|Подробную информацию о дополнительных опциях смотрите в справочнике |DB2 SQL Reference .
|Назначьте псевдонимы для всех производных таблиц и таблиц, находящихся в |источнике данных Sybase. Эти псевдонимы будут использоваться при |запросах источника данных Sybase. Псевдонимы Sybase |регистрозависимы. Заключите имена схем и таблиц в двойные кавычки |("). Ниже приводится пример использования оператора CREATE |NICKNAME:
|CREATE NICKNAME SYBSALES FOR SYBSERVER."salesdata"."europe"
|где: |
|имя_источника_данных."имя_удаленной_схемы"."имя_удаленной_таблицы" |
|Повторите данный шаг для каждой таблицы и производной таблицы, для которой |хотите создать псевдоним. После создания псевдонима DB2 будет |использовать соединение для запроса каталога источника данных. При |таком запросе происходит проверка вашего соединения с источником |данных. Если соединение не работает, вы получаете сообщение об |ошибке.
|Более подробную информацию об операторе CREATE NICKNAME смотрите в |справочникеDB2 SQL Reference. Более подробная информация о |псевдонимах в целом приводится в книге Руководство администратора |DB2.
|Этот шаг необходим, только если сервер объединения 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 |