XML DB - новое измерение в организации данных в Oracle

...К несчастию, никак не мог прибрать рифмы для лядунок и киверов; итак, пусть будет это в прозе.
А. С. Грибоедов, Письмо из Бреста Литовского к издателю "Вестника Европы"

XML DB представляет собой набор средств и возможностей СУБД и БД в Oracle, ориентированный на работу с форматом XML как по части преобразования, так и хранения данных. Для изначально таблично-организованной базы данных XML DB открывает новый способ хранения и употребления данных, сочетающийся с табличным. В этой статье рассматриваются темы установки XML DB в существующую БД и организации внешнего доступа. В последующих статьях будут показано, какие возможности дает установленная XML DB.

Введение

В версии 9.2 в Oracle появилась XML DB - набор средств и возможностей СУБД и БД в Oracle, ориентированный на работу с форматом XML как по части преобразования, так и хранения данных. По сути, XML DB дополнила традиционную для Oracle табличную организацию хранения и доступа к данным новыми видами организации и доступа. Это не может не интересовать разработчика, поскольку XML все увереннее завоевывает себе место в информационных системах.

Возможности XML DB были развиты в версии 10, а судя по просачивающимся сведениям, получат дальнейшее развитие и в версии Oracle 11, существующей сегодня в бета-варианте и возможно планируемой к выпуску в 2007 году.

В этой статье рассказано, как можно установить XML DB в своей БД и как наладить внешнее взаимодействие с ней. В следующих статьях будет рассказано, как при установленной XML DB работать с репозитарием, регистрировать и использовать схему XML и создавать сервлеты в СУБД для досупа к данным.

Большинство возможностей Oracle XML DB, обозначенных ниже, обеспечены уже в версии Oracle 9.2.0.2, однако в некоторых технических подробностях могут иметься отличия по отношению к более поздним версиям.

Установка и убирание XML DB

Мура туфельку снимала,
В огороде закопала:
- Расти, туфелька моя,
Расти, маленькая !
Корней Чуковский, Что сделала Мура, когда ей прочли сказку "Чудо-дерево"

Установка XML DB может выполняться средствами Database Configuration Assistant (DBCA), либо вручную. Типовой вариант БД, начиная с версии 9.2 включает предустановленную XML DB и не требует дополнительной установки.

Узнать о наличии установленной XML DB и готовности к работе можно так:

SQL> CONNECT / AS SYSDBA

Connected.

SQL> SELECT count ( * )

2 FROM dba_objects

3 WHERE owner = 'XDB' AND status = 'INVALID';

COUNT(*)

-

0

SQL> COLUMN comp_name FORMAT A30

SQL> SELECT comp_name, status, version

2 FROM dba_registry

3 WHERE comp_name = 'Oracle XML Database';

COMP_NAME STATUS VERSION

-

Oracle XML Database VALID 10.2.0.1.0

При полученных выше ответах может потребоваться, однако, разблокировать подключение к СУБД (уже имеющемуся) пользователю XDB, например :

ALTER USER xdb ACCOUNT UNLOCK IDENTIFIED BY xdb;

Если же в существующей БД XML DB не установлена, вручную это можно сделать следующей последовательностью действий от имени SYS :

1) Завести табличное пространство для нужд пользователя XDB (желательно).

2) Прогнать сценарий catqm.sql заведения необходимой инфраструктуры в БД (реестр XML DB, служебные пакеты PL / SQL и пр.):

SQL > @?/ rdbms / admin / catqm пароль_для_ XDB табличное_пространство_для_ XDB табличное_пространство_для_временных данных_ XDB

3) Прогнать сценарий catqm.sql заведения необходимых библиотек на Java и типов (они могут иметься и без этого):

SQL> @?/rdbms/admin/catxdbj

4) Прогнать сценарий создания пакетов из состава XDK (по желанию):

SQL> @?/rdbms/admin/initxml

5) Выполнить SHUTDOWN и STARTUP.

Для убирания из БД XML DB достаточно выполнить от имени SYS:

1) SQL> @?/rdbms/admin/catnoqm

2) SHUTDOWN и STARTUP

Пользователь XDB и сопутствующие пакеты будут удалены.

Как открыть доступ к репозитарию по протоколам HTTP и FTP

Результатом заведения XML DB в базе явилось появление в ее составе так называемого репозитария XML DB, фактически - файловой системы. Для работы с репозитарием извне возможно и удобно открыть доступ по протоколам HTTP и FTP.

Действия по открытию доступа

Во-первых, требуется удостовериться в нужных значениях параметров СУБД DISPATCHERS (обязательно) и LOCAL_LISTENER (при наличии нескольких процессов listener). Установка нужных значений может быть выполнена так:

ALTER SYSTEM

SET dispatchers = '(PROTOCOL=TCP)(SERVICE=ORCLXDB)'

SCOPE = SPFILE

;

ALTER SYSTEM

SET local_listener =

'(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))'

;

При этом указываемое значение SERVICE формируется как имя_СУБДXDB (здесь считается, что INSTANCE _ NAME = ORCL), а значения HOST и PORT соответствуют местонахождению и месту приписки процесса listener (когда этих процессов несколько - того, что будет обслуживать доступ через HTTP). В работе, получив заявку на соединение с XML DB, процесс listener передаст ее диспетчеру, а тот - одному из общественных (shared) серверных процессов.

Во-вторых, требуется назначить или переназначить (при необходимости) порты для публичного доступа по HTTP и FTP . Порты по умолчанию соответственно 8080 и 2100, однако, начиная с версии 10.2 они изначально выставлены в 0. Для переустановки (а с версии 10.2 - для установки) требуется выполнить от имени SYS :

EXECUTE DBMS_XDB.SETFTPPORT ( 2100 )

EXECUTE DBMS_XDB.SETHTTPPORT ( 8080 )

ALTER SYSTEM REGISTER;

Выдача последней команды некритична. После этого по некоторым рекомендациям нужно перезапустить СУБД:

SQL> SHUTDOWN IMMEDIATE

SQL> STARTUP

В ОС следует выдать:

> lsnrctl status

Ожидаемый результат должен выглядеть примерно так:

...

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=FLEXIT-V3TNTGIS)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=FLEXIT-V3TNTGIS)(PORT=8080))(Presentation=HTTP)(Session=RAW))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=FLEXIT-V3TNTGIS)(PORT=2100))(Presentation=FTP)(Session=RAW))

Services Summary...

Service "PLSExtProc" has 1 instance(s).

Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...

Service "orcl" has 1 instance(s).

Instance "orcl", status READY, has 1 handler(s) for this service...

Service "orclXDB" has 1 instance(s).

Instance "orcl", status READY, has 1 handler(s) for this service...

...

В версии 10.2 появится также информация о службе имя_СУБД _XPT. При желании ее можно отключить скрытым параметром СУБД, однако ж и ее наличие не мешает обычной работе.

Проверка доступа по FTP

Проверка доступа к репозитарию - возможно наиболее эффектный шаг в освоении XML DB. Для FTP может выполняться двояко.

(А) Проверка средствами командной строки ОС:

>ftp

ftp> open localhost 2100

Connected to FLEXIT-V3TNTGIS.

220- FLEXIT-V3TNTGIS

Unauthorised use of this FTP server is prohibited and may be subject to civil and criminal prosecution.

220 FLEXIT-V3TNTGIS FTP Server (Oracle XML DB/Oracle Database) ready.

User (FLEXIT-V3TNTGIS:(none)): xdb

331 pass required for XDB

Password:

230 XDB logged in

ftp> ls

200 PORT Command successful

150 ASCII Data Connection

home

public

sys

xdbconfig.xml

226 ASCII Transfer Complete

ftp: 34 bytes received in 0,39Seconds 0,09Kbytes/sec.

ftp> get xdbconfig.xml

200 PORT Command successful

150 ASCII Data Connection

226 ASCII Transfer Complete

ftp: 11612 bytes received in 0,61Seconds 19,07Kbytes/sec.

ftp> bye

221 QUIT Goodbye.

Жирным шрифтом выделены команды, набранные пользователем (набор пароля для пользователя XDB на экране не отразился). По результату этих действий из репозитария XML DB в текущий каталог ОС скопировался файл xdbconfig.xml. Подключиться по FTP к репозитарию XML DB можно было и под любым другим именем пользователя Oracle, однако не все пользователи смогут совершать все операции с имеющимися файлами.

Упражнение:

1) Проверить появление в текущем каталоге ОС файла xdbconfig.xml.

2) Подключиться по FTP под именем SCOTT и удостовериться в невозможности извлечь файл из XML DB.

(Б) Проверка средствами браузера MS IE:

Войти в браузер MS IE, набрать в поле адреса следующие варианты и проверить работу:

Проверка доступа по HTTP

Войти в браузер Web, набрать в поле адреса следующие варианты и проверить работу:

Обратите внимание на доступность текстового вида страниц.

Организация доступа по WebDAV в Windows

При установленном доступе по HTTP, Oracle поддерживает также основанное на этом протоколе средство WebDAV (Web-based Distributed Authoring and Versioning, http://techinfo.net.ru/webdav.html ). ОС Windows обеспечивает клиентский доступ к серверу WebDAV, позволяя обращаться к репозитарию XML DB как к каталогу собственной файловой системы.

Заведение каталога в Windows на основе доступа по WebDAV

Действия в Windows:

1) Открываем форму My Network Places. Это можно сделать через Internet Explorer или через форму Network Connections в установках компьютера.

2) Открываем форму Add a network place. Входим в помощник установки (wizard)

3) Выбираем Choose another network connect. Вводим адрес http :// localhost :8080/. В появившемся окошке вводим имя и пароль пользователя Oracle, например xdb/xdb . Указываем имя сетевого соединения, например: XML DB Repository. Снимаем "галочку" с позиции выбора Open this network place … (необязательно) и нажимаем Finish.

Соединение заведено. Войти в репозитарий можно, нажав дважды на имя "каталога" XML DB Repository.

Проверка доступа

Подключиться в Windows Explorer к сетевому ресурсу с именем ' XML DB Repository ' и копировать файлы между репозитарием XML DB и файловой системой ОС методом Drag and Drop.

Доступ по WebDAV обеспечивает не обязательно только Windows Explorer, но и целый ряд продуктов разных фирм.

Ссылки по теме


Страница сайта http://185.71.96.61
Оригинал находится по адресу http://185.71.96.61/home.asp?artId=1085