483
Oracle Press TM Организация работы в сети Как построить сеть OracleS/ Издательство "Лори" Марлен Терьо Соавтор "OracleSi: Настольная книга администратора" и "Oracle101: Настольная книга администратора" Рассматриваются версии 8.1.5 и 8.1.6

Oracle 8i Networking 101

Embed Size (px)

Citation preview

Page 1: Oracle 8i Networking 101

Oracle Press TM

Организацияработы в сети

Как построить

сеть OracleS/

Издательство"Лори"

Марлен ТерьоСоавтор "OracleSi: Настольная книгаадминистратора" и"Oracle101: Настольная книгаадминистратора"

Рассматриваются версии8.1.5 и 8.1.6

Page 2: Oracle 8i Networking 101
Page 3: Oracle 8i Networking 101

ORACLe Oracle Press TM

OracleS/Networking 101

Marlene L. Theriault

Osborne/McGraw-HillBerkeley New York St. Louis San FranciscoAuckland Bogota Hamburg London MadridMexico City Milan Montreal New Delhi Panama CityParis Sao Paulo Singapore SydneyTokyo Toronto

Page 4: Oracle 8i Networking 101
Page 5: Oracle 8i Networking 101

101OracleS/Организацияработы в сети

Марлен Терьо

Издательство "ЛОРИ"

Page 6: Oracle 8i Networking 101

OracleSzNetworking 101Marlene L. TheriaultCopyright 2000All rights reserved

Osborne/McGraw-Hill2600 Tenth StreetBerkeley, California 94710U.S.A.

Copyright © 2000 by The McGraw-Hill Companies. All rights reserved.Except as permitted under the Copyright Act of 1976, no part of this publication maybe reproduced or distributed in any form or by any means, or stored in a database orretrieval system, without the prior written permission of the publisher, or stored in adatabase or retrieval system without the prior written permission.ISBN 0-07-212517-9

101OracleSzОрганизация работы в сетиМарлен ТерьоПереводчик Т.МоскалевНаучный редактор А.ГоловкоКорректор И.ГришинаВерстка М.Алиевой

© Издательство "ЛОРИ", 2001

Изд. N : OAI (03)ЛР N: 070612 30.09.97 г.ISBN 5-85582-138-2

Подписано в печать 25.10.2001 Формат 70x100/16Бумага офсет N1 Гарнитура Нью-Баскервиль Печать офсетнаяПеч. л. 30 Тираж 320<) IIK. 726Цена договорная

Издательство "ЛОРИ". Москва, 123557 Б. Тишинский пер., д. 40, корп. 2Телефон для оптовых покупателей: (095)259-01-62WWW.LORY-PRESS.RU

Отпечатано в типографии ООО "Типография ИПО профсоюзов Профиздат"109044, Москва, ул. Крутицкий вал д. 18

Page 7: Oracle 8i Networking 101

Я посвящаю эту книгумоему мужу Нельсону Кэхиллу, сыну Марку Тудмену,

моей матери Лилиан Сигель, тете Молли Роббинс и всем тем,кто когда-нибудь тратил более одного часа

на устранение проблемы с сетью Oracle.

Page 8: Oracle 8i Networking 101

Об автореМарлен Терьо занимается администрированием баз данных Oracle более18 лет и работала со всеми РСУБД Oracle, начиная с версии 2.0. Она являет-ся соавтором книг "OracleSi: Настольная книга администратора" вместе сКевином Луни (по лицензии Oracle Press издательство "Лори", 2001 г.),"101 Oracle: Настольная книга администратора" вместе с Рэчел Кармайкл иДжеймсом Вискузи (по лицензии Oracle Press издательство "Лори", 2001 г.) и"Oracle Security" вместе с Вильямом Хини.Она принимала участие в ряде международных конференций. Ей былиприсуждены премии "Лучшая пользовательская презентация" на EOUG'99(за презентацию на EOUG'98), "Блестящий докладчик" на ЕСО'98 и "Выдаю-щийся докладчик" на ЕСО'95 и ЕСО'96. М. Терьо занимает должность пред-седателя Среднеатлантической ассоциации профессионалов Oracle(МАОР) и ведет рубрику "Ask the DBA" в бюллетене МАОР. С ней можносвязаться по адресу [email protected].

Page 9: Oracle 8i Networking 101

Содержание

Часть IИзучаем основы

1 Обзор сетевых технологий 3Краткая история сетевых коммуникаций ... . . . . . . . . . . . 4

Телефонная сеть , . . . . . . :. . . ,->.-,. . . 6Компьютерная сеть ( ,.-... . »,.. . .... „ . . . . 7

Базовые сетевые конфигурации и средства . . . . . . . . . . . . 16Различные типы сетей. . . . 16Сетевая топология 21Передача данных по сети .24

Взаимодействие открытых систем 27Стандарты в действии 28Эталонные модели SNA и TCP/IP 34

2 Сетевые компоненты Oracle 39Немного истории 40

Появление SQL'Net 42Базовая архитектура 43

Требования к аппаратуре 44Компонентные уровни 44

Протоколы Oracle 45Коммуникационные стеки, используемые Oracle 48Процессы выделенных серверов 53Процессы многопоточного сервера 55Соединения Bequeath 58

Связи баз данных 59Глобальное именование 59Создание связи базы данных 61Разделяемые связи баз данных 67

3 Компоненты Net8 69Компоненты и параметры Net8 70

Установление соединения 71Listener, ora 72Утилита Listener Control (Isnrctl) 82Tnsnames.ora 87

Page 10: Oracle 8i Networking 101

yiii Содержание

Sqlnet.ora 93Введение в SNMP 94

Взгляд изнутри 94Oracle Enterprise Manager и Intelligent Agent 95

Обзор OEM 96

4 Сервер имен Oracle 99Общие сведения 101

Различные сетевые архитектуры . 101Трансляция сетевых имен 102

Сервер имен Oracle . . . *;.-. 105Получение информации о соединении 105Множественные серверы имен Oracle 106Хранение данных имен Oracle 108Модели именования Oracle 114Конфигурирование сервера имен Oracle 119Запуск сервера имен Oracle 125Об открытиях 127Новые возможности, доступные в Net8 127

Утилита Names Control (namesctl) 128Команды Namesctl 130

5 Интернет-каталог Oracle 135Различные виды каталогов 136

Каталог базы данных 137Серверы каталогов LD АР 139Модели LDAP 141

Обзор Интернет-каталога Oracle 147Записи, атрибуты и объектные классы . 147

Интернет-каталог Oracle и Net8 154Компоненты Интернет-каталога Oracle 154Установка Интернет-каталога Oracle 157

Инструменты Интернет-каталога Oracle 159Инструменты командной строки 159Менеджер OID 163

6 Планирование сети 167Создание плана сети 168

Вопросы 169Вопросы управления 169Сетевые вопросы 176Серверные вопросы 179Вопросы соединений 182Вопросы резервного копирования и восстановления 185

Page 11: Oracle 8i Networking 101

Содержание IX

Часть И .Инструменты конфигурирования

7 Net8 Assistant — опции Local 189Базовые сведения о Net8 Assistant . . , ? > . , . . . . , . • • • • • 191

Запуск Net8 Assistant . . , . . _ . . ... . 191Базовые возможности ..... ... . . . . 192Пункты раскрывающихся меню. . . .'...', ...... .... ,*.,.-. . 193Навигатор Net8 Assistant .".',., . 5>.^л^л,у . 198

Опции локальной конфигурации . . . .... . .", ... . , •,...--;• • 200Конфигурирование профиля . . . . 200Конфигурирование имен служб , .... ..... 217Конфигурирование прослушивающих процессов . . .,... . . . 223

8 Net8 Assistant — опции Oracle Names Servers 231Создание и конфигурированиесерверов имен Oracle 232

Создание нового сервера имен Oracle . . . . ... . . . . . . 233Управление сервером 234Управление данными 241Конфигурирование сервера. . . . . 246

9 Net8 Configuration Assistant 253Обзор Net8 Configuration Assistant . . . . . . . . . . . . . . . . 254

Конфигурирование прослушивающего процесса . ... . . . 256Конфигурирование методов именования 263Конфигурирование имен сетевых служб . . . . . . 265Конфигурирование доступа к службе каталога , . . . . . . . 272

10 Менеджер соединений 277Обзор менеджера соединений Oracle 278

Процессы менеджера соединений Oracle 279Концентрация соединений 279Управление доступом на уровне Net8 280Мультипротокольная поддержка . . . . . 282

Конфигурирование менеджерасоединений Oracle 283

Cman.ora 283Конфигурирование концентрации соединений 287Конфигурирование мультипротокольной поддержки 288Конфигурирование управления доступом 289

Утилита Connection Manager Control . . 290

Page 12: Oracle 8i Networking 101

Содержание

11 Поддержка больших сетей 295Использование многопоточного сервера. . . . . '•.".' ".''.'"".' . . . 297

Зачем нужен многопоточный сервер? . . . . . . . . . . . . . 298Конфигурирование процессов многопоточного сервере . . . 301Определение количества диспетчеров . . . . . .. . ."'. . . . 304Разрешение конфликтов, вызванных использованием MTS . . 306Использование объединения соединений, концентрациисоединений и/или балансировки нагрузки на уровнесоединения . . . . . . . . . . . . . . . 318

Предварительное создание выделенных серверов. . ... . . . 320Обзор предварительно создаваемых выделенных серверов . 320Конфигурирование предварительно создаваемыхвыделенных серверов 321

Г.-; • . . • . . • • . • - • • ; ' ' " • ' • • - : • . -

^ Часть HIСети Oracle и Интернет

? • -: ''" ;' ; '

12 Прослушивающий процесс WebDB 325Общие сведения о WebDB 326

Прослушивающий процесс и другие компоненты WebDB. . . 327Установка прослушивающего процесса WebDB 328

Перед началом установки 328Последовательность установки 330После установки 336Запуск и останов прослушивающего процесса WebDB . . . . 338Множественные виртуальные хосты 340Доступ к статическим файлам 341Параметры конфигурации 342

Диагностика проблем прослушивающего процесса WebDB . . 346

13 Усовершенствованные средствабезопасности Oracle 349Обзор усовершенствованных средств безопасности Oracle. . . 350

Язык компьютерной безопасности 352Обзор усовершенствованных средств безопасности Oracle. . 355Архитектура Oracle Advanced Security 360

Часть iVДиагностика

14 Диагностика проблем Net8 369Звонки в службу технической поддержки 370

Общие принципы диагностики 371

Page 13: Oracle 8i Networking 101

Содержание Xi

Правила, которым можно следовать 372Локализация проблемы 374

Журналы, файлы трассировки и сообщения об ошибках . . . . 379Запуск прослушивающего процесса . . . . , . . . . . . . . . 380Практическая отладка — шаг за шагом. ... .... . . . . . . 380Руководство по диагностике наиболеераспространенных ошибок . . . . . . . . . . . . . . . . . . . 387Файлы журналов и трассировки Net8 .. . . . . . . . . . . . . 403Изучение файлов журналов . . , . . . . . 404Изучение файлов трассировки . . . . . . .... • .... . . 408

Приложения

А Параметры sqlnet.ora 413

В Параметры names.ога 427

Глоссарий 435

Page 14: Oracle 8i Networking 101
Page 15: Oracle 8i Networking 101

БлагодарностиКак это ни странно, книги не пишутся сами по себе. Выходу книги в светпредшествует длительная работа большого числа людей. Некоторых изних я не видела и, возможно, никогда не увижу. Тем не менее я очень при-знательна им за помощь в подготовке этого издания.

Я хотела бы поблагодарить множество людей за их поддержку. Весьперсонал издательства Osborne достоин самой высокой оценки. Вы несмогли бы найти лучшего научного редактора, чем Джереми Джудсон;лучшего главного редактора, чем Скотт Роджерс; лучших сотрудников,чем Мэдху Прашер, Моника Фолтисс, Джудит Браун и Денис Грааб.

Особой благодарности за оказанную помощь и поддержку заслужива-ют несколько человек из Oracle Corporation. Прежде всего это ЭдвардМонтес, спонсор ассоциации МАОР DBA SIG. Он с готовностью отвечална все мои вопросы и указывал мне на важные документы и адреса сайтовOracle, когда я больше всего в них нуждалась. Эд — один из лучших со-трудников Oracle, которых мне когда-либо доводилось знать. Он добро-желателен, терпелив и всегда готов потратить время, чтобы помочьклиентам Oracle. Рискуя показаться чересчур эмоциональной, я должнасказать: "Эд, ты вызываешь у меня чувство глубочайшей признательностии доверия. Ты замечательный*" Я также благодарна Пьеру Бодину, ДэвидуЧену и сотрудникам возглавляемых ими групп, среди которых отдельногоупоминания заслуживают Питер Повинек и Ашиш Колли за помощь в ре-шении проблем, с которыми я столкнулась при описании конфигурирова-ния Интернет-каталога Oracle и других средств Oracle8i/Net8. Благодаряим я смогла предоставить читателям самую точную информацию об этихпродуктах.

Я была бы крайне неблагодарна, не сказав ни слова о БарбареПэсквидж, подавшей мне идею этой книги. Барбара всегда старается глу-боко вникать в вопросы администрирования и готова делиться своимвременем и знаниями с коллегами-администраторами.

Недавно я прочитала заметку о разных типах друзей и их влиянии нанашу жизнь. У меня нет ни капли сомнения, что Рэчел Кармайкл — однаиз моих "подруг на всю жизнь". Она соглашалась брать на себя обязанно-сти научного редактора и корректора даже после того, как заявила освоем нежелании участвовать в написании следующей книги по крайнеймере в течение года. Ее замечания были очень важны для меня. Благода-ря Рэчел я смогла сделать эту книгу более понятной и удобной длячтения.

Говоря о замечаниях и улучшении книги, я обязана поблагодарить мо-его технического рецензента Яна Фиклинга — не только за поиск ошибоки помощь в их исправлении, но и за вклад в написание текста. Уверена,что его имя однажды появится на обложке книги.

Эдвин Харт — сетевой гуру, с которым я имела удовольствие работатьв лаборатории прикладной физики университета Джона Гопкинса. Эд на-шел время, чтобы внимательно прочитать книгу и помочь мне в

Page 16: Oracle 8i Networking 101

XJV Благодарности

устранении некоторых шероховатостей в первой главе. Я глубоко при-знательна ему за телефонные консультации. Благодаря его помощи неско-лько глав разделов стали более понятными и точными в техническомотношении.

Группы пользователей играют важную роль в жизни любого профес-сионала Oracle, и я просто обязана принести личную благодарность лю-дям, которые без устали работают, донося до нас новую информацию испособы решения проблем. Мне хотелось бы лично поблагодарить Стиве-на Вандивьера, президента Среднеатлантической ассоциации професси-оналов Oracle; Крейга и Кейт Уорман, посвятивших многие часы работес группой пользователей Oracle штата Вирджиния; Берта Спенсера и Кар-ла Дадли, поддерживающих Европейскую, Ближневосточную и Британ-скую группы, а также Джо Теста (поддержка группы штата Огайо) иДжима Лопатовски (Северо-Восточная группа). Мне нравится с ними ра-ботать, я глубоко ценю их дружбу.

Друзья играют столь значительную роль в нашей жизни, что я не могуне вспомнить некоторых людей, которых с гордостью называю своимидрузьями: Сью Хорнбакл, Кэти Локвуд, Розлин Круг, Сюзан Клейр, АилаАронова, Кевина Луни, Дебби Вонг, Тони Зимбу, Пат и Стива Арнетта,Рона и Фрэн Лупер, Джима и Санди Вискузи, Марти и Шэрон Розман, атакже всех, кого не смогу упомянуть здесь из-за недостатка места. Я иск-ренне благодарна вам за то, что вы были рядом в самые нужные моменты.Вы значите для меня больше, чем можно выразить словами.

Мне кажется невероятной удачей иметь такую нежную и любящую се-мью. Спасибо моему сыну, Марку Гудмену, который никогда не бываетслишком занят, чтобы поговорить со мной или помочь в любом деле — отпокупок в магазине до освоения новых компьютерных технологий.Я очень люблю своих племянниц Линн Бенейд, Робину Делькаппо и Шэ-ррн Ленди Фаяд и вижу, что они отвечают мне взаимностью. Спасибовам, юные леди, от вашей "тетушки М.". Спасибо и моей сестре ДжудитЗиске просто за то, что она есть.

В книге "101 Oracle: Настольная книга администратора" я выражалапризнательность своему мужу за "молчаливое терпение". Поскольку (поего мнению) я представила дело так, будто он спал все время, пока писа-лась книга, сейчас я хотела бы поблагодарить моего мужа, НельсонаКэхилла, за терпеливую, неустанную, нежную, ненавязчивую и ощутимуюподдержку в этом рискованном предприятии. Когда рядом с тобой нетникого, кто помогает вести семейный корабль, книги вообще не пишутся.Нельсон обладает фантастическим воображением, и его предложениялегли в основу некоторых сценариев, рассмотренных в этой книге. Одна-ко больше всего я благодарна Нельсону за его готовность идти по жизнивместе со мной-

Page 17: Oracle 8i Networking 101

ВведениеСеть

1. Система элементов (например, линий или дорог), пересекающихся напо-добие нитей рыболовной сети. 2. Группа или система взаимосвязанныхкомпонентов.

Сразу оговорюсь: определение слова "сеть" помещено здесь лишь потому,что это хороший способ начать книгу о сетевых возможностях OracieSi,выпуск 2. Я не собираюсь подробно говорить о связях этого определенияс темами, затрагиваемыми в книге. Вы увидите эти связи сами, когда буде-те читать первую и вторую главы. Я также не собираюсь с самого началавызывать у вас скуку массой технических терминов. Пожалуй, единствен-ное, что я хотела сделать, — это дать вам возможность представить сеть всамом общем виде. Надеюсь, что прочитав приведенное выше определе-ние, вы нарисуете в своем воображении множество линий связи (кабе-лей), компьютеров и других устройств, составляющих единую систему,при помощи которой люди могут легко получать и распространятьинформацию.

Есть ли у вас доступ к Интернету и World Wide Web? Задавались ли выкогда-нибудь вопросом, как работают сетевые технологии, позволяющиеполучать самую разнообразную информацию? Не приходилось ли вамощущать себя полным невеждой, когда на рабочих совещаниях или кон-ференциях кто-нибудь начинал использовать непонятные сетевые терми-ны? Может быть, вы только что получили (или намереваетесь получить)должность, которая требует работы с Oracle, и хотите знать, как устроенаи конфигурируется сеть Oracle? Или вы многие годы работали с продуй-тами Oracle, но не испытывали потребности углубленно вникать в их се-тевые возможности? Если вы ответили утвердительно хотя бы на один изперечисленных вопросов, то данная книга станет для вас прекраснымвведением в мир сетей Oracle. Но даже если вы обратились к ней по дру-гой причине, у вас все равно будет замечательная возможность система-тизировать свои знания о сетях Oracle.

Если вы не читали первую книгу из серии 101, "101 Oracle: Настольнаякнига администратора", то этот раздел даст вам представление о моемстиле изложения и подходе к представлению информации. Чтобы по-мочь вам разобраться в технических концепциях, я тщательно подбираларазличные аналогии из повседневной жизни. Но пусть это не вводит васв заблуждение. Предложение немного поиграть или отклониться отосновной темы не означает, что сложные технические вопросы тракту-ются здесь в "облегченном" виде.

Книга познакомит вас с общей сетевой терминологией и принципамипостроения сетей Oracle. Кроме того, вы узнаете:

• Как конфигурировать Net8 на стороне клиента и сервера Oracle• Как работают серверы имен Oracle, как их конфигурировать

и использовать

Page 18: Oracle 8i Networking 101

xvi Введение

• Что такое LDAP и как конфигурировать серверИнтернет-каталога Oracle

• Как определить сетевые потребности вашей организациии создать план сети Oracle

• Как использовать стандартные инструментыконфигурирования Oracle — Net8 Assistant,Net8 Configuration Assistant и Connection Manager.

• Как обеспечить поддержку крупномасштабныхраспределенных систем

• Как конфигурировать и использовать прослушивающийпроцесс WebDB

• Что представляют собой усовершенствованные средствабезопасности Oracle

• Как диагностировать проблемы, возникающие в сети Oracle

Хотя издание не претендует на роль исчерпывающего руководства посетям, оно должно дать вам все сведения, необходимые для конфигуриро-вания и ввода в работу сетевых средств Oracle. Итак, приготовьтесь кувлекательному путешествию в мир сетей Oracle.

Page 19: Oracle 8i Networking 101
Page 20: Oracle 8i Networking 101
Page 21: Oracle 8i Networking 101

Обзор сетевыхтехнологий

Page 22: Oracle 8i Networking 101

Глава 1

'дин системный администратор, с которым мне довелось работать,любил говорить: "Чтобы понимать будущее, необходимо изучать про-шлое". И он был прав, поскольку современные технологии часто отража-ют и вбирают в себя предыдущие достижения.

Эта книга является одновременно введением в сетевые технологииOracle и руководством по работе с Oracle в сетевой среде. Однако, по мо-ему глубокому убеждению, для эффективной работы с набором сетевыхпродуктов необходимо немного знать об устройстве сети и как минимумпонимать основные сетевые термины. Я много лет слышала, как другиеупотребляют слова вроде "Token Ring", "Ethernet" или "линия Т1", но доконца не понимала, о чем идет речь. (Разумеется, я никогда не признава-лась в этом!) Поэтому первая глава будет посвящена истории сетей, эле-ментарной терминологии и сетевым конфигурациям. Будет такжеописано некоторое сетевое оборудование и используемые протоколы.Несмотря на то что главной темой книги являются сетевые средстваOracle, в этой главе они почти не затрагиваются.

Если вы достаточно хорошо разбираетесь в основах сетевых техноло-гий, то можете сразу переходить к главе 2, сэкономив таким образом не-много времени.

Краткая история сетевых коммуникацийВ середине 1860-х годов можно было наблюдать примерно следующуюсцену. На железнодорожной станции появлялся помощник шерифа ибежал к столу телеграфного оператора компании Western Union. "Быст-рее,— кричал он телеграфисту,— отправь сообщение шерифу Богус-Сити!Скажи, что Криворукий Мясник со своей бандой направляется к егогороду. Он должен приготовить ему встречу!" Телеграфист спешноотправлял сообщение кодом Морзе. Для передачи букв и цифр здесь ис-пользовались серии импульсов тока, получаемых замыканием и размыка-нием электрической цепи. Каждой букве и цифре соответствовалауникальная комбинация коротких и/или длинных импульсов. Линия, покоторой посылалось сообщение, представляла собой одиночный провод.Для отправки и приема сообщений использовался довольно грубый, нодостаточно надежный механизм, хорошо приспособленный к суровымусловиям жизни американских поселенцев. Будучи очень простым по со-временным меркам, телеграф позволял бизнесменам с Восточного побе-режья держать связь с Диким Западом. Давайте посмотрим, чего удалосьдостичь в области коммуникаций с тех пор, когда появилась возможностьотправлять первые телеграммы.

14 февраля 1876 года Александр Грэхем Белл запатентовал свой теле-фон, подав заявку на два часа раньше, чем Элиша Грей из Western Union.Время подачи заявки сыграло очень важную роль, поскольку после судеб-ных разбирательств Белл получил права и патенты не только на телефон,но и на телефонную сеть, построенную компанией Western Union,

Page 23: Oracle 8i Networking 101

Обзор сетевых технологий

включая все усовершенствования, которым подвергся его первоначаль-ный вариант. Сто лет спустя компания Белла (переименованная впослед-ствии в AT&T) стала крупнейшей в мире.

Теперь представим, как выглядела бы описанная выше сцена в концеXIX века. Вместо отправки телеграммы помощнику шерифа было бы до-статочно снять телефонную трубку, состоящую из передатчика (микро-фона) и приемника (телефона), и вызвать центральную станцию,оператор которой соединил бы его с шерифом Богус-Сити, подсоединимпровода на коммутационной панели. В 1889 году Альмон Браун, предпри-ниматель из Канзас-Сити, изобрел подъемно-вращательный искатель инабиратель номера. Эти изобретения позволили абоненту набирать но-мер самостоятельно, не прибегая к услугам оператора.

Если бы эта история происходила в начале XX века, то предупрежде-ние могло быть послано шерифу Богус-сити с помощью телетайпа. Всвоем первоначальном виде телеграф имел ряд существенных недостат-ков. В каждый момент по линии могло передаваться только одно сообще-ние. Провода изготавливались вручную и были очень хрупкими.Прокладка линии представляла собой очень длительное, дорогое и опас-ное дело. Очевидное решение состояло в разработке многоканального те-леграфа, который позволил бы передавать и принимать сообщенияодновременно нескольким операторам. Другой задачей было создание те-леграфной системы, которая не требовала бы столь значительных затратлюдских ресурсов. Много необходимых усовершенствований сделалфранцузский изобретатель Эмиль Бодо. В его печатающем телеграфебыла впервые использована клавиатура пишущей машинки, а один про-вод мог разделяться восемью аппаратами. Вместо кода Морзе в аппаратеБодо использовался пятиразрядный код, где каждый символ представлял-ся пятью импульсами. Кодирование и декодирование выполняли самиаппараты.

Все три рассмотренных сценария в первую очередь демонстрируютпотребность общества в быстрой передаче информации из одного местав другое. Однако в каждом из них есть и другой, более важный аспект.Удалось ли вам его увидеть? Если вы скажете, что мы везде имели дело спримерами сетей, то будете совершенно правы. Люди склонны ассоции-ровать электронные сети с компьютерами и кабельными системами, покоторым транслируются радио- и телепрограммы, но, как следует из на-шего краткого исторического экскурса, подобные сети существовали ужев середине XIX века.

На первый взгляд телефоны и компьютеры весьма далеки друг от дру-га. Однако в действительности между этими видами оборудования суще-ствует определенная взаимосвязь. С течением времени телефонныекомпании стали полагаться на компьютеры при обработке вызовов, мар-шрутизации трафика, отслеживании заказов и т.д., а компьютеры началииспользовать телефонные сети для соединения с любой точкой земногошара.

Компьютеры и телефоны используют главным образом цифровуюсвязь — те самые импульсы "включено-выключено", которые использова-лись для передачи кода Морзе. Однако в телефонных сетях все еще

Page 24: Oracle 8i Networking 101

6 Глава 1

сохраняются линии, соединяющие дома или офисы с коммутационнымоборудованием телефонных компаний. Для передачи цифровых сигна-лов по аналоговым линиям компания AT&T изобрела модем. Транзистор,появившийся в 1948 году, также был создан в AT&T, сотрудниками BellLaboratories.

Самая ранняя сеть, телеграфная, дает нам пример двухточечных (po-int-to-point) соединений. Двухточечными были и первые телефонные ли-нии. Современные сети состоят из множества телефонных линий икоммутационных центров, причем эти центры соединены сложной систе-мой микроволновых ретрансляторов, волоконно-оптических кабелей испутников связи. Вы можете не осознавать, насколько сложна эта систе-ма, пока (страшно представить!) ваш телефон не перестанет нормальноработать, соединения с Интернетом не начнут обрываться или их ско-рость не окажется намного меньше ожидаемой. В таких случаях вам неостается ничего другого, как прибегнуть к услугам телефонной компаниидля диагностики и устранения проблем.

Телефонная сетьТеперь, когда вы познакомились с историей сетевых коммуникаций, да-вайте посмотрим, как работает телефонная сеть. Ее крайне упрощеннаясхема показана на рис. 1.1.

Если не вдаваться в подробности, то можно сказать, что во время теле-фонного разговора ваш голос преобразуется в электрические импульсы,которые передаются по телефонной линии на центральную станцию, аот нее — либо напрямую к местному абоненту, либо через маршрутизиру-ющее оборудование к месту назначения. На рис. 1.1 показано, как марш-рутизация осуществляется через спутники.

Телефон Телефон

Спутниковая тарелка

t

Спутниковая тарелка

Рис. 1.1. Упрощенная схема телефонной сети

Page 25: Oracle 8i Networking 101

сетевых технологии

Предположим, что вы звоните из дома. Первоначально для подключе-ния телефона требовалась пара медных или железных проводов, протя-нутых от дома к центральной станции телефонной компании. Этипровода подвешивались на высоких деревянных столбах. Сегодня к боль-шинству домов подходит либо двухпроводная витая пара (twisted pair),либо волоконно-оптическая линия. Для установления соединения, осо-бенно если оно международное, цифровое коммутационное оборудова-ние телефонной станции маршрутизирует вызов с использованиемволоконно-оптических линий, подводного кабеля, микроволновых рет-рансляторов и/или спутниковых тарелок. Между телефонными станция-ми сигналы обычно передаются в цифровом виде, по так называемыммагистральным линиям (trunk lines). Местные телефонные станции соеди-няются со станциями более высокого уровня иерархии. Далее в этой гла-ве рассмотрим цифровые и аналоговые сигналы более подробно.

По волоконно-оптическому кабелю могут одновременно передаваться4032 телефонных разговора. Сегодня во многих регионах доступны спе-циальные телефонные линии, обеспечивающие полностью цифровую пе-редачу голоса и данных. Эти линии, образующие цифровую сеть синтегрированными услугами (Integrated Services Digital Network, ISDN),предоставляют абонентам два независимых канала, которые могут испо-льзоваться для передачи голоса или данных.

Хотя линии ISDN радикально изменили наше представление о воз-можных способах отправки и приема информации с помощью домашнихперсональных компьютеров, для крупных компаний они часто оказыва-ются слишком неэффективными. Многие компании используют специа-льные цифровые линии Т1, предоставляющие 24 голосовых канала илиодин канал для передачи данных со скоростью 1544 мегабита в секунду(Мбит/с). Каждому из голосовых каналов может быть присвоен отдель-ный телефонный номер. Для компаний, которым не нужно 24 канала, до-ступны частичные линии Т1, а компании, которым нужна еще большаяскорость, могут использовать линии Т2 или ТЗ, которые намного быст-рее. Например, линия Т2 (6 Мбит/с) по скорости эквивалентна четыремлиниям Т1, а ТЗ (43 232 Мбит/с) — 28 таким линиям. Впрочем, большин-ство людей округляют последнюю скорость до 43 Мбит/с.

Итак, мы установили, что телекоммуникации играют важную роль впроцессе обмена информацией как между частными лицами, так и междукомпаниями. Давайте теперь обратимся к компьютерной составляющейсетей и посмотрим, как происходит объединение всех технологий в еди-ное целое.

Компьютерная сетьНечто похожее происходит и с компьютерами. Первый компьютер пред-ставлял собой огромное сооружение с минимальным объемом памяти.Сейчас компьютеры сжались до очень небольших размеров, имея приэтом колоссальные ресурсы.

Page 26: Oracle 8i Networking 101

8 Глава 1

Чтобы проследить за развитием компьютерных технологий, давайтесовершим путешествие во времени от начала 1950-х годов до наших дней.

Первые компьютерыВ конце 1950-х — начале 1960-х годов один компьютер занимал целый зал.Поскольку компоненты компьютера были склонны перегреваться, воздухв зале кондиционировался. Кроме того, из воздуха удалялась пыль. Ин-формация вводилась с помощью перфокарт, а все задания выполнялись впакетном режиме. Пользователи не взаимодействовали с компьютераминапрямую, как мы со своими PC. В пакетном режиме много времени тра-тилось впустую, поскольку между заданиями, которые могли выполнятьсятолько по очереди, машины бездействовали.

Изобретение сначала ленточных, а потом и дисковых накопителей по-зволило уменьшить время ввода-вывода, но компьютеры по-прежнему неиспользовали все свои вычислительные ресурсы. В середине 1960-х роди-лась идея мультипрограммирования. В многозадачном режиме в памятикомпьютера могло размещаться сразу несколько заданий, между которы-ми делилось процессорное время. Каждое задание требовалось разме-щать в отдельной области памяти и защищать от влияния другихпараллельно выполняющихся заданий. Операционная система компьюте-ра должна была хранить информацию обо всех заданиях, требующих вы-полнения, а также знать, когда и как переключаться от одного задания кдругому. Серьезный недостаток такого подхода состоял в том, что дажесамая незначительная ошибка, например, опечатка при вводе одногосимвола, приводила к сбою всей программы и необходимости ее переза-пуска. Тем не менее схема многозадачности легла в основу временногоразделения ресурсов в системах следующего поколения. Память в то вре-мя стоила дорого, и "большие" компьютеры могли иметь "целых" 8 мега-байт — смехотворное количество по сравнению с 2-4 гигабайтами,типичными для современных машин! Примерно в тот же период по-явились модемы, позволившие обращаться к компьютерам из удаленныхмест.

Следующий этапК концу 1960-х годов совместными усилиями компаний General Electric,Bell Laboratories и Массачусетского технологического института быларазработана первая операционная система с разделением времени,получившая название MULTICS (Multiplexed Information and ComputingService). Хотя временное разделение ресурсов было основано все на тойже идее мультипрограммирования, эта операционная система имелапринципиальное отличие: пользователи могли непосредственно взаимо-действовать с компьютером через подключенные к нему терминалы.Терминал состоял из клавиатуры, обеспечивавшей ввод, и дисплея, на ко-тором отображались выходные данные. Поскольку эти терминалы неимели своих собственных ресурсов, они стали называться "немыми" тер-миналами (dumb terminals). Это была первая настоящая компьютернаясеть, позволявшая выполнять больший объем работы за гораздо меньшеевремя, чем когда-либо раньше.

Page 27: Oracle 8i Networking 101

Обзор сетевых технологий

В 1970-х годах благодаря ранее изобретенному модему, который позво-лял связывать компьютеры при помощи нашего старого друга телефона,компании смогли организовать дистанционное взаимодействие пользова-телей с компьютерами. Модемы преобразовывали цифровую информа-цию, с которой работали компьютеры, в аналоговые сигналы, которыеможно было передавать по телефонным линиям, а потом выполняли об-ратное преобразование.

Но какова была жизнь программистов в те времена?

Как работали в первых компьютерных сетяхПозвольте мне ненадолго предаться воспоминаниям и описать, как вы-глядела работа программиста в 1960-х и 1970-х годах. Когда я начиналасвой профессиональный путь в качестве "программиста/аналитика кате-гории С" (самая низкая должность для программиста в компании), про-граммы запускались на одном большом компьютере (мэйнфрейме). Всенаши вычислительные задачи выполнялись централизованно. Составлял-ся график использования компьютера, и когда наступала наша очередь,мы с коллегами спускались в машинный зал, где стояло несколько "не-мых" терминалов, описанных выше. Мы входили в систему, запускалипредварительно подготовленные задания и работали до тех пор, пока некончалось отведенное время и на смену не приходила другая группа. Тер-миналы напрямую соединялись с компьютером, и работать можно былотолько в этом помещении. Вы можете увидеть эту конфигурацию нарис. 1.2, где четыре терминала непосредственно присоединены кмэйнфрейму.

В этой среде была только одна точка отказа и одна информационнаяточка, к которой каждый мог обратиться за помощью или узнать,что происходит с системой. Обслуживающий персонал состоял из

Терминал 1

Терминал 2

Терминал 3

Терминал 4

Центральный компьютер(мэйнфрейм)

Рис. 1.2. Автономный компьютер с подключенными терминалами

Page 28: Oracle 8i Networking 101

10 Глава 1

единственного системного администратора и одного-двух операторов.Существовал один совместно использовавшийся пакет программ, и всезнали, кто работает с компьютером в данный момент. Поскольку пользо-вателям необходимо было находиться в одном помещении с терминала-ми, а терминалы непосредственно соединялись с компьютером, былоочень мало шансов, что кто-то посторонний получит доступ к этой сети.Таким образом, поддерживать безопасность не составляло большоготруда.

Этой конфигурации были присущи и определенные недостатки. Мырасполагали очень ограниченными ресурсами. Дисковое пространство иоперативная память имели минимальные объемы, а стоимость добавле-ния ресурсов к мэйнфрейму достигала заоблачных высот. Каждому из насвыделялся небольшой (по нынешним меркам) объем персонального дис-кового пространства, в пределах которого предстояло выполнять работу.Если мне требовалось 200 000 байт для компиляции очень сложной про-граммы, а доступно было лишь 150 000 байт, то приходилось просить дру-гих программистов освободить место для моей задачи. В ответ я такжедолжна была убирать свои файлы с диска, когда кому-то требовалось до-полнительное пространство. Перемещение файлов с диска и обратно за-нимало очень много времени. Мы часто пользовались съемнымидисками, чтобы каждая группа могла работать со своими собственнымиресурсами, сохраняя при необходимости безопасность и конфиденциаль-ность данных.

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

В то время мы уже могли пользоваться модемной связью. Эти модемыпередавали по 300 байт в секунду, что было намного лучше, чем 110 байтв секунду, которые давал телетайп. Выполнялись и удаленные вычисле-ния — с помощью устройства для считывания перфокарт, терминалов иудаленного принтера. Однако для наших целей модемы были слишкоммедленными, а качество телефонных линий не позволяло гарантироватьбезошибочную доставку данных из точки А в точку В. Потеря временибыла все же предпочтительней потери данных.

По современным меркам наша вычислительная среда была архаич-ной, громоздкой и сложной.

Сети вступают в пору зрелостиВ тех системах, где компьютеры были доступны по телефонным линиям,вся обработка по-прежнему выполнялась центральным сервером в пакет-ном режиме. Хост-машина принимала задания от терминалов, но сама неинициировала никаких соединений.

Page 29: Oracle 8i Networking 101

Обзор сетевых технологий 11

С появлением в 1970-х годах сети ARPANET взаимодействие между хо-стами стало реальностью. ARPANET была названа по имени спонсораэтого проекта — Управления перспективных разработок (Advanced Rese-arch Projects Agency) при Министерстве обороны США. Она соединялакомпьютеры университетов и исследовательских лабораторий, а такжеслужила коммуникационной магистралью для военных. Это объединениекомпьютеров получило название одноранговой сети (peer-based network),базовая конфигурация которой показана на рис. 1.3. В ARPANET исполь-зовались протоколы FTP, telnet, электронной почты, а также наборы про-токолов терминального доступа (Terminal Access Protocols, TAPs).

Терминалы Терминалы

Рис. 1.3. Одноранговая сеть

Первоначальная идея состояла в том, чтобы объединить компьютеры.Сделав компьютеры доступными по сети, исследователи получили воз-можность совместно использовать их ресурсы, что сокращало расходы иувеличивало число доступных вычислительных средств. После объедине-ния компьютеров в отдельные сети последние соединялись между собой,формируя среду, в которой ученые могли выполнять как интерактивные,так и пакетные задания.

С помощью механизма, называемого коммутацией пакетов (packet swit-ching), можно было разбивать файлы на мелкие фрагменты одинаковой

Page 30: Oracle 8i Networking 101

12 Глава 1

величины (пакеты) и пересылать их по сети, удовлетворяя потребностикак крупных пакетных вычислений, так и небольших интерактивных за-дач. Для повышения надежности сети специальное программное обеспе-чение следило за доступностью ее частей и при необходимости выбиралоальтернативный маршрут. Чаще всего отказывали интерфейсные процес-соры сообщений (Interface Message Processors, IMP) — предки современ-ных маршрутизаторов. Маршрутизатор (router), иначе называемыйшлюзом (gateway), обеспечивает связь между подключенными к нему се-тями, направляя пакеты из одной сети в другую. Маршрутизаторы работа-ют на третьем уровне модели взаимодействия открытых систем ISO, о

OH«JI;Iкоторой подробнее рассказано дальше.Итак, теперь вы имеете представление об аппаратной части этих ран-

них сетей. Но как настроить систему, чтобы каждый компьютер мог взаи-модействовать со всеми остальными? Компьютерам можно присвоитьуникальные имена, используя какое-либо соглашение об именовании, аможно присвоить уникальные номера. И как передавать информациюмежду ними целиком и без ошибок? На эти два вопроса даются все новыеи новые ответы. Давайте посмотрим, на каком варианте остановилисьразработчики ARPANET.

Каждому компьютеру присваивался (как и сейчас) уникальный число-вой адрес. Эти адреса использовались протоколом межсетевого взаимо-действия (Internet Protocol, IP) и поэтому стали называться IP-адресами.IP-адрес состоит из четырех чисел от 0 до 255 и записывается в виде че-тырех групп цифр, разделенных точками: ###.###.###.### (например,111.122.233.254). Каждая группа может содержать от одной до трех цифр.Такой формат называется точечной десятичной (dotted decimal) записью.Его не слишком легко запоминать, но это единственное "имя", по которо-му компьютеры могут различать друг друга. Впрочем, существует и более"человечная" система именования, называемая системой доменных имен(Domain Name System, DNS).

Начало эпохи персональных компьютеровВ конце 1960-х годов на сцене появились мини-компьютеры. Они имелидо гигабайта оперативной памяти и относительно небольшую площадьоснования (footprint). Последняя характеристика показывает, сколько мес-та занимает компьютер на полу машинного зала. Мэйнфреймам требова-лись огромные площади, тогда как мини-компьютерам могло хватитьучастка размером один на три фута. Сегодня портативный компьютертипа notebook имеет габариты примерно 13 на 18 дюймов, что уже сопо-ставимо с размером ладони. Мини-компьютеры проложили дорогу поя-вившимся вслед за ними персональным компьютерам.

В 1975 году был создан первый любительский персональный компью-тер. Он назывался MITS Altair и представлял собой маленькую коробочкус 256 байтами — не килобайтами или мегабайтами, а именно байтами —оперативной памяти. Для ввода информации использовались переключа-тели, а для вывода — лампочки. У этого компьютера не было клавиатурыи дисплея, а также никакого стандартного программного обеспечения,пока Гейтс и Аллен не создали для него язык программирования BASIC.

Page 31: Oracle 8i Networking 101

Обзор сетевых технологий JJ3

Через несколько лет на рынке появился первый Apple, а потом иApple II. Как-то в 1978 году мы с сыном Марком отправились покупать емукомпьютер. Мы внимательно рассматривали разные модели, укомплекто-ванные клавиатурой, монитором и флоппи-дисководом. Марк остановил-ся на Apple II, поскольку тот имел восьмицветную графику и 64 Кбайтоперативной памяти. Объем дисковой памяти тоже был весьма скром-ным, но это была самая мощная машина, которую мы могли себе тогда по-зволить. На ценнике значилась сумма около 1200 долларов. Двадцать двагода спустя за те же 1200 долларов можно купить компьютер с вычислите-льной мощностью, сопоставимой с возможностями самых больших ма-шин тех лет! В 1981 году на рынок ворвался IBM PC, который довольнобыстро нашел дорогу в мир бизнеса благодаря своей практичной конст-рукции и наличию всех необходимых приложений. Мини-компьютерыоказались невостребованными, и от них отказались. Та же история по-вторилась и с микрокомпьютерами.

Первые персональные компьютеры имели серьезный недостаток.Они были "очень персональными". Пользователь работал только со свои-ми собственными данными, приложениями, командными файлами и т.д.В результате эти машины с ограниченными ресурсами медленно встраи-вались в бизнес-среды. Реальное содействие оказали такие программы,как электронные таблицы VisiCalc для Apple и Lotus для IBM PC, а такжеСУБД dBase для IBM PC. Были разработаны программы эмуляции терми-налов, позволившие персональным компьютерам взаимодействовать смэйнфреймами. Корпорация Oracle выпустила версию своей реляцион-ной СУБД для IBM PC.

Локальные и глобальные сетиК периоду 1970-х годов относится появление локальных вычислительныхсетей (local area network, LAN). Технология Ethernet, а также принципыпостроения локальной и глобальной сети были впервые описаны Меткал-фом и Боггсом в статье, опубликованной в июльском номере журналаСАСМ (Communications of the Association for Computing Machinery) за 1976 год.Меткалф изобрел, описал и построил высокоскоростную локальную сеть,разграничив медленную глобальную сеть (wide area network, WAN) иLAN. В то время вычислительные мощности стоили дорого. Многие ком-пании и большинство университетов не могли платить значительные сум-мы за скоростные глобальные сети. Меткалф, работавший висследовательском центре Xerox в Пало-Альто (Xerox Palo Alto ResearchCenter, Xerox PARC), соединил не очень мощные компьютеры ALTOS всеть Ethernet, что позволило эффективно разделять серверы печати,файловые серверы и электронную почту. Разделение ресурсов означало,что больше не нужно держать на одном компьютере все необходимые дляработы компоненты. Это был грандиозный прорыв, давший начало це-лой индустрии. Меткалф, кстати, был одним из основателей 3Com.

LAN обеспечивали скоростную связь (3 Мбит/с) между компьютера-ми, удаленными на небольшие расстояния (сотни метров). Само выраже-ние "локальная сеть" подразумевало, что эти компьютеры, называемыеумами (nodes) сети, должны были располагаться достаточно близко другк другу — в одном офисе, на одном этаже, в нескольких соседних зданиях

Page 32: Oracle 8i Networking 101

14 Глава 1

и т.д. Для соединения компьютеров, как и в наши дни, использовались ка-бели и сетевые интерфейсные платы (network interface cards, NICs). При-меняя сети компьютеров, люди могли совместно использоватьинформацию и ресурсы — например принтеры или централизованныеприкладные программы. Первые локальные сети состояли из небольшо-го числа компьютеров, расположенных не далее 600 футов друг от друга.Такая длина кабеля была предельной для осуществления эффективнойсвязи.

Сетевые технологии (как и все остальные технологии, связанные скомпьютерами) стремительно развивались, и к настоящему времени гло-бальные сети покрыли весь земной шар.

Сети становятся сложнееКак уже было сказано выше, первой крупномасштабной сетью сталаARPANET, созданная под эгидой Министерства обороны США для объе-динения университетов, исследовательских лабораторий и военных орга-низаций. Многие технологии, на которых основаны современные сети,ведут свое начало от ARPANET. Мы обязаны ей принципом коммутациипакетов, а также протоколами, или правилами, сделавшими возможнымпостроение Интернета. Главными среди них являются протокол межсе-тевого взаимодействия (Internet Protocol, IP), обеспечивающий адреса-цию и маршрутизацию, и протокол управления передачей (TransmissionControl Protocol, TCP), гарантирующий надежную доставку данных. Онилежат в основе целого семейства протоколов, объединяемых под назва-нием TCP/IP и определяющих способ связи между компьютерами в Ин-тернете. Ключевая идея коммутации пакетов состоит в том, чтобыразбивать сообщения на более мелкие фрагменты одинакового размера,называемые пакетами (packets). Каждый из них снабжается специальнойинформацией, позволяющей собрать исходное сообщение в правильномпорядке, благодаря чему пакеты могут посылаться вперемешку,ARPANET представляла собой именно такую "смешанную" сеть.

Чтобы подключиться к ARPANET, которая первоначально состоялавсего из четырех узлов, университеты должны были получить разреше-ние от Министерства обороны. В 1986 году Национальный научный фонд(National Science Foundation, NSF) начал формировать другую, более от-крытую сеть, к которой мог подключиться любой желающий. Эта сеть по-лучила название NSFNET. ARPANET представляла собой небольшойкластер компьютеров, тогда как в основе NSFNET лежала магистраль, со-единявшая несколько суперкомпьютеров, к которой подключались регио-нальные компьютеры. К NSFNET присоединялось все больше и большекомпьютеров и сетей, и в какой-то момент ее название изменилось наInternet. К началу 1990-х годов Интернет состоял из множества высоко-скоростных магистралей и более чем миллиона компьютеров. Около1995 года началось массовое подключение к Интернету на коммерческойоснове, которое обеспечивали так называемые поставщики услуг Интер-нета (Internet Service Providers, ISP). В 1997 году Интернет насчитывалуже около 30 миллионов компьютеров, объединенных по географическо-му и функциональному признаку в различные домены (domains).

Page 33: Oracle 8i Networking 101

Обзор сетевых технологий 15

Со многими существующими сейчас доменами вы наверняка знакомы.Ниже приведены обозначения некоторых из них:

• .com (коммерческие организации)• .gov (правительственные учреждения)• .edu (учебные заведения)• .net (сети)• .fr (Франция)• .uk (Соединенное Королевство)• .us (Соединенные Штаты)

Немного о WebКаждый, кто хоть раз выходил в Интернет, наверняка использовал адрес,включавший в себя сочетание "www". World Wide Web ("всемирная паути-на"), или просто Web,— это графическая часть Интернета, ориентирован-ная на работу с мышью и состоящая из невообразимого количествавзаимосвязанных сайтов. Web была изобретена в 1989 году Тимом Бер-нерсом-Ли из лаборатории физики элементарных частиц Европейскогоцентра ядерных исследований (CERN), расположенного в Швейцарии.Домашняя страница CERN (www.cern.ch/Public/Welcome.html) дажеимеет подзаголовок "where the Web was born" ("... где родилась Web").

Первоначально Интернет был основан на тексте и предназначалсяглавным образом для передачи электронной почты, эмуляции термина-лов и терминального доступа, передачи файлов, организации досок объ-явлений, а затем и групп новостей. В отличие от этого Web рассчитана наиспользование браузера и позволяет людям обмениваться идеями и ин-формацией самого разного вида посредством гиперссъшок (hyperlinks).Гиперссылка включает в себя унифицированный указатель ресурса (Uni-form Resource Locator, URL), который определяет местонахождение фай-ла на диске сетевого компьютера. С помощью браузера этот файл можнооткрыть и просмотреть. Файлы могут содержать текст, изображения, ви-део или звук. Через Web можно даже смотреть фильмы или наблюдать задействиями, происходящими в реальном времени.

Сегодня пользователи Web могут легко переходить от одной темы кдругой, используя все более сложные браузеры, которые запоминаютпредыдущие адреса. Вы можете обращаться к информации примерно также, как это делает компьютер, то есть произвольным образом переходяот одного дискового файла к другому. Разница лишь в том, что эти файлымогут быть разбросаны по всему Интернету. Такой способ доступа соот-ветствует естественной работе мозга, где одна идея сменяет другую в не-прерывном "потоке сознания".

Благодаря Web стала возможна новая форма бизнеса — так называемаяэлектронная коммерция (eCommerce). Она предъявляет более высокиетребования к ресурсам и в большей степени зависит от возможностиуспешно поддерживать связь компьютера с внешним миром при сохране-нии конфиденциальности в ряде областей. В следующем разделе описанряд базовых сетевых конфигураций и объяснены некоторые связанные сними термины.

Page 34: Oracle 8i Networking 101

16 Глава 1

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

Угадайте, сколько базовых типов сетей существует сейчас? Один?Десять? Сотня? В действительности их всего четыре: централизованная,кольцевая, шинная и распределенная. Мы уже видели примеры централи-зованной (рис. 1.2) и распределенной (ARPANET, рис. 1.3) сетей. По-смотрите еще раз на эти рисунки.

Вообще говоря, сети можно рассматривать с разных точек зрения. То-пология сети определяет способ физического соединения компьютеров.Стеки протоколов определяют способ пересылки данных по сети. Отдель-ной темой является организация распределенных вычислений.

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

В централизованной сети терминалы соединены с главным компьютером(мэйнфреймом). Ресурсы ограничены, а расширение системы может сто-ить очень дорого, поскольку требует замены центрального компьютера.Как правило, здесь есть только один системный администратор, которыйрешает, кто и когда будет работать с ресурсами.

Одноранговая сеть состоит из соединенных друг с другом компьюте-ров, которые, как следует из названия, равноправны и могут разделятьсвои ресурсы. Иными словами, принтер или диск, подключенные к маши-не А, будут доступны как самой машине А, так и машинам В, С и D. Одно-ранговые сети хорошо подходят для небольших организаций. Онидешевы и просты в установке. Что касается администрирования, то здеськаждый пользователь контролирует ресурсы своей машины и определя-ет, кто будет иметь к ним доступ.

Сеть клиент/серверНа рис. 1.4 показана базовая конфигурация сети клиент/сервер.

Сети клиент/сервер одновременно и мощнее, и универсальнее, чемцентрализованные или одноранговые. Вы можете связать множестворазнородных компьютеров, имеющих разные операционные системы,чтобы обеспечить поддержку сотен клиентов. В отличие от централизо-ванной сети здесь можно объединить несколько мини-компьютеров илимощных микрокомпьютеров, играющих роль серверов, чтобы увеличить

Page 35: Oracle 8i Networking 101

Обзор сетевых технологий 17

Серверы

Терминалы

Рис. 1.4. Сеть клиент/сервер

объем предоставляемых ресурсов. Серверы в такой конфигурации имеютспециальные серверные операционные системы. В случае "чистой" сетиклиент/сервер клиенты обладают своими собственными вычислитель-ными мощностями и ресурсами. В то время как в одноранговых сетяхкомпьютеры напрямую соединяются друг с другом, в сетях клиент/сер-вер могут быть такие компьютеры, которые соединены только с серве-ром. Соединение клиентов с сервером возможно даже по телефоннойлинии. Одноранговые сети состоят из равноправных и достаточно мощ-ных компьютеров, которые могут выступать в роли как клиентов, так исерверов, тогда как сети клиент/сервер состоят из менее мощных клиен-тов, соединенных с мощными серверами. Сети клиент/сервер допускаютмасштабирование, поскольку при возрастании требований в системуможно добавлять дополнительные серверы.

От серверов требуется большая надежность, чем от обычных настоль-ных компьютеров. Серверные операционные системы должны обеспечи-вать отказоустойчивость, безопасность, эффективное резервноекопирование, установку различных прав доступа для администраторов ипользователей, а также обработку больших потоков данных. Сетевое про-граммное обеспечение может быть отдельным продуктом, добавляемым коперационной системе (как Novell NetWare), или встраиваться в опера-ционную систему изначально. Примерами систем с предустановленнымисетевыми компонентами являются Windows 95/98 и Windows NT/2000.Компьютеры Apple связываются друг с другом при помощи сетевых про-токолов AppleTalk. Хотя Novell NetWare и Windows NT ориентированына PC, они имеют дополнительные средства для поддержки компьютеровApple Macintosh.

2 Зак. 726

Page 36: Oracle 8i Networking 101

18 Глава 1

Подробнее о клиентах и серверахВ настоящее время используются два типа сред клиент/сервер: с архи-тектурой клиент/сервер и с архитектурой тонкого клиента (thin client).В чем же их различие? Частью архитектуры клиент/сервер является на-стольный персональный компьютер (ПК), имеющий определенный объ-ем памяти и дискового пространства. Обычно на этом ПК хранится ивыполняется некоторый прикладной код, который обращается к серверу.Ресурсы компьютеров могут значительно различаться, причем некото-рые ПК вообще не способны выполнять все те задачи, которые воз-лагаются на них пользователями. Для печати у клиента может бытьустановлен локальный принтер.

Теперь обратимся к архитектуре тонкого клиента (называемой такжетрехуровневой архитектурой), пример которой показан на рис. 1.5. Здесьво взаимодействии участвуют три различные машины.

Машиныс web-браузерами

Клиентские запросыи их результаты

Сервер базы данных

Сервер приложенийс прослушивающим процессомHTTP и административнымпрослушивающим процессом

Диспетчеры

Рис. 1.5. Архитектура тонкого клиента

Как видно из рис. 1.5, клиентские машины соединены с машиной сред-него уровня — сервером приложений. Эти клиенты обычно имеют оченьограниченные ресурсы. Единственное, что от них требуется,— это запра-шивать выполнение операций у сервера приложений и получать резуль-таты. Для этого, как правило, клиенты снабжаются браузером, алокальные устройства хранения у них могут вообще отсутствовать.

Page 37: Oracle 8i Networking 101

Обзор сетевых технологий 19

Выполнение приложений и хранение данных целиком обеспечиваетсясервером сети. Современные ПК имеют быстродействующие графиче-ские дисплеи, а архитектура тонкого клиента позволяет с выгодой испо-льзовать быструю передачу данных между сервером приложений идисплеем ПК.

Приложения среднего уровня часто выполняются под управлениеммонитора обработки транзакций (Transaction Processing Monitor, TPM).К наиболее широко используемым ТРМ относятся Tuxedo, Enema, CICS,NCR Top End, Microsoft Transaction Server и Digital ACMSxp. Мониторытранзакций обычно применяются при выполнении крупномасштабныхтранзакций с участием как одной, так и нескольких баз данных. В табли-це 1.1 перечислены свойства транзакций, которые гарантирует ТРМ.

Таблица 1.1.Свойства транзакции, обеспечиваемые монитором обработки транзакций

Свойство Объяснение

Атомарность Все транзакции либо выполняются полностью(завершаются), либо не выполняются вообще.Если транзакция была прервана, система возвращаетсяв исходное состояние.

Согласованность Транзакция должна сохранять требуемые свойствасистемы. Например, при переводе денег с одного счетана другой в базе данных должно быть отражено как зачис-ление на счет, так и списание со счета, чтобы не нарушитьбаланс системы счетов.

Изолированность Промежуточные состояния системы не должны бытьвидимы другим транзакциям. В случае перевода денегэто означает, что обе стороны в системе двойной записидолжны измениться одновременно. В результате создаетсявпечатление последовательного выполнения транзакций,даже если на самом деле работа ведется параллельно.

Устойчивость После завершения транзакции изменения должныоставаться постоянными, за исключением случаевкатастрофического отказа.

Третий компонент архитектуры тонкого клиента, сервер базы дан-ных, имеет намного больше ресурсов, чем любой другой компьютер.В мире сетей существует много разновидностей серверов, обеспечиваю-щих поддержку разных сторон деятельности организации. Серверыобычно классифицируются по типу выполняемой ими работы. Некото-рые из типов серверов перечислены в таблице 1.2. В сети могут одновре-менно использоваться серверы нескольких типов.

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

Page 38: Oracle 8i Networking 101

20 Глава 1

Таблица 1.2.Типы серверов сети

Тип сервера Назначение

Выделенные серверы(dedicated servers)

Невыделенные серверы(nondedicated servers)

Файловые серверы(file servers)

Серверы печати(print servers)

Серверы приложений(application servers)

Почтовые серверы(mail servers)

Факс-серверы (fax servers)

Коммуникационные серверы(communication servers)

Брандмауэры (firewalls)

Серверы резервногокопирования (backup servers)

Предназначены исключительно для поддержки пользовате-лей и самой сети. Не выполняют никаких клиентских задач.

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

Хранят файлы, созданные прикладными программами.Передают клиентам запрашиваемые документы. Обеспечива-ют одновременный доступ к одному и тому же файлу.Классическим примером разделяемой файловой системыслужит база данных Oracle.

Позволяют выполнять печать на присоединенных к ним при-нтерах. До завершения текущего задания запросы на печатьбуферизуются в файле. Сервер сообщает состояние каждогозадания и устанавливает приоритет заданий.

Хранят информацию и передают ее на обработку серверамбаз данных.

Обеспечивают прием, отправку и хранение почтовыхсообщений централизованным образом. Могут конфигуриро-ваться так, чтобы распознавать псевдонимы людей иликоллекций адресов.

Обеспечивают прием и отправку факсимильных сообщений.

Обеспечивают удаленный доступ к сети или, наоборот,обращение из сети к другим удаленным службам.

Защищают компьютеры во внутренней сети компании отнесанкционированного доступа из внешней сети. Могутиспользоваться для контроля за соединениями пользовате-лей с внешней сетью.

Обеспечивают защиту данных путем резервного копированияна сменные носители. Могут автоматически выполнять ре-зервное копирование в заданное время с интервалом в день,неделю или месяц.

Необходимое оборудованиеКаждый компьютер сети должен иметь плату сетевого адаптера, называе-мую также сетевой интерфейсной платой (Network Interface Card, NIC).Она обычно вставляется в один из слотов расширения, находящихсявнутри компьютера. В портативных компьютерах используются специа-льные платы PCMCIA, вставляемые в слот сбоку компьютера. Сетеваяплата обеспечивает отправку сообщений в сеть, а также прием сообще-ний, адресованных данному компьютеру.

Та часть сетевого адаптера, к которой присоединяется кабель, называ-ется портом. Если вы посмотрите на сетевой адаптер компьютера, то об-наружите, что он поддерживает один или несколько типов кабельных

Page 39: Oracle 8i Networking 101

Обзор сетевых технологий 21

разъемов. Кабель может оканчиваться круглым разъемом, известным подназванием BNC (British Naval Connector), 15-контактным разъемом AUI(Attachment Unit Interface), похожим нате, что используются для подклю-чения компьютерной периферии, или разъемом RJ-45, напоминающимтелефонный, но крупнее.

Осторожно!Не подключайте телефонную линию к сетевой плате.Так можно сжечь плату.

Сетевая топологияОтгадайте загадку. Я держу в руке какой-то предмет. Он идеально круг-лый, белый и очень твердый. Как вы думаете, что это такое? Будет ли вампроще догадаться, если я скажу, что стою рядом с большим прямоуголь-ным столом, покрытым зеленым сукном? Если вы решили, что я держу вруке бильярдный шар, то вы совершенно правы. Как видите, при описа-нии предмета очень важно указать его форму. Итак, рассмотрим некото-рые из распространенных форм, или топологий, сетей. Описываясетевую топологию, мы говорим о том, каким образом соединены различ-ные компоненты сети. Существуют три базовые топологии: шина (bus),кольцо (ring) и звезда (star). Учтите, что если посмотреть на соединен-ные в сеть компьютеры или терминалы, то их конфигурация может неиметь ничего общего ни с одной из этих форм. В этом случае речь идет ологической, а не физической топологии, то есть о том, как организованапередача данных между машинами — по прямой, по кругу или от центра кпериферии.

Шинная, или линейная, топологияТакую топологию реализовать проще всего, поскольку все компьютерыприсоединяются к общему кабелю. Этот кабель называется сегментом(trunk) или магистралью (backbone) и имеет на каждом конце термина-тор, не позволяющий сигналу отражаться обратно и искажать передавае-мые сообщения. Сигналы могут распространяться либо справа налево,либо слева направо. На самом деле под кабелем здесь понимается все мно-жество кабелей, соединяющих интерфейсные платы. Если используется"тонкий" Ethernet, то платы соединяются друг с другом коаксиальнымикабелями, подключаемыми к Т-образным соединителям на плате. Платымогут соединяться не напрямую, а через концентратор (hub). Для под-ключения платы к концентратору используется волоконно-оптическийкабель или неэкранированная витая пара (unshielded twisted pair, UTP).Широко распространенный вариант сети Ethernet, в котором применяет-ся UTP, имеет название 10Base-T. Это означает, что скорость передачисоставляет 10 Мбит/с, передача ведется без модуляции (baseband), а в ка-честве среды передачи используется витая пара. Концентратор содержитспециальную схему, отключающую неисправные сегменты. Кабели UTPиспользуются и в более современных скоростных стандартах 100Base-T иGigabit Ethernet, совместно с модернизированными концентраторами иадаптерами.

Page 40: Oracle 8i Networking 101

22 Глава 1

В шинной топологии все узлы являются пассивными, то есть прослу-шивают сеть, ожидая появления адресованных им сообщений, и не пред-принимают никаких действий по организации передачи сообщениймежду узлами. Теоретически каждый узел может посылать сообщения лю-бому другому узлу так часто, как требуется. Хотя сообщение посылается суникального адреса отправителя на уникальный адрес получателя, на са-мом деле оно посылается всему сообществу. Фактический прием сообще-ния выполняет только узел с указанным адресом. Если другие узлызахотят послать сообщение, то они должны ждать своей очереди. Чтобыизбежать конфликтов, в стандарте Ethernet используется технология подназванием коллективный доступ с контролем несущей и обнаружением коллизий(carrier sense multiple access with collision detection, CSMA/CD). Прощеговоря, перед началом передачи узел должен дождаться освобождениялинии. Если два узла начнут посылать сообщения одновременно, то обасообщения будут искажены. Обнаружив это, каждый узел должен выдер-жать паузу с,о случайно выбранной длительностью и лишь затем повто-рять передачу.

На рис. 1.6 показан пример шинной, или линейной, топологии. Каквидите, терминалы и серверы присоединены к одной и той же кабельнойлинии, а связь является двунаправленной.

Терминалы Серверы

МагистральНаправления распространения сигнала

Рис. 1.6. Шинная, или линейная, топология

Шинные сети просты в реализации и дешевы (не нужно много кабе-лей), однако возникающие в них проблемы трудно диагностировать, а вслучае разрыва кабеля вся сеть становится неработоспособной. Крометого, имейте в виду, что чем больше узлов добавляется к шине, тем мед-леннее могут передаваться сообщения, поскольку каждый узел долженожидать своей очереди на передачу.

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

Page 41: Oracle 8i Networking 101

Обзор сетевых технологий 23

цепочке 1-2-3-4 или 1-5-4. С точки зрения каждого узла, кольцевая сеть —чаще называемая маркерным кольцом (token-ring) — представляет собойзамкнутое кольцо. Эта сеть функционирует точно так же, как и круг де-тей, шепчущих друг другу сообщения, но сигнал может распространятьсятолько в одном направлении. В отличие от шинной сети каждый узелмаркерного кольца активно участвует в процессе передачи, генерируя,передавая и принимая сообщения. Узел может даже усиливать или улуч-шать сигнал, передаваемый следующему узлу кольца.

Первоначально по кольцу передается маркер (token), представляющийсобой короткую битовую последовательность. Узел, желающий начать пе-редачу, должен дождаться прихода маркера. Затем он модифицирует мар-кер, тем самым сообщая другим узлам о том, что маркер занят, и передаетего вместе с сообщением следующему узлу. Получатель, приняв модифи-цированный маркер вместе с сообщением, отправляет подтверждение,при получении которого отправитель генерирует новый маркер, сооб-щая остальным узлам о том, что маркер снова доступен.

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

Звездообразная топологияНазвание этой топологии обусловлено тем, что кабели расходятся от цен-трального узла во многих направлениях подобно лучам звезды. Нарис. 1.7 показана звездообразная топология, в которой узлы соединеныкабелями с центральным концентратором.

Концентратор может быть активным или пассивным. Активный кон-центратор усиливает сигнал, тогда как пассивный просто передает его посети. В звездообразной сети могут одновременно присутствовать и актив-ные, и пассивные концентраторы. Пассивные концентраторы служатточками подключения для групп узлов, а активные выступают в роли

Узел Узел

Узел Узел

Рис. 1.7. Звездообразная топология

Page 42: Oracle 8i Networking 101

24 Глава 1

центральных "сборных пунктов" для серверов, других концентраторов иотдельных узлов. Аналогично маркерному кольцу очередность передачисообщений в звездообразной конфигурации определяется с помощьюмаркера. Поскольку узлы физически не связаны в кольцо, существует спе-циальный предопределенный порядок передачи маркера.

Звездообразную топологию можно использовать для организации гиб-ридной сети, содержащей активные концентраторы и общие шины. Звез-дообразные сети обладают хорошей расширяемостью, позволяя легкодобавлять или удалять узлы. Существуют также гибридные концентрато-ры, поддерживающие несколько типов кабельных соединений. Посколь-ку каждый узел соединен с концентратором отдельным кабелем,локализовать проблему здесь гораздо проще, чем в кольцевой конфигура-ции. Конечно, если сеть имеет только один концентратор, то его полом-ка приведет к неработоспособности всей сети.

Теперь посмотрим, как выполняются соединения в звездообразной то-пологии. Для соединения концентраторов между собой используются во-локонно-оптические кабели, длина которых может достигать несколькихтысяч футов. Компьютеры и другие устройства подключаются к концент-раторам с помощью экранированных или неэкранированных витых пар,которые должны быть не длиннее 100 футов. Пакеты данных, называе-мые кадрами (frames), передаются от одного узла к другому по кругу, хотякабели разведены в виде звезды. Сеть с маркерным кольцом имеет такуюже конфигурацию кабелей, как и звезда, однако внутри концентратора су-ществует самое настоящее кольцо.

Итак, теперь вы имеете представление об основных сетевых топологияхи некоторых распространенных типах сетей. Все это интересно, нокаким образом почтовое сообщение (или файл), которое вы захотите мнепослать, попадет в место назначения? Вы можете находиться в Лондоне,а я в Вене, штат Вирджиния. Между нами огромное расстояние! Чтобыначать объяснение того, как данные передаются по сети, мы должнырассмотреть потенциальные ограничения, которые могут влиять напередачу данных.

Жизнь — это скоростное шоссеВыезжая утром из дома, я попадаю на улицу с односторонним движением,где одна полоса предназначена для парковки, а другая — для движения.На первом перекрестке я поворачиваю на другую улицу, где достаточноместа и для парковки на обеих сторонах, и для движения в обоих направ-лениях. Я доезжаю до светофора в конце этой улицы и выезжаю на маги-страль с тремя полосами для движения в каждом направлении иразделителем посередине. Эта дорога ведет к магистрали, имеющей пошесть полос в каждом направлении. На узкой улице, по которой я ехала всамом начале, скорость ограничена 15 милями в час, тогда как на магист-рали установлено ограничение 55 миль в час. Когда мне нужно попасть вместный супермаркет, я еду по магистрали до нужного съезда. Если в этовремя проводится большая распродажа, то таких, как я, может оказаться

Page 43: Oracle 8i Networking 101

Обзор сетевых технологий 25

много. Это значит, что машины из всех шести рядов будут перестраивать-ся на одну или две полосы, с которых организован съезд. Возможно, мнепридется довольно долго простоять в пробке, чтобы попасть на стоянкуперед супермаркетом. Конечно, после этого еще нужно найти свободноеместо, но это уже совсем другая история.

Компьютерная сеть во многом похожа на дорожную. Кабели рассчита-ны на передачу разного объема трафика, поэтому общая скорость пере-сылки данных по сети будет определяться самым "узким" местом.Скорость, с которой кабель может передавать данные, называется пропу-скной способностью. Разные участки сети могут иметь разную пропускнуюспособность. Теперь представим, что вы хотите переслать по сети огром-ный файл, а мне в то же самое время нужно передать небольшое сообще-ние. Будет несправедливо, если вы полностью загрузите системупересылкой своего файла, а мне придется ждать.

Хотя сети работают достаточно быстро, передача каждой порции дан-ных все равно занимает какое-то время. Как же нам организовать одно-временную отправку своих данных? Нет ничего проще! Каждоесообщение при передаче разбивается на последовательность пакетов.Следовательно, большой файл превращается во множество мелких паке-тов, и это позволяет передавать наши файлы практически одновременно.В каждый пакет включается информация, на основе которой принимаю-щая сторона может собрать исходный файл в правильном порядке, поэ-тому пакеты, относящиеся к разным сообщениям, могут чередоваться.

Что еще, кроме данных, должно входить в состав каждого пакета, что-бы принимающая сторона могла собрать исходное сообщение? Пакетдолжен содержать информацию о том, откуда он был отправлен и комупредназначен, порядковый номер и информацию для обработки ошибок.Фактически пакет состоит из трех частей: заголовка, поля данных и за-ключительной части. Заголовок содержит адреса источника и назначе-ния, а также управляющую информацию. Поле данных содержит самупередаваемую информацию и обычно имеет размер от 512 байтов до4 Кбайт. В заключительной части находится прочая необходимая инфор-мация, в том числе и для обработки ошибок, помогающая убедиться, чтоданные были переданы без искажений.

Каким образом» компьютер может убедиться в том, что принятые имданные в точности соответствуют посланным? Для этого применяетсятак называемая циклическая проверка четности с избыточностью (cyclical re-dundancy check, CRC). Компьютер, передающий данные, вычисляет поним некоторое значение. Это значение включается в пакет. Принимаю-щий компьютер также вычисляет значение по содержимому пакета исравнивает его с тем, которое было послано передающим компьютером.Если оба значения совпадают, то данные можно считать достоверными.В противном случае принимающий компьютер будет использовать содер-жащуюся в пакете информацию для обработки ошибок, чтобы разрешитьпроблему. Существует несколько стандартов, детально описывающихпроцедуры вычисления контрольного значения и способы обработкиошибок.

Page 44: Oracle 8i Networking 101

26 Глава 1

Формирование пакетов и передача данныхВы можете спросить: какая аппаратура или программа помещает данныев пакеты и присоединяет к ним служебную информацию? Кто собираетданные на другом конце? Используемый для этого механизм должен раз-делить данные на небольшие фрагменты, добавить к ним адреса отправи-теля и получателя, после чего отправить пакеты в сеть. Принимающаясторона должна иметь аналогичный механизм, позволяющий считать всепакеты и собрать из них исходный файл. Большую часть перечисленныхзадач выполняет сетевой адаптер, о котором упоминалось ранее в этойглаве. Вспомните, что в каждом подключенном к сети компьютере естьплата адаптера, которая обеспечивает связь по сети.

Выше говорилось, что максимальная скорость, с которой оборудова-ние может передавать данные, называется пропускной способностью.Способ измерения пропускной способности зависит от того, в какой фор-ме посылается сигнал: аналоговой или цифровой. Аналоговый сигналпредставляет собой непрерывно изменяющуюся волну, тогда как цифро-вой имеет вид дискретных импульсов. Формы аналогового и цифровогосигналов показаны на рис. 1.8.

Обратимся сначала к аналоговому сигналу. Расстояние между соседни-ми вершинами (максимумами) или впадинами (минимумами) называетсяпериодом колебаний. Чем меньше этот период, тем больше колебанийпроисходит на заданном временном интервале и тем выше частота сигна-ла. Частота измеряется в герцах (Гц) и представляет собой количествоколебаний, происходящих за одну секунду. Если посмотреть на частот-ный спектр аналогового сигнала, то можно увидеть, что в нем присутству-ет целый набор частот, от низких до очень высоких. Пропускнаяспособность аналогового канала связи зависит от его полосы пропуска-ния, то есть от разности между максимальной и минимальной частотами,которые могут передаваться по этому каналу.

Аналоговый сигнал

Цифровой сигнал

Рис. 1.8. Аналоговый и цифровой сигналы

Page 45: Oracle 8i Networking 101

Обзор сетевых технологий 27

Для цифровых сигналов пропускная способность измеряется в битах всекунду (бит/с). Чем больше битов передается за одну секунду, тем онавыше. Пропускная способность большинства современных линий связиизмеряется килобайтами в секунду (Кбайт/с), мегабайтами в секунду(Мбайт/с) или даже гигабайтами в секунду (Гбайт/с).

Немодулированная и широкополосная передачаСуществуют две основные формы передачи сигналов: немодулированная(baseband) и широкополосная (broadband). При немодулированной пере-даче по каналу связи в каждый момент времени передается только одинцифровой сигнал. Казалось бы, одна передача должна занять весь канал,но это не так. С помощью техники мультиплексирования (multiplexing) поодному каналу можно одновременно передавать несколько потоков дан-ных, разделяя их во времени или пространстве. В этих случаях говорятсоответственно о мультиплексировании с пространственным разделени-ем (space division multiplexing) или о мультиплексировании с временнымразделением (time division multiplexing).

Однако при немодулированной передаче возникает одна проблема.Чем дальше цифровой сигнал распространяется по каналу, тем сильнееон затухает и искажается, и в конце концов может стать совершенно не-разборчивым. Решение состоит в использовании специального механиз-ма, восстанавливающего форму сигнала. Соответствующее устройствоназывается репитером (repeater). Немодулированные сигналы широко ис-пользуются в сетях Ethernet и Token Ring.

Теперь обратимся к широкополосной передаче и посмотрим, чем онаотличается от немодулированной. Прежде всего широкополосный сиг-нал является аналоговым и распространяется по среде (например, коак-сиальному или волоконно-оптическому кабелю) в виде набора частот. Покабелю можно передавать в одном направлении сразу несколько сигна-лов, выделив каждому сигналу свой частотный канал. Между каналамиоставляют небольшие интервалы неиспользуемых частот, чтобы сигналыне мешали друг другу. Чтобы одновременно отправлять и принимать ин-формацию, необходимо иметь либо два канала, либо два отдельных кабе-ля. По разным каналам можно одновременно передавать голос,видеосигналы и данные. Широкополосная передача обычно использует-ся в глобальных сетях и кабельном телевидении.

Взаимодействие открытых системХочу предложить вам одну игру, которую только что придумала. Нужноугадать название предмета, которым мы пользуемся в повседневной жиз-ни. Оно написано у меня на карточке. Можно задать три вопроса, предпо-лагающих только ответы "да", "нет" или "может быть".

Разумеется, в подобную игру трудно играть, если мы с вами не сидимдруг против друга или не можем оперативно общаться. В любой игре сна-чала нужно понять цель и узнать правила. Из описания условий моейигры вы знаете, что можно задать только три вопроса, которые должныбыть составлены довольно специфическим образом. Таким образом, выобязаны следовать двум правилам.

Page 46: Oracle 8i Networking 101

28 Грава 1

До сих пор мы рассматривали только физическое устройство сети.Мы познакомились с частью сетевого оборудования, топологиями, а так-же способами передачи и приема информации. Сеть может состоять измножества компонентов с самой разной архитектурой. Что позволяетэтим компонентам успешно стыковаться друг с другом, образуя пригод-ную для работы сеть? Это стандарты — иначе говоря, правила, которымнеобходимо следовать, чтобы участвовать в игре под названием "работа всети".

В 1978 году Международная организация по стандартизации (Internatio-nal Organization for Standardization, ISO) разработала набор стандартовпод названием "эталонная модель взаимодействия открытых систем"(Open Systems Interconnection reference model). Обычно их называютпросто моделью ISO/OSI. Эти стандарты были пересмотрены и зановоопубликованы в 1984 году. Они описывают, как должны проектироватьсяи конфигурироваться разнородные компоненты сети, чтобы была воз-можна их совместная работа. Следование этим стандартам помогает про-изводителям оборудования и программного обеспечения создаватьпродукты, легко стыкующиеся друг с другом с образованием многоуровне-вой архитектуры.

Модель ISO/OSI дает только общую схему построения компонентовсети; конкретная реализация этих компонентов определяется производи-телями. Следует также иметь в виду, что существует несколько различныхстандартов, на основе которых могут строиться сети.

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

Семь уровней модели OSIКаждый из уровней OSI отвечает за выполнение определенных действийпо подготовке информации к передаче по сети. Эти семь уровней иногданазывают стеком протоколов (protocol stack), поскольку каждый из нихоснован на предыдущем. Уровни могут взаимодействовать только со сво-ими непосредственными соседями по стеку. Предоставление услуг выше-лежащему и доступ к нижележащему уровню осуществляются через четкоопределенные интерфейсы.

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

Page 47: Oracle 8i Networking 101

Обзор сетевых технологий 29

Таблица 1.3.Семь уровней модели OSI

№ уровня Название Описание

Прикладной Обеспечивает приложениям доступ к сети и реализует(application layer) стандарты, определяющие, как будет выглядеть приложе-

ние для конечных пользователей.

Представления данных Согласует представления информации, используемые(presentation layer) в разных системах.

Сеансовый Позволяет устанавливать сеансы связи и предоставляет(session layer) стандартные средства пересылки данных между приклад-

ными программами.

6

5

4

3

Транспортный Обеспечивает надежную и прозрачную транспортировку(transport layer) пакетов между станциями.

Сетевой Обеспечивает адресацию и маршрутизацию как в преде-(network layer) лах одной сети, так и между сетями. Предоставляет

интерфейс физическому/канальному уровням дляпрограммного обеспечения более высокого уровня.

Канальный Упаковывает данные в кадры и устанавливает фактические(data link layer) сетевые соединения. Синхронизирует блоки данных,

обнаруживает ошибки и управляет потоком данных.

Физический Определяет состав оборудования и передает данные в(physical layer) виде непрерывного последовательного потока битов по

физическим линиям связи. На этом уровне определяютсятипы соединителей, параметры сигналов и схемы доступак разделяемой среде передачи.

Теперь, когда у вас есть общее представление о каждом уровне, рас-смотрим их немного подробнее. Независимо от того, в каком порядкерассматривать эти уровни — начиная с седьмого или с первого, их функ-ции остаются одинаковыми. Поскольку вам и вашим пользователям чащевсего приходится взаимодействовать с прикладным уровнем, начнемименно с него.

Уровень 7: прикладнойПрикладной уровень обеспечивает приложениям доступ к сети и обслу-живает пользователей. Именно здесь располагается код прикладных про-грамм и сетевых операционных систем. Приложения могут быть самымиразнообразными — для буферизации печати, работы с электронной поч-той (например, Microsoft Outlook или Outlook Express), передачи фай-лов, доступа к базам данных (SQL*Net или Net8, взаимодействующие сбазой данных Oracle) или ведения бухгалтерского учета. Некоторые изних — например, те, что предназначены для передачи файлов,— хотя и ра-ботают на прикладном уровне, но в действительности выполняют функ-ции более низкого уровня. Их можно сравнить с менеджером, которыйсамостоятельно вводит данные в таблицы, поскольку работа должна бытьвыполнена, а рядом нет никого, кому можно было бы поручить это дело.

Page 48: Oracle 8i Networking 101

30 Глава 1

Этот уровень позволяет совместно использовать принтеры и файлы, атакже работать со службами каталогов — например службой именованиядоменов, о которой говорилось ранее. Каждое приложение, работающеев сети, использует определенные протоколы прикладного уровня. Напри-мер, приложение для работы с электронной почтой реализует специфи-кацию обработки сообщений Х.400, а служба каталогов — спецификациюХ.500. Многие из этих протоколов, скажем, Systems Application Architectu-re (SAA) фирмы IBM, появились относительно недавно. Протоколы истандарты, используемые Oracle, будут рассмотрены в главе 2.

Уровень 6: представления данныхЕсли бы вы читали этот текст с экрана компьютера, то заголовок разделабыл бы выделен полужирным шрифтом. Теперь предположим, что вы ви-дите на экране мигающие символы, или формы для ввода данных, илиграфики. Во всех случаях вы взаимодействуете с уровнем представленияданных.

Основная задача уровня представления данных — обеспечить правиль-ное форматирование информации, чтобы конечный продукт выгляделтак, как это было задумано программистом. На этом уровне "живут" гра-фические форматы и наборы символов. В большинстве современныхкомпьютеров используется американский стандартный код для обменаинформацией (American Standard Code for Information Interchange,ASCII), хотя в некоторых (в частности, мэйнфреймах IBM) все еще при-меняется расширенный двоично-кодированный десятичный код инфор-мационного обмена (Extended Binary Coded Decimal Interchange Code,EBCDIC). Код ASCII позволяет представить до 256 символов с помощью 7или 8 битов. В коде EBCDIC всегда используются 8 битов, представляю-щих те же 256 символов. Однако в ASCII буква а нижнего регистра коди-руется десятичным числом 97, а в EBDIC — числом 129. Есть разница, неправда ли? Примером протокола, в котором реализованы функции уров-ня представления данных, является протокол передачи гипертекста (Hy-pertext Transfer Protocol, HTTP), используемый для форматированияинформации на Web-сайтах.

Итак, именно уровень представления данных отвечает за согласова-ние форматов, используемых разными компьютерами. Помимо этого,в его обязанности входит шифрование и сжатие данных, а также управ-ление выводом на принтеры, плоттеры и другие периферийныеустройства.

Уровень 5: сеансовыйПредположим, что на наших компьютерах установлена служба момента-льной доставки сообщений, и я хочу начать с вами диалог. Как мне этосделать? Разумеется, сначала я должна привлечь ваше внимание. Возмож-но, перед отправкой сообщения мне потребуется ввести пароль. Послеустановления соединения мы будем общаться до тех пор, пока один изнас не решит прекратить диалог. Этот сценарий предполагает, что в

Page 49: Oracle 8i Networking 101

Обзор сетевых технологий

нашем распоряжении есть механизм, обеспечивающий бесперебойноеведение диалога.

Сеансовый уровень позволяет устанавливать сеансы связи между дву-мя сторонами, известными под названием прикладных сущностей (appli-cation entity, AE). Установив соединение, сеансовый уровень решает всевопросы, связанные с безопасностью, а затем контролирует и синхрони-зирует потоки данных, определяя, кто, когда и в течение какого временидолжен вести передачу. После завершения диалога он должен обеспечитьуспешное разъединение сторон. Кроме того, сеансовый уровень отвечаетза распознавание имен, регистрацию, администрирование и тому подоб-ные функции.

Примером протокола сеансового уровня является расширенный поль-зовательский интерфейс NetBIOS (NetBIOS Extended User Interface,NetBEUI), используемый в сетях Microsoft. (NetBIOS — это интерфейсприкладного программирования, позволяющий приложениям запраши-вать сеансовые соединения.) Однако NetBIOS, как и другой аналогичныйпротокол, Named Pipes, часто выполняет функции и сеансового, и транс-портного уровней. Похоже, что не существует такого протокола, кото-рый можно было бы отнести исключительно к сеансовому уровню.

Уровень 4: транспортныйТранспортный уровень во многом дублирует расположенный ниже сете-вой уровень, однако в отличие от него действует локально. Если сетьстанет недоступна, транспортный уровень будет искать другой маршрут,по которому можно послать данные. Он может хранить данные, пока сое-динение не будет восстановлено. Именно транспортный уровень обеспе-чивает контроль за тем, чтобы данные были приняты полностью и вправильной последовательности. Этот уровень "вскрывает" каждый па-кет, чтобы убедиться в отсутствии искажений.

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

В процессе передачи принимающий компьютер использует для упоря-дочения сообщения временную область хранения, называемую буферомкадра (frame buffer). Если этот буфер заполняется, транспортный уровеньпринимающей машины уведомляет передающую машину о необходимо-сти приостановить передачу. В тех случаях, когда используется мульти-плексирование сообщений или сеансов, контроль за выполнением этихопераций также осуществляется транспортным уровнем. Транспортныйуровень выступает в качестве посредника между вышележащими

Page 50: Oracle 8i Networking 101

32 Глава 1

уровнями, ориентированными на использование в приложениях, и ниже-лежащими уровнями, связанными с сетью и сетевым оборудованием.

Теперь предположим, что необходимо установить связь по сети междудвумя разнородными компьютерами. Как это сделать наиболее эффектив-но? Проблема решается путем использования сразу нескольких транспор-тных протоколов на одной машине. Одним из них является протоколуправления передачей (TCP), о котором говорилось выше. Он входит всостав стека протоколов TCP/IP, реализованного многими компаниями.Два других транспортных протокола, применяемых на PC,— это NetBIOS,о котором было сказано выше, и протокол последовательного обмена па-кетами (Sequenced Packet Exchange, SPX) фирмы Novell.

Уровень 3: сетевойСетевой уровень выполняет следующие функции:

• Обеспечивает маршрутизацию и адресацию сообщений внутрисетей и между сетями.

• Выбирает физический маршрут передачи данных, исходяиз состояния сети, приоритета пакета и других факторов.

• Гарантирует надежность доставки вышележащим уровням.• Освобождает вышележащие уровни от необходимости что-либо

знать о фактических технологиях передачи и маршрутизации.На сетевом уровне определяется маршрут отправки сообщения. При

необходимости кадр передается маршрутизатору. Если размер кадра пре-вышает максимальную единицу передачи данных (maximum transmissionunit, MTU) на принимающей стороне, то кадр разбивается на более мел-кие фрагменты. За их сборку отвечает сетевой уровень принимающейстороны.

Среди перечисленных выше задач сетевого уровня упоминалась адре-сация сообщений. Остановимся на этом более подробно. В детстве у менябыла подруга по имени Лорена. По какой-то непонятной причине мамастала называла ее Питсаритц. Это прозвище прилипло к ней, и на протя-жении всей учебы в школе Лорена была известна как Питси. Даже учите-ля называли ее именно так. Мой сын Марк ненавидит свое второе имя(которое я не привожу здесь по этическим соображениям), поэтому ни-когда не использует его.

Какое отношение все это имеет к сетям и адресации, спросите вы? Су-дите сами. У каждого из нас есть как минимум фамилия и имя, записан-ные в свидетельстве о рождении. Кроме того, человека могут называть поимени и отчеству, например на работе, или использовать прозвище в кру-гу друзей. Каждый компьютер имеет физический адрес, который запи-сан, или "прошит", в его сетевой плате. Этот так называемый МАС-адрес(Media Access Control —управление доступом к среде).

Как правило, компьютер имеет один или несколько логических адре-сов. Прежде всего ему присваивается IP-адрес (в точечной десятичной за-писи), о котором я говорила при описании одноранговых сетей.Одновременно с этим компьютер может иметь Web-адрес в форматеURL. IP- и URL-адреса являются логическими. Сетевой уровень должен

Page 51: Oracle 8i Networking 101

Обзор сетевых технологий 33

разрешать логические сетевые адреса в физические. Необходимая дляэтого информация содержится в специальном файле, который присутст-вует в каждой системе.

Среди протоколов, работающих на сетевом уровне, можно назватьпротокол межсетевого взаимодействия (IP), а также протокол Х.25, испо-льзуемый в одноименной сети с коммутацией пакетов.

Уровень 2: канальныйКогда-то давно я увлекалась мозаикой. Чтобы сделать мозаичную карти-ну, берутся небольшие кусочки материалов разной формы, художествен-но раскладываются и склеиваются. Подобно этому, канальный уровеньберет символы из потока, предоставляемого физическим уровнем, и со-ставляет из них сообщения. Затем сообщение проверяется и передаетсяследующему, сетевому уровню.

Канальный уровень отвечает за установление соединений между узла-ми сети и передачу кадров средствами физического уровня. Этот уровеньможет получать от принимающего компьютера подтверждение приема ипри необходимости повторно передавать кадры, которые были искаже-ны. Как правило, функции канального уровня реализует специальная ин-тегральная схема сетевого адаптера.

К протоколам, используемым на этом уровне, относятся высокоуров-невый протокол управления каналом (High-Level Data Link Control,HDLC), протоколы двоичной синхронной передачи и так называемыеусовершенствованные процедуры управления передачей данных (Advan-ced Data Communications Control Procedures, ADCCP).

Уровень 1: физическийИтак, мы достигли самого нижнего уровня модели OSI. Как следует из на-звания, этот уровень имеет дело с физическим оборудованием. Черезнего общаются с внешним миром все остальные рассмотренные намиуровни. На физическом уровне между компьютерами пересылаются пото-ки нулей (0) и единиц (1). На этом уровне определяются характеристикиэлектрических сигналов. К нему же относятся кабели (коаксиальные, ви-тая пара, волоконно-оптические), разъемы и контакты. Например, суще-ствуют спецификации, в которых описано:

• Количество и назначение контактов в разъемах• Типы и разновидности кабелей, используемых для соединения

оборудования• Способы соединения кабелей с сетевыми адаптерамиПомимо работы с оборудованием, физический уровень управляет

кодированием и декодированием битовых потоков, а также ихсинхронизацией.

Из спецификаций, описывающих этот уровень, особо выделяютсятри: спецификация сетей Ethernet (IEEE 802.3) и спецификация сетейToken Ring (IEEE 802.5), разработанные Институтом инженеров по элек-тротехнике и электронике (Institute of Electrical and Electronic Engineers,IEEE), а также стандарт последовательной связи RS-232-C, относящийся к

Page 52: Oracle 8i Networking 101

34 Глава 1

модемным коммуникациям и разработанный Ассоциацией электроннойпромышленности (Electronic Industries Association, EIA). СтандартRS-232-C, в частности, определяет назначение контактов в разъемах иуровни напряжений, представляющие 0 и 1. Европейский международ-ный стандарт V.24 очень похож на RS-232-C.

Немного о протоколахВ предыдущих разделах часто упоминались названия различных протоко-лов, но не было толком пояснено, что же такое протокол. Протокол — этосоглашение относительно способа передачи данных между различнымичастями сети. На каждом уровне существует ряд стандартов, подробноописывающих функционирование всех компонентов данного уровня.Эти стандарты являются результатом длительной работы различных ко-митетов. Часто возникают споры о том, чьи идеи будут превалировать вопределенной области. Порой бывает так, что какой-нибудь продукт при-обретает огромную популярность, и тогда протокол, используемый внем, становится стандартом де-факто, используемым практически повсе-местно. Отличным примером популярности (или монополии), устанавли-вающей стандарты, служит Microsoft Windows во всех ее разновидностях.

Аналогично любому языку протоколы имеют свой синтаксис и семан-тику; кроме того, они устанавливают способы синхронизации. Синтаксисопределяет, каким образом используются уровни сигналов. Семантикаописывает структуры данных, используемые для координации работыкомпьютеров и передачи информации. Синхронизация обеспечивает пе-редачу данных в правильной последовательности и согласование скоро-стей между машинами. Что понимается под согласованием скоростей?Допустим, ваш компьютер имеет модем с максимальной скоростью33,6 Кбит/с, а моя машина может устанавливать соединение на скорости54 Кбит/с. Именно стандарты синхронизации позволяют поддерживатьмежду нашими машинами нормальную связь.

На практике стандарты не всегда реализуются в полном соответствиис моделью OSI. Разработчикам трудно устоять перед соблазном слегкамодифицировать свой продукт, чтобы сделать его "лучше" в тех или иныхаспектах.

Эталонные модели SNA и TCP/IPХотя модель OSI получила наиболее широкое распространение и упоми-нается чаще всего, для полноты картины следует описать еще две модели,которые также являются многоуровневыми и часто упоминаются в разго-ворах на сетевую тему. Одна из этих моделей — сетевая архитектура IBM,известная под названием "системная сетевая архитектура" (SystemNetwork Architecture, SNA). Другая модель непосредственно связана сИнтернетом и называется эталонной моделью TCP/IP или эталонноймоделью Интернета. Давайте по очереди рассмотрим каждый из этихстандартов и выясним, что отличает их от модели OSI.

Page 53: Oracle 8i Networking 101

Обзор сетевых технологий 35

Модель SNAВ 1970 году компания IBM разработала модель SNA, чтобы облегчитьвзаимодействие между своими продуктами. В то время IBM производиламэйнфреймы, принтеры и терминалы, поэтому первоначально модельSNA определяла способы связи между терминалами и мэйнфреймами.Позже она была модифицирована с целью поддержки микрокомпьюте-ров и PC. Эта модифицированная спецификация известна под названием"усовершенствованные межпрограммные связи" (Advanced Program toProgram Communications, APPC).

Поскольку модель SNA создавалась IBM, она ориентирована главнымобразом на продукцию этой компании. Тем не менее между ней и появив-шейся позже моделью OSI можно провести параллели. В первоначальномварианте модель SNA содержала пять уровней, но затем была расширенадо семи уровней, приблизительно эквивалентных уровням OSI. УровниSNA перечислены в таблице 1.4. Два добавленных уровня отмеченызвездочками. В скобках указаны соответствующие уровни модели OSI.

Таблица 1.4.Уровни модели SNA компании IBM

Уровень Описание

Службы транзакций(transaction services) *

Службы представления данных(presentation services)

Управление потоком данных(data flow control)

Управление передачей(transmission control)

Управление маршрутом(path control)

Управление каналом(data link control)

Физический *

Предоставляет протоколы связи между приложениями.(Соответствует прикладному уровню модели OSI.)

Обеспечивает форматирование, сжатие и преобразованиеданных. (Соответствует уровню представления данныхмодели OSI.)

Устанавливает правила, которые будут действовать в ходе се-анса связи, а также определяет режим передачи — дуплексный(данные передаются одновременно в обоих направлениях) илиполудуплексный (в каждый момент данные передаются тольков одном направлении). (Частично соответствует сеансовомууровню модели OSI.)

Поддерживает связь между узлами; инициирует, завершает иобслуживает сеансы; маршрутизирует данные по сети и обес-печивает их надежную доставку. (Частично соответствует сеан-совому, транспортному и сетевому уровням модели OSI.)

Создает связи с узлами, управляет этими связями и маршру-тизирует данные. (Соответствует транспортному и сетевомууровням модели OSI.)

Обеспечивает надежную передачу данных через физическоесетевое оборудование. (Соответствует канальному уровнюмодели OSI.)

Описывает структуру физического оборудования и параметрыэлектрических сигналов, используемых в сети. В SNA егонепосредственная реализация отсутствует. (Соответствуетфизическому уровню модели OSI.)

Page 54: Oracle 8i Networking 101

36 Глава!

Модель SNA строилась вокруг мэйнфрейма IBM и была основана напредположении, что за создание каждого сеанса связи отвечает мэйнф-рейм. Если сеансы связи не ограничиваются мэйнфреймом, то для марш-рутизации через промежуточные узлы и управления маршрутамиприменяются дополнительные компоненты, называемые сетевымиуправляющими программами (Network Control Programs, NCP). Расшире-ние APPC, упомянутое выше, предусматривает два различных типа узлов.Конечные узлы (end nodes, EN) пользуются услугами сети, тогда как сете-вые узлы (network nodes, NN) выполняют задачи маршрутизации и управ-ления. В модели SNA используется много других аббревиатур, ноприведенных здесь должно быть достаточно, чтобы получить некотороепредставление об этой модели.

Кстати, TCP/IP теперь может работать и на мэйнфреймах, но он незаменил полностью модель SNA. Версия TCP/IP для мэйнфреймов обра-щается ко многим службам уровней SNA.

Эталонная модель TCP/IPКак следует из самого названия, эталонная модель TCP/IP (или эталон-ная модель Интернета) отражает мир межсетевых взаимодействий, в ко-тором информация передается между рабочими станциями и сетями.Уровни этой модели перечислены в таблице 1.5. Как и для модели SNA, вскобках указаны соответствующие уровни модели OSI. Уровень межсете-вого взаимодействия не имеет OSI-эквивалента, а физический уровеньздесь вообще отсутствует, хотя всем известно, что без аппаратуры невоз-можны никакие соединения.

Хотя модели TCP/IP, SNA и OSI определены по-разному, они вовсе неисключают друг друга. Нередко бывает так, что сеть и операционная сис-тема основаны на разных моделях. Например, протоколы TCP/IP могутиспользоваться в локальной сети, которая работает под управлением опе-рационной системы, разработанной в соответствии с моделью ISO/OSI,и при этом взаимодействует с сетью SNA, состоящей из мэйнфреймовIBM. Однако наибольшее распространение в наши дни получил протоколTCP/IP.

/

Таблица 1.5.Эталонная модель TCP/IP (Интернета)

Уровень Описание

Прикладной Эквивалентен прикладному уровню и уровню представления(application layer) данных модели OSI. Его функции идентичны тем, которые были

описаны в соответствующих разделах этой главы.(Соответствует прикладному уровню и уровню представленияданных модели 081.)

Page 55: Oracle 8i Networking 101

Обзор сетевых технологий 37

Таблица 1.5 (продолжение)Эталонная модель TCP/IP (Интернета)

Уровень Описание

Транспортный Обеспечивает надежную доставку дейтаграмм из конца в конец(transport layer) и помогает устанавливать соединение, называемое виртуальным

каналом (virtual circuit). Дейтаграмма (datagram) — это пакет,состоящий из заголовка и данных. Передача данных можетне требовать установления фактического соединения; в этомслучае она так и называется: без установления соединения(connectionless). (Соответствует сеансовому и транспортномууровням модели OSI.)

Межсетевого Содержит протоколы, отвечающие за маршрутизацию сообщенийвзаимодействия от отправителя к получателю. На этом уровне функционируют(internetworking layer) маршрутизаторы и шлюзы, используемые для передачи

дейтаграмм. (Не соответствует ни одному из уровнеймодели OSI.)

Сетевых интерфейсов Содержит протоколы, определяющие способы передачи и(network access layer) доставки кадров данных. Этот уровень использует аппаратные

адреса сетевых адаптеров и взаимодействует с физическимоборудованием. (Соответствует сетевому и канальному уровняммодели OSI.)

Page 56: Oracle 8i Networking 101
Page 57: Oracle 8i Networking 101

Сетевыекомпоненты Oracle

Page 58: Oracle 8i Networking 101

40 Глава 2

FT«ЁИ«ачнем эту главу с цитаты из руководства администратора Net8версии 8.1.5, изданного корпорацией Oracle. В разделе "Обзор Net8" гово-рится следующее: "Net8 — это фундамент для семейства сетевых продук-тов Oracle, позволяющий службам и их приложениям размещаться наразных компьютерах и взаимодействовать как равноправные приложе-ния. Основной функцией Net8 является установление сетевых сеансов ипередача данных между клиентской машиной и сервером или между дву-мя серверами". Просто и ясно, не правда ли?

В некоторых отношениях средства Net8 действительно весьма про-сты. В то же время работа с сетями в Oracle может стать очень сложной.Рассматривая Net8, я постараюсь сохранять максимальную простоту ипонятность изложения.

Немного историиСледуя введенному в главе 1 принципу, гласящему, что для понимания на-стоящего и будущего необходимо изучать прошлое, для начала краткорассмотрим вычислительную среду, в которой я начинала работать сOracle. Обзор истории продуктов Oracle позволит получить представле-ние о том, с чего все начиналось, насколько далеко продвинулись этипродукты с тех пор и какую роль сыграли сети в успехе Oracle (а также вросте компьютерной индустрии в целом).

Корпорация Oracle впервые выпустила свою реляционную системууправления базами данных (РСУБД) примерно в 1979 году. Однако в но-ябре 1983, когда я была нанята в качестве программиста-аналитика кате-гории С для работы над научным приложением, наша компанияиспользовала всего лишь версию 2.0. Мы писали программы для управле-ния аппаратурой сбора данных и их обработки. Созданные нами програм-мы на языке FORTRAN обрабатывали информацию, хранившуюся в базеданных. Продукты Oracle были еще очень незрелыми, а их совершенство-вание велось крайне медленно.

Для диалога с базой данных Oracle мы использовали языки UFI (UserFriendly Interface — дружественный пользователю интерфейс) и Procedu-ral UFI (процедурный UFI), которые были предшественниками SQL иPL/SQL. Я работала в системе Digital VAX, поддерживавшей графиче-ские дисплеи. Наши формы представляли собой графические програм-мы, использовавшие модуль интерактивных форм (Interactive Forms, IAF)Oracle. Сначала мы создавали исходные файлы с расширением .inp. За-тем формы компилировались с помощью команд интерактивной графики(Interactive Graphics, IAG), и полученные выполняемые файлы (.iap) запу-скались командой runform.

Для создания базы данных мы использовали команду ccf (create conti-guous file — создать непрерывный файл), задавая имя и размер файла.Когда места в файле начинало не хватать, мы выгружали данные с помо-щью утилиты экспорта, создавали новый файл большего размера и

Page 59: Oracle 8i Networking 101

Сетевые компоненты Oracle 41

импортировали в него данные. Для загрузки информации в базу данныхможно было использовать загрузчик данных Oracle (Oracle Data Loader,ODL), а ее мониторинг осуществлялся с помощью системы ODS (OracleDisplay System), которую мы в шутку называли "odious". (Odious — ненави-стный, отвратительный. Произносится так же, как и сокращение ODS. —Прим, пер.) Для запуска базы данных нужно было вводить команду ior(initialize Oracle — инициализировать Oracle). Для отслеживания состоя-ния данных до и после изменений существовали файлы журналов исход-ного вида (before image, BI) и журналов изменений (after image, AI).Работа с базой данных велась через "немые" терминалы. Непосредствен-но обращаться к базе данных с удаленного компьютера было невозможно.

По мере совершенствования Oracle в нашем распоряжении оказалисьтри утилиты: FASTFORM, ставшая стандартным генератором блоков вSQL*Forms; crt, предназначенная для управления экранной средой; и ге-нератор отчетов rpt, позже названный Oracle Report, позволявший ото-бражать отчеты в гибком формате. Утилита rpt представляла собойинтерпретатор, а не компилятор, работала медленно и была сложна виспользовании. Отчет требовалось предварительно скомпоновать и от-форматировать, чтобы точно знать, в каком месте страницы будет распо-лагаться каждый элемент. Изменение размера одного столбца моглопотребовать повторной генерации всего отчета.

В РСУБД Oracle с очень давних пор существует учетная запись SCOTTс паролем TIGER. Ее удобно использовать для изучения структурирован-ного языка запросов (Structured Query Language, SQL) и тестированиясетевых соединений с базой данных. В первых версиях вы должны былисамостоятельно создать эту учетную запись, указав соответствующийпароль, присвоить ей необходимые права доступа и только потом запус-кать сценарии создания демонстрационных объектов. Сценарии храни-лись (и по-прежнему хранятся) в каталоге SQL*Plus/demo. В болеепоздних версиях учетная запись SCOTT и связанные с ней объекты сталисоздаваться автоматически.

Поначалу в обязанности администратора базы данных (database admi-nistrator, DBA) входило лишь поддержание ее в рабочем состоянии. Неко-торые аварии приводили не только к остановке системы, но и кповреждению информации, заставляя полностью перестраивать базу дан-ных. Настройка или какое-либо влияние на производительность системыбыли почти невозможны. Oracle находилась в младенческом возрасте, иадминистраторы просто пытались совладать с этим новым и очень стран-ным созданием. Не существовало групп пользователей, куда можно былобы обратиться с вопросами. В наши дни создано множество замечатель-ных групп, члены которых готовы дать совет и оказать помощь в реше-нии проблем с Oracle.

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

Page 60: Oracle 8i Networking 101

42 Глава 2

задач им приходилось проявлять немало изобретательности. Сейчас про-дукты Oracle стали более сложными, но и более надежными. Обширныйнабор инструментов разработки позволяет эффективно решать вычисли-тельные задачи, стоящие перед конечными пользователями.

Появление SQl*NetВ пятой версии РСУБД Oracle мы увидели ряд серьезных усовершенство-ваний. К концу жизненного цикла версии 4 появилась первая версия,предназначенная для работы на персональном компьютере, но она былана редкость нестабильна. Версия Oracle для DOS отсутствовала вплоть доверсий S.O.b и 5.О.С. Почти все, кто работал с продуктами Oracle в то вре-мя, рано или поздно приобретали себе копию одной из версий Oracle дляPC (не обязательно устанавливая ее на машину). Дело в том, что версииэти были дешевы и поставлялись с полным набором печатной документа-ции, имевшей гораздо большую ценность, чем сам продукт.

Другим значимым событием, связанным с версией 5, стал выпуск сете-вого продукта под названием SQL*Net (версия 1.0), изменившего весь об-

г, лик систем Oracle. Однако перед тем как рассматривать SQL*Net болееподробно, предлагаю вам на минуту представить себе поезд, идущий порельсам. Если бы поезд мог думать, то он не беспокоился бы о том, из ка-кого материала сделаны рельсы и на каком расстоянии друг от друга заби-ты костыли, крепящие их к шпалам. Единственное, что могло бы еговолновать,— это достаточно ли впереди рельсов, чтобы продолжать дви-жение. Теперь, запомнив пример с этим поездом, обратимся к самой пер-вой версии SQL*Net.

Первая версия SQL*Net была очень проста, но качественно написанаи обладала высокой эффективностью. Она позволяла выполнять про-граммы на разных машинах, подобно тому, как наш поезд может ходитьпо множеству путей в разных местах. Реализованный в SQL*Net наборпротоколов служил своего рода "рельсами" для Oracle. Программы базданных функционировали в среде, где не требовалось ничего знать об ис-пользуемом протоколе, точно так же, как поезду не нужно знать о типерельсов, по которым он идет.

На сервере запускался специальный прослушивающий процесс, кото-рый принимал от клиентов запросы на соединения и передавал их базеданных. SQL*Net позволял передавать информацию между клиентами исервером прозрачным образом.

Темой очередной международной недели пользователей Oracle (Inter-national Oracle User Week, IOUW), проходившей в 1991 году в Майами,штат Флорида, стал "клиентский серфинг". Логотип содержал изображе-ние человека на серфе, оседлавшего гребень океанской волны. Пакетпрограмм с названием Oracle Card, в основе которого лежал языкHypertalk фирмы Apple, был представлен как "волна будущего". Эти про-граммы позволяли с легкостью строить клиентские приложения, обеспе-чивающие взаимодействие между ПК и базой данных на сервере. Восновном докладе говорилось, что централизованные вычисления наоснове мэйнфреймов уходят в прошлое, будущее же принадлежит толькосредам клиент/сервер.

Page 61: Oracle 8i Networking 101

Сетевые компоненты Oracle 43

Внезапное появление эффективного подхода к организации сетевойработы привело к вычислительной революции. С годами SQL*Net пре-терпел ряд эволюционных изменений, а его название было заменено наNet8.

Базовая архитектураВ начале этой главы я цитировала руководство администратора Net8. Да-вайте еще раз обратимся к этой цитате. "Net8 — это фундамент для семей-ства сетевых продуктов Oracle, позволяющий службам и их приложениямразмещаться на разных компьютерах и взаимодействовать как равноправ-ные приложения". В среде клиент/сервер приложения обычно хранятсяна клиентских ПК. Ресурсов этих компьютеров (памяти, дискового про-странства, вычислительной мощности) хватает только для решения при-кладных задач. Сама база данных размещается на мэйнфрейме, мини- илимикрокомпьютере, имеющем гораздо больше ресурсов. Для выполнениятранзакции нужны оба компьютера.

"Основной функцией Net8 является установление сетевых сеансов ипередача данных между клиентской машиной и сервером или между дву-мя серверами". Выше мы уже говорили о передаче данных между клиент-ской машиной и сервером, но зачем нужно передавать данные междудвумя серверами? Дело в том, что помимо возможности обращаться к од-ному серверу базы данных с разных ПК в Oracle существует технология,которая позволяет взаимодействовать с базами данных, распределенны-ми по нескольким машинам, как с одной логической базой данных. Меха-низм, используемый для поддержки распределенных баз данных,называется связью баз данных (database link). На рис. 2.1 показан клиент,который выполняет задачу, требующую взаимодействия с тремя раздель-ными базами данных. С точки зрения этого клиента, существует толькоодна база данных.

Связь базы данных

Сервер

Клиент "видит" одну базуданных вместо трех

Рис. 2.1. Клиент, использующий несколько связей баз данных

Page 62: Oracle 8i Networking 101

44 Глава 2

Связь создается внутри базы данных и дает NetS всю информацию, не-обходимую для соединения с другой базой данных. В конце этой главы бу-дет рассказано о связях баз данных подробнее, а пока отметьте для себя,что Net8 может использоваться для установления соединений двух типов:"клиент-сервер" и "сервер-сервер".

Требование к аппаратуреМоя золовка Джоан дала мне замечательный рецепт приготовления сала-та из земляничного желе, которым я с удовольствием поделюсь. Вам по-требуются две маленьких или одна большая банка земляничного желе,две чашки горячей воды, одна упаковка мороженой земляники, восемь ба-нанов, одна чашка мелко накрошенных грецких орехов и две небольшихбанки сушеных ананасов. Горячая вода вливается в желе, а когда оно рас-творится, туда добавляют остальные ингредиенты и полученную смесьохлаждают. Получается очень вкусно.

Заметьте, что в рецепте не было сказано ни слова об "аппаратуре", ко-торая нужна для приготовления этого блюда. Вы должны сами решить,нужно ли греть воду на плите или в микроволновке или для растворенияжеле хватит температуры горячей воды из крана. Я ничего не сказала и отом, какого типа или размера должны быть приспособления для измере-ния и смешивания. По этому рецепту можно успешно готовить независи-мо от того, каким способом нагревается вода или смешиваютсяингредиенты. Единственное, что может повлиять на приготовление,—это размер емкости, которую вы будете использовать для смешивания.Она должна быть достаточно большой, чтобы ничего не пролить.

Net8, как и его предшественник, SQL*Net, по большей части не зави-сит от платформы. В руководстве администратора NetS версии 8.1.5 сло-во "аппаратура" встречается в единственном комментарии: "Фактическиколичество поддерживаемых сетевых протоколов определяется толькоограничениями, накладываемыми аппаратурой, памятью и операцион-ной системой конкретного узла". (О сетевых протоколах Oracle погово-рим чуть позже.)

Таким образом, перед установкой и конфигурированием NetS необхо-димо в первую очередь убедиться, что на компьютере используется совмес-тимое сетевое программное обеспечение. Затем нужно проверить,подходит ли его версия для той версии NetS, которую предстоит использо-вать. Наконец, вы должны убедиться, что номер сетевого порта, которыйбудет присвоен прослушивающему процессу Oracle, не используется дру-гой программой. Подробнее о номерах портов будет рассказано в главе 3.

Компонентные уровниНа некоторых курсах по Oracle, которые я посещала, слушателям давалипервое представление об этой системе с помощью так называемой лукови-цы Oracle. Нарисуйте мишень наподобие той, что используется при игрев дартс. Она представляет собой набор концентрических окружностей,отстоящих друг от друга на одинаковые расстояния. На рис. 2.2 показанпример такой мишени с обозначенными уровнями. Если вы будете

Page 63: Oracle 8i Networking 101

Сетевые компоненты Oracle 45

снимать с луковицы слой за слоем, то в конце концов доберетесь до серд-цевины. Сердцевиной луковицы Oracle является РСУБД. Между ней идругими уровнями лежат сетевые протоколы. Этот второй уровень необ-ходим для взаимодействия со всеми остальными продуктами семействаOracle.

Рис. 2.2. Компонентные уровни Oracle

Итак, посмотрим, каким образом сетевые протоколы связываютвоедино все уровни Oracle.

Протоколы OracleВ первой главе мы обсуждали модель ISO/OSI и сетевые протоколы. На-помню, что когда один компьютер связывается с другим, запрос переда-ется через последовательность уровней, называемую стеком. Каждыйуровень стека выполняет свою часть работы по трансляции сообщения всерию электрических импульсов. Все стеки сетевых протоколов имеютмного общего, поскольку их основной задачей является передача сообще-ния по линии связи от одного компьютера к другому.

Основу сетевой части Oracle составляют так называемый прозрачныйсетевой субстрат (Transparent Network Substrate, TNS) и набор стандарт-ных протоколов. TNS обеспечивает взаимодействие всех остальных сете-вых компонентов Oracle с сетевым протоколом, установленным накомпьютере. Net8 — это стек уровней, который располагается над сете-вым протоколом.

На каждой машине, взаимодействующей с базой данных, должен бытьустановлен Net8. В таблице 2.1 перечислены уровни Net8, имеющие отно-шение к серверу Oracle.

Page 64: Oracle 8i Networking 101

46 Глава 2

Таблица 2.1.Коммуникационный стек на стороне сервера Oracle

Уровень стека Описание

Программный интерфейсOracle (Oracle-sideProgrammatic Interface,OR)

Two-Task Common. 01

Nets (состоит из трехподуровней)

Адаптер протокола Oracle(Oracle Protocol Adapter)

Сетезависимый протокол

Отвечает за выдачу ответов на каждое из возможных сообщений,посылаемых интерфейсом вызовов Oracle (Oracle Call Interface,OCI) на стороне клиента. Например, OCI-запрос на выборку25 строк вызовет OPI-ответ, в котором будут возвращены 25выбранных строк.

Устраняет различия в наборах символов, используемыхотправителем и получателем.

Сетевой интерфейс (Network Interface, Nl) — скрывает базовыйсетевой протокол и среду передачи от клиентского приложения.Средства сетевой маршрутизации (Network Routing, НП)/сетевогоименования (Network Naming, М^/сетевой аутентификации(Network Authentication, NA) — обеспечивают маршрутизациюданных к конечному месту назначения.Прозрачный сетевой субстрат (Transparent Network Substrate,TNS) — реализует общие коммуникационные процедуры, включаяотправку и прием данных.

Тонкий слой кода, изолирующий Net8 от базового сетевогопротокола.

Стек уровней, обеспечивающих пересылку SQL-операторовпо сети.

ВниманиеПри использовании межброкерного Интернет-протокола(Internet Inter-ORB Protocol, МОР) или драйверов JDBC(Java Database Connectivity) стек протоколов будетнемного отличаться от приведенного в таблице 2.1.

На стороне клиента стек будет таким же, за исключением самого верх-него (прикладного) уровня. Вместо программного интерфейса Oracle(OPI) здесь используется интерфейс вызовов Oracle (OCI). Запрос, сде-ланный пользователем через приложение, обрабатывается на сторонесервера. Ответ посылается клиенту через серверный и клиентский стеки.В нормальной ситуации (когда не возникает никаких проблем с сетью)пользователи обычно взаимодействуют только со своими приложениямии ничего не знают о других уровнях.

Вниз по клиентскому стекуЧтобы лучше понять, как все это работает, проследим путь запроса, пере-даваемого от клиента к серверу. Начнем с клиентского приложения, ко-торое предоставляет пользователю экранный интерфейс к базе данных иопределяет, какие операции нужно запрашивать у сервера.

Page 65: Oracle 8i Networking 101

Сетевые компоненты Oracle 47

Уровень OCI OCI используется для инициирования диалога между кли-ентом и сервером, чтобы сервер мог начать обработку запроса с синтак-сической проверки SQL-оператора. В SQL*Net версии 2 этот уровеньназывался программным интерфейсом пользователя (User Program Inter-face, UPI), но его функции были точно такими же. Для оператора SQL от-крывается курсор или буферная область, и все переменные клиентскогоприложения помещаются в область разделяемой памяти сервера. Разме-щение переменной в области памяти для последующего использования вSQL-запросе называется связыванием (binding). Переменные клиентскойприкладной программы, используемые в SQL-операторах, хранятся в сте-ке глобальной области процесса (Process Global Area, PGA). В процессесвязывания происходит получение ссылок (указателей) на значения, хра-нимые в PGA. Поскольку связывание выполняется по ссылке, перемен-ную не требуется связывать заново перед повторным выполнениемSQL-оператора; достаточно просто изменить ее значение.

Затем с помощью серверного словаря данных определяется составвозвращаемых полей и начинается выполнение SQL-оператора в про-странстве памяти курсора. В ходе выполнения оператора клиентскомуприложению посылаются строки данных, а приложение выводит их наэкран. Когда вся информация будет извлечена, курсор или буферная об-ласть памяти закрывается и освобождается.

В зависимости от того, как написано приложение, вызовы либо груп-пируются в одно сообщение, либо посылаются по очереди. Разумеется,цель состоит в том, чтобы минимизировать количество обращений ксерверу и тем самым сократить сетевой трафик. После инициированиявызова управление передается от уровня OCI к уровням Net8, обеспечи-вающим установление соединения и передачу запроса серверу.

Уровень Two-Task Common В модели ISO/OSI уровень представле-ния данных обеспечивает согласование форматов данных, используемыхразными компьютерами. Уровень Two-Task Common представляет собойOracle-реализацию уровня представления данных. Он выполняет преоб-разования между различными наборами символов и форматами данных,используемыми клиентом и сервером. Для уменьшения затрат времени иресурсов этот уровень спроектирован так, чтобы выполнять преобразова-ние только при необходимости. Именно здесь принимается решение отом, нужно ли преобразовывать данные. С этой целью производитсясравнение внутренних представлений данных и наборов символов.

Уровни Net8 Net8 выполняет функции сеансового уровня. Он устанав-ливает и поддерживает соединения между клиентом и сервером, обеспе-чивая обмен сообщениями. Как следует из таблицы 2.1, этот уровеньсостоит из трех компонентов: N1, связки NR/NN/NA и TNS. Они выпол-няют следующие функции:

• Сетевой интерфейс (N1) обрабатывает запросы на разрыв ("break")и сброс ("reset") соединения.

Page 66: Oracle 8i Networking 101

48 Глава 2

• Средства сетевой маршрутизации (NR) обеспечивают маршрутиза-цию сообщений к месту назначения. Маршрут может состоять излюбого числа промежуточных узлов.

• Средства сетевого именования (NN) разрешают имена сетевыхслужб в адреса назначения Net8.

• Средства сетевой аутентификации (NA) обеспечивают аутентифи-кацию, которую может потребовать сервер.

• Прозрачный сетевой субстрат (TNS) предоставляет универсальныйинтерфейс к стандартным сетевым протоколам, позволяющий от-крывать/закрывать соединения и посылать/принимать запросы отNet8, а также решает общие коммуникационные задачи машинногоуровня.

Компонент TNS вызывает особый интерес, поскольку он самым непо-средственным образом взаимодействует с базовыми сетевыми протокола-ми, определяя следующее:

• Местонахождение клиента или сервера, а также количествоиспользуемых протоколов.

• Способ обработки прерываний между клиентом и сервером.• Когда и как передавать управление протоколу Oracle

для выполнения вызовов, зависящих от протокола.Для защиты передаваемых данных TNS поддерживает шифрование и

генерацию криптографических дайджестов сообщений.Все описанные уровни жизненно важны, поскольку при отсутствии ка-

кого-либо из них клиентское приложение не сможет успешно связывать-ся с сервером базы данных.

Что происходит на стороне сервераКогда сообщение принято на стороне сервера, оно передается вверх посерверному стеку к базе данных, которая обрабатывает запрос. Сервер-ный стек похож на клиентский, но запрос передается по нему в обратномпорядке — от уровня TNS через программный интерфейс Oracle к серверуOracle. После обработки запроса результаты возвращаются клиентскомуприложению — через серверный стек, сеть и клиентский стек.

В случае связей "сервер-сервер" общая схема остается прежней. Един-ственное отличие состоит в том, что вместо клиентского приложенияздесь используется специальный серверный OCI, называемый сетевымпрограммным интерфейсом (Network Program Interface, NPI). NPI позво-ляет серверу конструировать SQL-запросы для взаимодействия с другимисерверами, а при необходимости может выполнять все функции уровняOCI.

В предыдущем разделе мы рассмотрели общую структуру стандартногокоммуникационного стека Oracle, используемого на стороне клиента и настороне сервера, а также коснулись связей "сервер-сервер". Однако Orac-le поддерживает и другие стеки. В частности, уровень представления дан-ных может быть реализован с помощью универсального межброкерного

Page 67: Oracle 8i Networking 101

Сетевые компоненты Oracle 49

протокола (General Inter-ORB Protocol, GIOP). Аббревиатура ORBрасшифровывается как "брокер объектных запросов" (Object RequestBroker). Версия GIOP, используемая в Oracle, называется межброкернымИнтернет-протоколом (Internet Inter-ORB Protocol, ПОР) и работаетповерх TCP/IP или TCP/IP с SSL (Secure Socket Layer). ПОР позволяетвзаимодействовать с базой данных Oracle тем клиентам, которые ис-пользуют Java.

Коммуникационный стек ПОРКогда клиент использует коммуникационный стек ПОР, сеансовый уро-вень исключается. Следовательно, отпадает необходимость в TNS. Крометого, поскольку GIOP выполняет функции уровня представления данных,в модели ПОР отсутствует уровень Two-Task Common. Уровни клиентско-го стека ПОР перечислены в таблице 2.2.

Таблица 2.2.. . , , - • Коммуникационный стек НОР на стороне клиента

Уровень стека Описание

Прикладной Тот же прикладной уровень, который присутствовал в клиентскомстеке Net8

GIOP Уровень представления данных

Oracle TCP/IP Стек сетевых протоколов, используемый для транспортировки(с SSL или без него) запросов и ответов от одной машины к другой

Как видите, стек ПОР намного компактнее и проще, а следовательно,хорошо подходит для связи через Интернет.

На стороне сервера стек ПОР также намного проще. В таблице 2.3 пе-речислены уровни серверного стека ПОР, используемого для поддержкиJava-клиентов.

Таблица 2.3.Коммуникационный стек НОР на стороне сервера

Уровень стека Описание . ,

Сервер Oracle Уровень, выполняющий обработку запросов

TNS Прозрачный сетевой субстрат

Oracle TCP/IP Oracle-реализация протокола транспортного уровня(с SSL или без него) (может быть дополнена протоколом Secure Socket Layer)

Сетезависимый Сетевая реализация протокола транспортного уровня,протокол TCP/IP обеспечивающего передачу запросов и ответов между машинами

Поскольку стек ПОР предназначен для взаимодействия с клиентами,использующими для обращения к базе данных Java-приложения (апплетыили JavaBeans), рассмотрим теперь CTCKjDBC (Java Database Connectivity).

3 Зак. 726

Page 68: Oracle 8i Networking 101

50 Глава 2

Коммуникационный стек JDBCПредположим, что вы разрабатываете Java-приложение, которое должносоединяться с базой данных Oracle для вставки, обновления, удаленияи/или получения информации. В таком приложении можно использо-вать один из двух типов драйверов JDBC. Во-первых, можно написатьприложение клиент/сервер или приложение тонкого клиента, используяWeb-серверы Java или серверы приложений Java соответственно, а во-вторых — написать приложение с использованием Java-апплетов.

Если вы остановитесь на варианте клиент/сервер или тонком клиен-те, то потребуется драйвер JDBC/OCI. Этот драйвер преобразуетJDBC-код в вызовы OCI, которые передаются серверу базы данных Oracleсредствами Net8.

Разработчики Java-апплетов должны использовать драйвер "тонкого"JDBC, чтобы устанавливать прямое соединение с сервером базы данныхOracle через сокеты Java. В этом случае для доступа к базе данных приме-няется упрощенная реализация уровней Net8 и Two-Task Common.

Если посмотреть на уровни клиентского коммуникационного стекаJDBC/OCI, то можно заметить, что они очень похожи на уровни стекаПОР. Единственное различие — это клиентский интерфейс. В стеке ПОРверхний уровень обозначался просто как "прикладной", тогда как в стекеJDBC он разделен на три уровня, называемых клиентским прикладнымстеком. Эти уровни перечислены в таблице 2.4. Способ их реализации за-висит от того, как написано приложение — с использованием вызововJDBC/OCI или "тонкого" JDBC.

Таблица 2.4.Уровни клиентского прикладного стека JDBC

Уровень стека Описание

Клиент JDBC Прикладной Java-код

Драйвер JDBC Драйвер JDBC/OCI или "тонкого" JDBC

Интерфейс доступа к базе Механизм, используемый для инициирования SQL-сеансовданных (DBAccess) (во многом похож на интерфейс OCI)

В случае коммуникационного стека "тонкого" JDBC набор уровней бу-дет совершенно другим. Уровни этого стека перечислены в таблице 2.5.

Как видно из таблицы 2.5, передача информации между клиентскимJava-апплетом и сервером осуществляется через несколько уровней про-токолов, значительно отличающихся от стандартных коммуникационныхуровней Oracle. Рассмотрим эти уровни по отдельности, чтобы лучше по-нять их роль в обработке запроса. Запомните, что для инициированияSQL-сеанса и в JDBC/OCI, и в "тонком" JDBC используется интерфейсDBAccess.

Page 69: Oracle 8i Networking 101

Сетевые компоненты Oracle 51

Таблица 2.5.Уровни коммуникационного стека "тонкого" JDBC

Уровень стека Описание

JavaTTC Представляет собой подмножество уровня Two-Task Common и обес-печивает обмен информацией между Java-клиентом и базой данных.

JavaNet Состоит из трех уровней: коммуникационного интерфейса ,(Communication Interface), службы адресации (Addressing)и сетевого субстрата Java (Java Network Substrate).

Уровень сетевого Состоит из двух уровней: сокетов Java (Java Sockets) и TCP/IP.протокола , ,

Уровень Java TTC Будучи подмножеством уровня Two-Task Common,уровень JavaTTC выполняет проверку и согласование версий протоко-лов, форматов данных и наборов символов, используемых Java-клиентоми сервером. После этого он обеспечивает фактическое выполнениеSQL-оператора.

Уровень JavaNet Этот уровень разделен на три подуровня, функцио-нально аналогичных уровням N1, NR/NN/NA и TNS в Net8. Уровенькоммуникационного интерфейса, подобно уровню N1 стандартного стекаOracle, обеспечивает взаимодействие между JavaTTC и нижележащимисетевыми уровнями. Уровень службы адресации функционирует анало-гично уровню NN стандартного стека Oracle, обрабатывая адреса назна-чения Net8. JavaNS (Java Network Substrate) — это аналог TNS. Онпредоставляет универсальный интерфейс к TCP/IP, позволяющий от-крывать/закрывать соединения и отправлять/принимать сообщения, атакже, определяет следующее:

• Местонахождение сервера назначения

• Протоколы, требуемые для установления соединения

• Способ обработки прерываний между клиентом и сервером(в зависимости от возможностей каждой стороны)

Уровень сетевого протокола Этот уровень разделен на два поду-ровня: сокеты Java (обеспечивающие связь с JavaNS) и TCP/IP. СокетыJava могут работать только поверх TCP/IP, а следовательно, TCP/IP —единственный сетевой протокол, доступный в данной конфигурации.

Хотя на стороне клиента, использующего Java-апплеты, коммуникаци-онный стек значительно отличается от стандартного стека Oracle, сер-верный стек в этом случае остается таким же, как показано в таблице 2.1.Дело в том, что на выходе стека "тонкого" JDBC запрос имеет такой жевид, как и все другие запросы, принимаемые сервером через Net8.

Oracle-совместимые протоколыКорпорация Oracle создала набор протоколов, являющихся ее собствен-ной реализацией транспортного уровня. Чтобы понять смысл этой

3*

Page 70: Oracle 8i Networking 101

52 Глава 2

фразы, давайте еще раз кратко рассмотрим функции транспортного уров-ня модели ISO/OSI. Действуя локально, этот уровень решает множествозадач. Вот их перечень:

• Определение альтернативного маршрута передачи в случае возник-новении проблем в сети (или сохранение данных до восстановле-ния сетевого соединения)

• Обеспечение полного и безошибочного приема данныхв правильном порядке

• Разбиение данных на пакеты одинакового размера в соответствиис требованиями сетевого уровня

» Извлечение информации из принятых пакетов и сборка исходногосообщения

• Нумерация пакетов, обеспечивающая правильную сборку в случаенеупорядоченного прихода пакетов

• Уведомление компьютера-отправителя о безошибочном приемесообщения

• Уведомление передающей машины о необходимости приостано-вить передачу в случае заполнения буфера кадров принимающеймашины

• Мультиплексирование сообщений или сеансов при наличиитакой возможности

Для устранения возможной несогласованности на одной машине мо-гут использоваться несколько транспортных протоколов. В Интернетестандартом де-факто стал протокол TCP, реализованный как часть стекаTCP/IP многими компаниями.

Теперь, когда вы получили достаточно полное представление о функ-циях транспортного уровня, подумаем, как можно обеспечить совмести-мость какого-либо вышележащего протокола с этим уровнем. Очевидно,что для этого нужно реализовать в сетевом продукте поддержку наиболеераспространенных транспортных протоколов. Именно так и поступилакорпорация Oracle. Каждый из ее протоколов отвечает за отображениефункций сетевого субстрата в эквивалентные функции одного из транс-портных протоколов.

В таблице 2.6 перечислены некоторые из наиболее распространенныхпротоколов, поддерживаемых Oracle. Во всех случаях предполагается,что база данных Oracle функционирует на хосте, который поддерживаетупомянутый протокол.

ВниманиеВ таблице 2.6 указаны не все протоколы,поддерживаемые Oracle.

Page 71: Oracle 8i Networking 101

Сетевые компоненты Oracle 53

Таблица 2.6.Протоколы, поддерживаемые Oracle

Протокол Описание

TCP/IP

TCP/IP с SSL

SPX

Named Pipes

Logical Unit Type 6.2(LU6.2)

Протокол локальногообмена (bequeath)

Обеспечивает диалог между клиентом и сервером через стек TCP/IP.

Обеспечивает диалог между клиентом и сервером через стек TCP/IPс использованием протокола Secure Socket Layer (SSL). SSL хранитаутентификационные данные — сертификаты и личные ключи — в такназываемом электронном бумажнике Oracle (Oracle Wallet). Когда кли-ент инициирует соединение с сервером через Net8, SSL выполняетпроцедуру аутентификации, используя личный ключ и сертификат.

Обеспечивает диалог между клиентом и сервером через стекSPX/IPX. Этот протокол используетеятлавным образом в сетях NovellNetWare.

Интерфейс высокого уровня, обеспечивающий межпроцессную связьмежду клиентами и серверами в распределенных приложениях.Один процесс (на стороне сервера) создает канал (pipe), а другой(на стороне клиента) открывает его по имени. Все, что записанов канал одной стороной, может быть считано другой, и наоборот.Поименованные каналы разрабатывались специально для локальныхсетей персональных компьютеров.

Компонент архитектуры усовершенствованной межпрограммнойсвязи (АРРС) компании IBM, позволяющий клиентам связыватьсяс серверами по сети SNA, причем от клиента не требуется эмуляциятерминала (как в терминальных протоколах). Архитектура АРРСдопускает одноранговые соединения; клиент может инициироватьсвязь с сервером.АРРС реализуется с помощью протоколов LU6.2 и PU2.1 (Physical UnitType 2.1). Протокол LU6.2 предназначен для установления сеансовСвязи между двумя прикладными программами; он не зависитот конкретного продукта.LU6.2 позволяет клиентскому приложению Oracle, выполняющемусяна PC, связываться с базой данных Oracle по сети SNA. При этом хостс базой данных должен поддерживать АРРС.

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

; ; Далее в этой главе о протоколе локального обмена (часто называемомпрослушивающим процессом bequeath) рассказано более подробно.

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

Page 72: Oracle 8i Networking 101

54 Глава 2

клиента определенный порт сетевой операционной системы, а затем сое-диняет клиента с базой данных через этот порт. Мы рассмотрим все этоболее подробно в главе 3, когда будем говорить о прослушивающих про-цессах, а пока достаточно запомнить, что каждый запрос требует отдель-ного соединения с базой данных через свой порт и что каждоевыделенное соединение сохраняется до тех пор, пока не произойдетодно из следующих событий:

• Клиент завершит сеанс через прикладную программу.• Истечет заданный период неактивности соединения

(при соответствующем конфигурировании).• Сеть, клиентская машина или сервер отключатся из-за останова

или перезагрузки каких-либо компонентов системы.Заметьте, что сбои оборудования не всегда приводят к закрытию сое-

динения. Например, если маршрутизатор в сети TCP/IP откажет, но бу-дет восстановлен в пределах, скажем, 10 минут, то соединение междуклиентом и сервером может просто "зависнуть" на это время.

На рис. 2.3 показаны три отдельные клиентские машины, каждая изкоторых имеет выделенное соединение с базой данных.

Теперь, когда вы знаете, что такое выделенные соединения, посмот-рим, какие проблемы могут быть с ними связаны. Пока соединений неслишком много, поводов для беспокойства не возникает. Однако каждоесоединение отнимает определенную часть системных ресурсов, поэтомуесли создавать все новые и новые выделенные процессы, то в конце

.f Прослушивающийпроцесс

Сервер

Клиент о ^е(8 на сторо^ клиента связывается с прослушивающим процессом иполучает номер порта. Затем Nets отсоединяется от прослушивающегопроцесса и соединяется через назначенный порт с базой данных.

Рис. 2.3. Три клиента, имеющие выделенные соединения с базой данных

Page 73: Oracle 8i Networking 101

Сетевые компоненты Oracle 55

концов либо будет достигнуто максимальное число соединений, допускае-мое сервером, либо сервер исчерпает свои ресурсы и не сможет большесоздать ни одного процесса.

Кроме того, пользователь не обязательно будет работать с системойпостоянно. Лично я обычно делаю перерывы на чашку кофе или ланч,останавливаюсь, чтобы ответить на чей-нибудь вопрос или задать свой, аиногда на несколько минут отхожу от своего стола, чтобы встретиться скем-то или просто посмотреть в окно. Таким образом, каждое соединениенаверняка будет неактивно в течение какого-то времени, если только ононе предназначено для автоматической пакетной загрузки или обработки.

Чтобы извлечь пользу из периодов неактивности и обеспечить работубольшего числа пользователей с меньшими затратами ресурсов, Oracleпозволяет устанавливать соединения в многопоточном режиме. Давайтерассмотрим этот режим подробнее.

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

Представьте себе такую картину. Вы собираетесь установить соедине-ние, но получаете отказ, поскольку лимит на число соединений уже ис-черпан. В то же время ваш сосед по офису не использует свое соединениес базой данных: вы видели, как он входил в систему, а потом ушел обе-дать, не закрыв сеанс. В результате все ваши планы рушатся.

Чтобы избежать таких ситуаций, корпорация Oracle разработала мно-гопоточный сервер (Multi-Threaded Server, MTS), позволяющий исполь-зовать одно соединение одновременно нескольким клиентам. Этоделается с помощью механизма, называемого диспетчером (dispatcher), ко-торый управляет соединениями с базой данных таким образом, чтобыподдерживать большее число пользователей при затрате меньшего коли-чества ресурсов. Посмотрим, как работает MTS.

Независимо от того, какие соединения будут использоваться — выде-ленные или многопоточные, при запуске системы в первую очередь нуж-но запустить прослушивающий процесс (listener), предназначенный дляприема запросов на соединения. Он прослушивает либо адрес по умолча-нию (обычно это порт 1521 или 1526), либо адреса, указанные в его кон-фигурационном файле (listener.ora). После запуска прослушивающегопроцесса запускаются базы данных, которые регистрируются в прослу-шивающем процессе. В предыдущих версиях применялся противополож-ный подход — базы данных запускались до прослушивающего процесса,который затем соединялся с каждой активной базой данных.

Если в файле инициализации init.ora присутствуют нужные парамет-ры, то одновременно с запуском базы данных запускаются диспетчеры.

Page 74: Oracle 8i Networking 101

56 Глава 2

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

Как только прослушивающий процесс начнет функционировать и внем будет зарегистрирована база данных с диспетчером, можно начинатьприем входящих запросов. А если в OracleSi базы данных запустятся допрослушивающего процесса? В этом случае они не смогут успешно в немзарегистрироваться, установление MTS-соединений окажется невозмож-ным и все соединения будут выделенными.

Чтобы проверить, какие диспетчеры зарегистрировались в прослуши-вающем процессе, можно использовать команду services утилиты ListenerControl (Isnrctl). Об этом будет подробнее рассказано в главе 3.

Итак, прослушивающий процесс, базы данных и диспетчеры запуще-ны и зарегистрированы. Что будет происходить дальше? Взгляните нарис. 2.4, где показана процедура установления соединения с разделяемымсервером.

1. Клиент посылает запрос.2. Прослушивающий процесс определяет адрес наименее занятого диспетчера

и передает этот адрес клиенту.3. Клиент отсоединяется от прослушивающего процесса и соединяется с диспетчером.4. Диспетчер помещает запрос в очередь разделяемого сервера.5. Разделяемый сервер извлекает запрос из очереди и соединяется с базой данных

для обработки запроса.

Сервер

Рис. 2.4. Установление MTS-соединения с помощью диспетчера

Page 75: Oracle 8i Networking 101

Сетевые компоненты Oracle 57

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

В случае отклонения запроса на соединение прослушивающий про-цесс просто переходит в режим ожидания новых запросов. Когда клиентотсоединяется от диспетчера, тот остается доступным, а разделяемыйсервер обрабатывает другие входящие запросы. Таким образом, разныезапросы от одного клиента могут обрабатываться более чем одним разде-ляемым сервером.

Объединение соединений и балансировка нагрузкиКаким образом прослушивающий процесс определяет, какому диспетче-ру передать запрос клиента? Мерой загруженности каждого диспетчераслужит число обслуживаемых им в данный момент соединений. Чтобыпрослушивающий процесс мог следить за числом активных соединений,диспетчеры посылают ему уведомления о каждом установлении или раз-рыве соединения. Если в системе присутствует более одного диспетчераили более одного узла, то при перенаправлении клиентского запросапрослушивающий процесс принимает во внимание загруженностьдиспетчеров и количество соединений с каждым узлом. Этот процессназывается балансировкой нагрузки на уровне соединений (connection loadbalancing).

Но каким образом диспетчер одновременно обслуживает многих поль-зователей? Устанавливает ли он физическое соединение с базой данныхдля каждого клиента? Конечно, нет — это привело бы к такому же расходуресурсов, как и при использовании выделенных серверов. Задача решает-ся за счет объединения соединений (connection pooling). Если клиент бездей-ствует в течение определенного времени, то специальный механизмтайм-аута освобождает транспортное соединение между этим клиентом идиспетчером, сохраняя логическое соединение. Освобожденное физиче-ское соединение может использоваться диспетчером для обслуживаниядругих входящих запросов. Когда клиент снова активизируется, диспет-чер восстанавливает физическое соединение.

Объединение соединений и балансировка нагрузки на уровне соедине-ний могут использоваться только на сервере и только при наличииустановленного и сконфигурированного многопоточного сервера.Подробнее обо всем этом будет рассказано в главе 11.

Page 76: Oracle 8i Networking 101

58 Глава 2

Множественные прослушивающие процессыРанее упоминалось, что для обработки клиентских запросов можно испо-льзовать более одного прослушивающего процесса. Множественные про-слушивающие процессы помогают балансировать нагрузку независимо оттого, установлен ли MTS. Это не сокращает количество требуемых ресур-сов, но позволяет более эффективно распределять соединения. Крометого, множественные прослушивающие процессы можно использоватьдля балансировки нагрузки при наличии нескольких сетевых интерфей-сных плат (NIC). О конфигурировании и использовании множественныхпрослушивающих процессов будет подробнее рассказано в главе 3.

Соединения BequeathТеперь, когда вы имеете представление о выделенных и многопоточныхсоединениях, давайте рассмотрим третью, менее известную разновид-

. ность соединений. Многие профессионалы, работающие с Oracle, не зна-ют, что в системе доступны два типа прослушивающих процессов:прослушивающий процесс Net8 и протокол локального обмена (или про-слушивающий процесс bequeath). Прослушивающий процесс bequeath

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

Если вы работаете на клиентской машине и хотите напрямую соеди-ниться с базой данных на сервере, то нужно ввести следующую строку:

Q sqlplus и8егпап1е/ра88угогс1@имя_службы

Часть командной строки @имя_службы указывает на то, что вы хоти-те установить соединение через Net8. Теперь предположим, что высоединились с сервером через telnet и хотите вызвать SQL*Plus из tel-net-сеанса. В этом случае вам достаточно ввести в строке приглашенияоперационной системы следующее:

Q $ sqlplus

Прослушивающий процесс bequeath установит соединение от вашегоимени. Этот процесс действует автоматически и не требует явной активи-зации. Впрочем, можете ввести в той же строке свое имя и пароль, есливас не волнует, что этот пароль станет виден всем окружающим. Строкасоединения вида "@база^цанных" здесь не нужна, поскольку соединениеустанавливается не через сетевой прослушивающий процесс. Протоколлокального обмена не использует сетевой прослушивающий процесс,поэтому конфигурирование последнего не требуется, он устанавливаетсяс параметрами по умолчанию вместе с клиентским программным обес-печением Net8.

Протокол локального обмена работает только в режиме выделенногосервера и не может использоваться в режиме многопоточного сервера.Он поддерживается для 32-разрядных приложений Windows NT, а такжедля 32-разрядных приложений Windows 95 и 98, устанавливающих соеди-нения с базой данных Personal OracleSi.

Page 77: Oracle 8i Networking 101

Сетевые компоненты Oracle 59

Связи баз данныхВ предыдущем разделе мы рассмотрели два вида соединений, общей чер-той которых было то, что они устанавливались извне базы данных, суровня операционной системы. Упомянутые выше соединения третьеговида, к которым мы намеревались вернуться, создаются изнутри базыданных. Теперь настало время поговорить о связях баз данных.

Принцип связывания баз данных нетрудно понять, если подумать отом, какими способами мы получаем информацию в повседневной жиз-ни. Предположим, вам нужно узнать имена северных оленей, на которыхразъезжал Сайта Клаус в книге "Ночь перед Рождеством". Вы можете по-пробовать найти эту книгу у себя дома, поискать в Интернете или дажесъездить в местную библиотеку или книжный магазин. Но намного про-ще и быстрее просто позвонить в библиотеку. Для этого вы снимаететрубку и набираете номер библиотеки. Раздаются длинные гудки, и есливам повезло, то вы слышите голос библиотекаря. Вы объясняете ему, чтоищете имена оленей Сайта Клауса. Он не может сразу дать ответ и отсы-лает вас к другому библиотекарю, который и называет искомые имена.Вы говорите "спасибо" и вешаете трубку.

Давайте коротко проанализируем этот сценарий. Вы звонили одномучеловеку, но в действительности на вопрос ответил другой. Тот факт, чтопервый из них не знал ответа, мог остаться не замеченным вами, посколь-ку в конце концов нужная информация была получена. По существу, связьбазы данных предоставляет такую же услугу, позволяя соединяться однойбазе данных с другой. При этом обращение к объектам второй базы дан-ных будет происходить так же, как если бы они находились внутри пер-вой. Связь базы данных может быть доступна всем, кто работает с базойданных (общая связь) или только тому, кто соединяется с определеннойсхемой (частная связь). Имейте также в виду, что прослушивающий про-цесс не дает ответов на ваши запросы. Подобно тому, как первый библио-текарь передал вопрос кому-то другому, прослушивающий процесспередает ваш запрос другой базе данных через соответствующую связь.

Сначала мы познакомимся с общей архитектурой связей баз данных, азатем рассмотрим, как создаются эти связи, к каким объектам они позво-ляют обращаться и какие действия можно выполнять с их помощью.

Глобальное именованиеВ Oracle нет правила, запрещающего иметь на разных машинах базы дан-ных с одинаковыми именами. Но как быть, если вы создали на несколь-ких машинах базы данных с именем ORDDB, а теперь хотите обращатьсяк ним одновременно? Как определить, с какой из них в действительностиустанавливается соединение?

Помимо собственных имен все базы данных в системе должны иметьуникальные глобальные имена. Как правило, необходимой уникально-стью обладают имена доменов узлов. Следовательно, для создания глоба-льного имени базы данных нужно поместить имя сетевого домена передее индивидуальным именем. Предположим, что все базы данных, с кото-рыми мы будем иметь дело в этом примере, принадлежат некоей компа-нии XYZ. На рис. 2.5 показана иерархическая схема офисов и баз данных

Page 78: Oracle 8i Networking 101

60 Глава 2

этой компании. Четыре производственные базы данных расположены вразных частях Соединенных Штатов. Базы данных в Вене, штат Вирджи-ния, и во Фресно, штат Калифорния, принимают и хранят заказы, а двебазы данных в Денвере, штат Колорадо, предназначены для контроля запроизводством и поставками. Имена соответствующих сетевых доменовначинаются с "us", чтобы отметить факт нахождения всех этих доменовна территории Соединенных Штатов. Глобальным именем сетевого до-мена для базы данных из Вирджинии будет us.va.vienna.orders, а для базыданных из Калифорнии — us.ca.fresno.orders. В Денвере нет базы данныхзаказов, а домен базы данных поставок называется us.co.denver.shipping.Чтобы составить глобальное имя базы данных, достаточно добавить к еелокальному имени имя домена. Так, глобальное имя базы данных QRDDBиз Вирджинии будет иметь вид us.va.vienna.orders.orddb.

Рис. 2.5. Иерархическая схема американского отделения компании XYZ

Чтобы включить механизм глобального именования, необходимо уста-новить для параметра инициализации GLOBAL_NAMES значение TRUE.После этого Oracle будет поддерживать соответствие между именами свя-зей баз данных и глобальными именами удаленных баз данных. КогдаGLOBAL_NAMES имеет значение FALSE, глобальные имена использо-вать нельзя. Если вам потребуется более одной общей связи с одной и тойже удаленной базой данных, то вы также не сможете использовать глоба-льное именование. Однако корпорация Oracle настоятельно рекомендуетприменять глобальное именование везде, где это возможно, посколькуоно требуется для функционирования многих полезных средств Oracle,в том числе усовершенствованного тиражирования (Oracle AdvancedReplication).

Page 79: Oracle 8i Networking 101

Сетевые компоненты Oracle 61

Теперь, когда вы поняли, как создаются и используются глобальныеимена, можно рассмотреть пример использования связи базы данных длясбора информации о заказах. Связи баз данных отлично подходят длятого, чтобы скрывать истинное местонахождение данных. Они позволя-ют получать информацию из удаленных баз данных простым и прозрач-ным способом. С помощью этих связей пользователи могут вставлять,обновлять и удалять информацию одновременно в локальных и удален-ных базах данных.

Создание связи базы данныхПеред созданием связи базы данных необходимо решить, будет ли она об-щей, частной или глобальной. Через общую связь информацию могут по-лучать все, кто имеет доступ к базе данных, в том числе подпрограммыPL/SQL. Частная связь доступна только тем пользователям или подпрог-раммам PL/SQL, которые соединяются с базой данных через определен-ные учетные записи. Глобальная связь позволяет обращаться к удаленнойбазе данных всем пользователям и подпрограммам PL/SQL любой другойбазы данных.

Чтобы создать частную связь базы данных, необходимо иметь приви-легию create database link, тогда как для создания общей связи необходи-ма привилегия create public database link. Помимо этого, вы должныиметь привилегию create session в той базе данных, с которой будет уста-навливаться соединение. Разумеется, на обеих машинах должно присутст-вовать программное обеспечение Net8. В принципе через связи базданных можно получать доступ и к базам данных, отличным от Oracle, нодля этого требуется установка службы неоднородности (HeterogeneousServices) Oracle. Глобальные связи баз данных необходимо определять че-рез службу Oracle Names. Об этом будет подробно рассказано в главе 4.

Определение типа создаваемой связиЧтобы определить, какой тип связей использовать в распределеннойбазе данных, нужно выяснить, какие требования предъявляются прило-жениями. Каждый тип связей имеет свои достоинства:

• Частная связь обеспечивает большую безопасность, чем общая илиглобальная, поскольку к удаленной базе данных могут обращаться

, . . только владельцы этой связи или подпрограммы, входящие в ту жесхему.

г-н, • Если к удаленной базе данных Oracle будет обращаться большое чис-. ' . ; ло пользователей, то можно создать одну общую связь. Тем самым

вы обеспечите прозрачный доступ к удаленной базе данных сразу•:•:• к йен всем пользователям.

• При использовании службы имен Oracle доступ многих пользовате-лей к нескольким базам данных удобно организовывать с помощьюглобальных связей баз данных. Такой централизованный подходупрощает управление связями.

Page 80: Oracle 8i Networking 101

62 Глава 2

Синтаксис команды создания связи базы данныхСинтаксис, применяемый для создания общей связи базы данных, таков:

Q create public database link <имя_связи>connect to <пользователь> identified by <пароль>using '<строка соединениях;

В качестве примера создадим общую связь базы данных с использова-нием глобальных имен, о которых говорилось выше. Чтобы соединитьбазу данных в Вене, штат Вирджиния, со схемой ORD в калифорнийскойбазе данных, можно использовать следующую команду:

Q create public database link US.CA.FRESNO,ORDERSconnect to ORD identified by HAPPY_2Busing '@ORDDB';

Теперь создадим частную связь базы данных, не используя глобальныесоглашения об именах. Допустим, что вам нужно соединить схемуNELSON в базе данных MYDB1 с одноименной схемой в базе данныхMYDB2. Войдя под именем NELSON, вы должны использовать следую-щий синтаксис:

Q create database link MYLINKconnect to NELSON identified by OSOSILLY1using '@MYDB2';

Поскольку в этом случае пользователи обеих баз данных совпадают,можно также указать параметр current_user, описанный в таблице 2.7.В этой таблице перечислены все параметры, которые можно использо-вать в команде create database link, и даны их объяснения. Чуть нижерассмотрим параметр current_user более подробно.

Перед тем как просматривать таблицу 2.7, взгляните на синтаксисоператора создания связи базы данных, приведенный в документацииOracle:

CJ create [public | shared] database link <связь_базы_данных>[connect to [сиггеп^изег|<пользователь> identified by <пароль>]][authenticated by <схема> identified by <пароль>]using '<строка_соединения>';

При создании связей баз нужно учитывать ряд ограничений:• Нельзя создавать связь базы данных в схеме другого пользователя.

Например, SUE не может создать связь базы данных в схеме, при-надлежащей CATHY.

• Поскольку в именах связей баз данных допустимы точки, связьнельзя квалифицировать именем схемы. Например, имяNELSON.QRDDB будет воспринято Oracle как полное имя связи, ане имя ORDDB в схеме NELSON.

• Параметр инициализации OPEN_LINKS определяет и ограничива-ет количество разных связей баз данных, которые могут появлятьсяв одном операторе.

Page 81: Oracle 8i Networking 101

Сетевые компоненты Oracle 63

Таблица 2.7.Параметры создания связи базы данных

Параметр Описание

Тип связи:

Shared

Public

<связь_базы_данных>

Конструкция соединения(connect to):

current user

<пользователь>identified by <пароль>

Определяет степень доступности связи пользователям базыданных.

Создает общую связь базы данных, которая может разделятьсямежду многими пользователями при помощи единственногосоединения. Эта конструкция доступна только в конфигурациимногопоточного сервера.

Создает общую связь базы данных, доступную всем пользова-телям. Если опустить эту конструкцию, связь будет частной идоступной только вам.

Полное или частичное имя связи базы данных.

Устанавливает соединение с удаленной базой данных.

Создает связь базы данных для текущего пользователя.Текущий пользователь должен быть глобальным пользовате-лем, имеющим действительную учетную запись в удаленнойбазе данных. Если связь базы данных используется непосред-ственно, иначе говоря, не из хранимого объекта, то текущийпользователь совпадает с соединившимся пользователем.При выполнении хранимого объекта (например, процедуры,представления или триггера) с помощью связи базы данныхcurrentjjser содержит имя пользователя, которому принадле-жит этот объект, а не пользователя, его вызвавшего. Напри-мер, если связь базы данных встречается внутри процедурыNELSON.PROC (созданной пользователем NELSON) и эту про-цедуру вызывает пользователь ROZ, то текущим пользователембудет NELSON. Однако если хранимый объект представляетсобой функцию, процедуру или модуль с правами вызвавшего(invoker-rights), то для соединения с удаленной базой данныхприменяется идентификатор авторизации вызвавшегопользователя. Например, если привилегированная связь базыданных встречается внутри процедуры NELSON.PROC (создан-ной пользователем NELSON, но с правами вызвавшего) и этупроцедуру вызывает пользователь ROZ, то текущим пользова-телем будет ROZ и процедура будет выполняться с его приви-легиями.

Указывает имя пользователя и пароль, используемые для сое-динения с удаленной базой данных (связь базы данных дляфиксированного пользователя). Если эта конструкция опущена,то будут указываться имя и пароль того пользователя, которыйсоединился с базой данных (связь базы данных для соединен-ного пользователя).

Page 82: Oracle 8i Networking 101

64 Глава 2

Таблица 2.7 (продолжение)Параметры создания связи базы данных

Параметр Описание

Конструкция Обеспечивает аутентификацию пользователя на удаленномаутентификации сервере и нужна в целях безопасности. Указанные имя

(authenticated by) пользователя и пароль должны существовать в удаленномэкземпляре. Они применяются только для аутентификации;никакие другие операции от имени этого пользователя невыполняются. Эта конструкция обязательна при использованииключевого слова shared.

using '<строка_соединения>' Указывает имя службы удаленной базы данных, > :•

Пример использования связи базы данныхИтак, связь базы данных создана. Но как ее использовать на практике?Предположим» что вы хотите определить общее число заказов на обору-дование, собранных компанией XYZ по всей стране в течение февраля.Вспомним, что центр во Фресно принимает заказы из центральных и за-падных штатов, тогда как центр в Вене обслуживает всю остальную тер-риторию до Восточного побережья. Используя общую связь, созданную впредыдущем разделе, можно составить примерно такой запрос:

Q select sum(TOTAL_ORDERS)

from ORD.ORDER_TAB a, [email protected]

where a.ORDER_DATE between '01-FEB-2000' and '29-FEB-2000'

/

Соединения на основе связей баз данныхЧто же происходит при использовании связи базы данных? Создаваясвязь, вы определяете путь доступа и обеспечиваете возможность уста-новления соединения между локальной и удаленной базами данных. Ког-да приложение обращается к удаленной базе данных с помощью этойсвязи, Oracle открывает в ней сеанс от имени приложения, при этом ука-зываются имя пользователя и пароль. Должна ли эта информация храни-ться в локальной базе данных? Не обязательно. Существует несколькоразных способов создания связи базы данных и несколько параметров,определяющих? нужно ли указывать и хранить пароль.

В случае связи базы данных для фиксированного пользователя (fixed userdatabase link) 'для установления соединения необходимо указать имя поль-зователя и пароль. Все операторы create database link, продемонстриро-ванные выше, создавали именно такие связи. Когда приложениеиспользует связь для фиксированного пользователя, локальный серверустанавливает соединение с заданной удаленной схемой, посылая по сетиимя и пароль этого пользователя.

Другой возможной формой связи является связь для соединенного пользо-вателя (connected user database link). Для создания такой связи достаточ-но опустить конструкцию connect to в операторе create database link:

Page 83: Oracle 8i Networking 101

Сетевые компоненты Oracle 65

Q create database link US.CA.FRESNO.ORDERSusing 'ORDERS';

Еще одна форма связи называется связью для текущего пользователя(current user database link). Ее синтаксис:

Q create database link US.CA.FRESNO.ORDERSconnnect to current_user

Чтобы воспользоваться этой связью, текущий пользователь долженбыть глобальным пользователем, прошедшим аутентификацию на серве-ре безопасности Oracle.

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

Проблемы безопасности при использованиисвязей баз данныхПодумаем, к каким проблемам может приводить хранение пароля учет-ной записи в словаре данных. Просмотреть параметры связи базы дан-ных, хранящиеся в словаре данных Oracle, можно пятью способами —с помощью представлений DBA_DB_LINKS, ALL_DB_LINKS,USER_DB_LINKS, V$DBLINK или LINK$. Представления DBA_DB_LINKSи ALL_DB_LINKS дают информацию, показанную в таблице 2.8. Как ви-дите, столбец с паролем здесь отсутствует.

Таблица 2.8.Представление DBA_DB_LINKS

Столбец Описание

OWNER Владелец связи базы данных

DBJJNK Имя связи базы данных

USERNAME Имя пользователя для входа

HOST Строка соединения

CREATED Время создания связи базы данных

.' ' ':• .' !

Следующее представление, USER_DB_LINKS, действительно дает по-; вод для беспокойства. В чем состоит проблема?

Команда describe в Oracle 8.1.6 описывает USER_DB_LINK следую-щим образом:

Q SOL*Plus: Release 8.1.6.0.0 - Production on Sun May 14 22:50:53 2000(c) Copyright 1999 Oracle Corporation. All rights reserved.

Connected to:Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production

Page 84: Oracle 8i Networking 101

.With the Partitioning and Java options.JServer Release 8.1 . 6,Q.fi - PrQductioa

Глава 2

describe USER_DB_LINKSName Null? Type

DB_LINKUSERNAMEPASSWORDHOSTCREATED

NOT" N'(JLL VARCHAR2(128)И ТОН VARCHAR2(30)

L1I/H ?Ш VARCHAR2(30)VARCHAR2(2000)

NOT NULL DATE

Как видите, это представление содержит столбец PASSWORD Естест-венно предположить, чтр_.пароль хранится там в зашифрованной виде.Но давайте посмотрим^ так ли это. Для частной связи базы дан.ныэ^р'удетвыведено следующее:

• •• • ••'•' ' : ' ' . . • (>'i F J !<u!li ''•г>Г/.>!'

;g J)B_LINK , лтнгшаыдт

. US. ORACLE.' Ш".-' ' ^^ '/г '-Г^ !. 1-^erjgVr',",.MYUNK

!•• Пароль,'П0казан открыт*! текстом,; нти представляет потенциальнуюугрозу безопасности'.' *.j : к.мкх .кмсртмдэоЛ ,>1.:'. ;г,', и«ц;й этя .

Теперь обратимся к представлению V$DBLINK. Его столбцы перечис-лены в таблице 2.9.

Таблица 2.9.Представление V$DBLINK

Столбец Описание

DB_UNK

OWNERJD

LOGGED_ON

HETEROGENEOUS

PROTOCOL

Имя связи базы данных*

Идентификатор владельца связи базы данных '

Показывает, используется ли в данный момент связьбазы данных

• 'Показывает,' является ли связь-базы данных неоднородной

Коммуникационный протокол для связи базы данных

OPEN_CURSp^S , Показывает, сущедтвш ли для связи базы данных открытые

'

COMMIT_POINT_STRENGTH Значение, присваиваемое С|язи базы данных в ходе распреде-ленной транзакции с целью контроля за последовательностью

.. •

• • : ' "&-' ":Ui'JHWK'i'yr 'K>JvKJi>i OIJiJUil'Kf.i»/'/ f» .ЕОГ»'ЩЗ-"> O'i<"v'il'U'".-;UO4f'.'.':-'"Здесь проблеЦ нет — пароль не показан. Кстати ; это представление

очень полёзнрГ"Сж6 позволяет ' получить^инфррма^ию 'о всех связях базданных, которые открыты сеансом, выдающим запрос (в данном случае —вашим сеансом)^ то есть о связях с 1К[_ТЙАК8АСтШк = YES.

Page 85: Oracle 8i Networking 101

Сетевые компоненты Oracle 67

Осталось представление LINK$. Единственный способ увидеть егостолбцы — это соединиться с базой данных под именем SYS илиINTERNAL. Вот эти столбцы:

Q Column Name Null? Type

OWNER»NAMECTIMEHOSTUSERIDPASSWORDFLAGAUTHUSRAUTHPWD

NOT NULLNOT NULLNOT NULL

, , |i;

.'

NUMBERVARCHAR2(128)DATEVARCHAR2(2000)VARCHAR2 (30)VARCHAR2(30)NUMBERVARCHAR2(30)VARCHAR2(30)

Кроме обычного пароля здесь присутствуют имя и пароль авторизо-ванного пользователя. "Но,— скажете вы,— чтобы получить доступ к этомупредставлению и увидеть пароли, нужно быть привилегированным поль-зователем". Это так, но все же мы имеем дело с брешью в системе безопас-ности, о которой нужно знать, чтобы принимать соответствующие мерыпо защите базы данных. Посмотрим, какая информация содержится вэтой таблице.

Q column NAME format a15column HOST format a10column USERID format a10column PASSWORD format a18column OWNER» format 9999999select OWNER», HOST, USERID, PASSWORD

from LINK$;

OWNER» HOST USERID PASSWORD

0 case SYS ONLY_FOR_A_MINUTE49 orcl.world HR PUFFINSTUFF

He такая уж маленькая брешь!Еще одна угроза безопасности возникает вследствие пересылки имени

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

Разделяемые связи баз данныхРанее в этой главе вы узнали о выделенных соединениях и соединенияхмногопоточного сервера. По умолчанию каждое устанавливаемое черезсвязь базы данных соединение будет выделенным. Следовательно, если сприложением одновременно работает ряд пользователей, то с базой дан-ных может устанавливаться огромное число параллельных соединений.

Page 86: Oracle 8i Networking 101

1

Глава 2

Аналогично тому, как соединения многопоточного сервера позволяютобеспечивать работу многих пользователей по ограниченному числу сете-вых соединений, разделяемые связи баз данных дают возможность огра-ничить число сетевых соединений между серверами при сохранениимногопользовательской поддержки. Для использования разделяемых свя-зей баз данных локальный сервер должен работать в режиме MTS. Уда-ленный сервер может работать как в режиме MTS, так и в режимевыделенного сервера.

Однако это не является панацеей, и в случае неправильного использо-вания разделяемых связей можно получить не прирост, а снижение про-изводительности, поэтому пользуйтесь ими с осторожностью.

Когда использовать разделяемые связи баз данныхЧтобы определить, нужны ли разделяемые связи баз данных, посмотритена общее число параллельных соединений, установленных через каждуюиз связей баз данных вашей системы. Если их мало, то разделяемая связьне нужна. С увеличением числа параллельных пользователей потреб-ность в разделяемых связях будет возрастать.

Иными словами, если вы применили в приложении стандартную об-щую связь базы данных, а к ней одновременно обратились 50 пользовате-лей, то будет создано 50 прямых сетевых соединений. Если жеиспользовать разделяемые связи, то при наличии 10 локальных разделяе-мых серверов этим 50 пользователям потребуется не более 10 сетевыхсоединений (а возможно, и меньше). Дело в том, что каждому локальномуразделяемому серверу может хватить одного соединения с удаленнымсервером для обслуживания нескольких запросов из локальной базыданных.

Создание разделяемой связи базы данныхИтак, вы определили, что без разделяемой связи базы данных необойтись. Чтобы ее создать, необходимо использовать ключевое сло-во shared:

create shared database link <имя_евязи>authenticated by <имя_схемы> identified by <пароль>;

Показанные здесь ключевые слова обязательны. При желании к нимможно добавить ключевые слова connect to, identified by, connect tocurrent_user и using. Единственная привилегия, требуемая для учетнойзаписи, с которой устанавливается соединение,— это create session. Об-ратите внимание на необходимость использования конструкцииauthenticated by. В удаленной базе данных обязательно должна существо-вать учетная запись с указанными именем пользователя и паролем, носоответствующая схема применяется только для обеспечения безопасно-сти, поэтому может быть пустой.

Page 87: Oracle 8i Networking 101

: - .'"ИНН

Компоненты Net8';* S::t":r • • • i '> ' •. • - '

. • > п •>:•• . : - . " : • , ' , i iq'i •• : . • • : . ' . . ' ,-: :

•оО ;ш a i . ва СУП • • . ' , . - nv м i

Page 88: Oracle 8i Networking 101

70 Глава 3

[тобы позвонить через коммутатор, 'вы снимаете трубку, набираетеноль и соединяетесь с оператором, который ждал вашегЪ вызова. Работаоператора состоит в том, чтобы принимать запросы на соединения и пы-таться их выполнить. Вы сообщаетёгёму, '-'с кем .ходите связаться, и назы-ваете телефонный номер.» Оператор, действуя о? вашего; имени, набирает

, номер и отключается от ;вашей линии. Досле/дереключения на ; другую ли-нию вы останетесь .соединенвым- со- своим -собеседником.пдаже если опе-ратор уйдет на обед. Независим® * от того, .повесили, ;вы,1гру.бку или нет,оператор продолжает, ййдёть за'коммутационной шаиелью;: ожидая .другихвызовов (конечно^если'Он еще не:обедает)(.; i ; ',:! i. ')']"( '>, 'г /•!>• .•!•< м :;г.оц

Прослушивающий процесс Net8 работает;. точ.нр.л'ак же, Сразу _послезапуска он переходит в режим ожидания входящих запросов,, обрабатыва-ет их и даже после того, как 'вы отсоединились, остаётся доступным длядругих клиентов. Это так' называемый фоновый 'гфоцёсс (detached pro-cess), которьга^б^чи^шгу^^ получиткоманду останова "или его машина' не будет. Выключена (или не выйдет изстроя). Даже если никто не входит ни сервер, где бил интерактивно запу-щен прослушивающий процесс, 'этот пЬоЦесс будё^ выполняться, покаего кто-нибудь не остановит, feasa даннйх Oracle при запуске пытается за-регистрироваться в прослушИвйющём процессе, Передавая ему имена сво-их служб и экземпляров.

В этой главе вы узнаете о просЛущиваюЩем процессе и файлах егоподдержки. Будет дан обзор утилит1 JifetS, поставляемых^ корпорациейOracle, а 'также Oracle Enterprise jdfanager, чтобы пр^ изучении последую-щих глав вы были готовы к раббтё с Этими инструментами.1'

Компоненты и параметры('-• ! Мы начнем изучение компонентов Net8 с рассмотрения соединений,

устанавливаемых с базами данных Oracle,; поскольку такие соединения ис-•'* -' пользуются наиболее широко1.! Имейте в вид^, что Net8 также поддерлси-i ' нвает соединился' с 'базами данных; других производителей, шлюзами и

'внешними' процедурами примером котор!ык являются функции, вызыва-

•1 Передаем лак говоритюо; п^жэсяушиватащем ?^ж»цессв]и/соединениях,следует убедиться, что вам ясна разница между именем яяужбы, •( servicename) иь«штеж^^е(&й/(8еИйеЙ4иаЙ1е).!*Имя; сервера 'относится к физиче-ской машине^ на которой <ыах©дится<«^цнапияиьиесколькр!'баэсданныхOracle. Каждый'сервер^им^еФ^икаяыллюсётевойга^рес^^о-котором^тово-рилось в главе 1. Ссылаться на сервер можно как по имени, так и по сете-вому адресу. Имя службы — это логическое представление., ^одного илинескольких экземпляров; в него может . вход^ит^.и^од^базы данных. Далее вэтой главе будет uoKa^^^^KHmoiibaQ^ZTb^^^bi^nsnz^s.ora и init.oraдля идентификации службы, ,-Имя . службы 1хранит.с^ , в строковой перемен-ной, содержащей имя базы данных и имя домена. Эти значения вводятся

Page 89: Oracle 8i Networking 101

Компоненты Net8 71

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

Теперь перейдем непосредственно к соединениям.

Установление соединенияКогда вам нужно обратиться со своей клиентской машины к базе данныхна сервере, вы используете строку соединения, содержащую имя пользова-теля, пароль и определенную информацию о сетевой службе. Эта строкасообщает Net8, с кем и каким образом устанавливать соединение. Напри-мер, при соединении с сетевой службой MYDB под именем NELSON с па-ролем HOP_SCOTCH2 строка соединения будет выглядеть так:

Q connect NELSON/HOP_SCOTCH2®MYDB

Чтобы осуществить соединение, клиентская часть Net8 должна разре-шить строку соединения в фактический сетевой маршрут к службе иопределить местонахождение прослушивающего процесса, исходя из ад-реса протокола и глобального имени базы данных, которое обычно со-стоит из имени самой базы данных и имени ее домена. Что все этоозначает? Клиентская часть Net8 обращается к системным сетевым ком-понентам за фактическим сетевым адресом машины, с которой вы пы-таетесь соединиться. Одновременно глобальное имя базы данныхразбивается на составные части, чтобы определить, с какой базой дан-ных предстоит соединиться. Когда адрес машины и имя базы данныхопределены, клиентская программа обращается к прослушивающему про-цессу на этой машине, чтобы запросить соединение с базой данных. О се-тевых адресах говорилось в главе 1, а о глобальных именах баз данных —в главе 2.

Когда клиент инициирует запрос по определенному протоколу, про-слушивающий процесс проверяет переданную идентификационную ин-формацию и сравнивает ее с той, что хранится в базе данных и в егособственном файле listener.ora, определяя, возможно ли обслуживаниеклиентского запроса. При положительном результате проверки прослу-шивающий процесс порождает новый процесс, который будет обеспечи-вать взаимодействие клиента с базой данных, или использует один изпредварительно порожденных процессов. Передав клиентский запросэтому процессу, прослушивающий процесс освобождается для приема но-вых запросов.

Для поддержки соединений с базой данных Oracle, устанавливаемыхчерез прослушивающий процесс, используются несколько различныхфайлов конфигурации. Они перечислены в таблице 3.1.

ВниманиеЕсли соединения Net8 устанавливаются междусерверами, то кроме файла sqlnet.ora на сервередолжен присутствовать файл tnsnames.ora.

Page 90: Oracle 8i Networking 101

72 Глава 3

Таблица 3.1.Файлы конфигурации Net8

Имя файла Описание .

listener.ora Располагается на сервере; содержит адреса и управляющиепараметры всех прослушивающих процессов сервера.

tnsnames.ora Располагается на машинах клиентов; содержит список имен сетевыхслужб, описания этих служб и адреса их прослушивающих процессов.

sqlnetora Располагается на машинах клиентов; определяет метод(ы)разрешения имен.

names.ora Располагается на серверах имен Oracle (если они используются);содержит прослушиваемые адреса, информацию о домене, а такжедополнительные параметры конфигурации. • • • - . .;-'5

Файлы конфигурации listener.ora, tnsnames.ora и sqlnet.ora находятся вследующих каталогах:

Q $ORACLE_HOME/network/admin (система UNIX)ORACLE_HOME\network\admin (система Windows NT)$<имя_диска>:[<каталог_огас!е>.network.admin] (система Compaq OpenVMS)

Посмотрим, какую структуру имеют эти файлы и как используются ихэлементы.

Lisfener.oraОткровенно говоря, конфигурирование прослушивающего процесса — нетакое простое дело. Даже я, имея многолетний опыт, не всегда делаю это

. правильно с первого раза. Но не унывайте! Чем лучше вы будете знатьструктуру и содержимое файла listener.ora, тем проще для вас будет этазадача.

Каждый сервер с базой данных Oracle должен иметь файл listener.ora,без которого запуск прослушивающего процесса на этом сервере невоз-можен. Этот файл содержит параметры, используемые для конфигуриро-вания прослушивающего процесса. Он разбит на четыре части: разделзаголовка, раздел адресных параметров, раздел со списком системныхидентификаторов (SID.LIST lsno) и раздел управляющих параметров.В таблице 3.2 перечислено, что входит в каждый из этих разделов.

В качестве примера рассмотрим файл listener.ora, который входил вмой дистрибутив OracleSi версии 8.1.5 для Windows NT. Изначально всестроки этого файла были закомментированы. Признаком комментарияслужит знак # в начале строки. Далее по очереди представлены группыстрок и их описания. Фрагменты, на которые разбит файл, не совпадаютс разделами, перечисленными выше, поэтому по ходу дела постараюсь от-мечать, что к какому разделу относится.

Page 91: Oracle 8i Networking 101

Компоненты Net8 73

Таблица 3.2.Разделы файла listener.ora и их назначение

Раздел Назначение • ••

Заголовок Содержит информацию о версии и дату создания.

Адресные Определяет адрес протокола прослушивающего процесса, а такжепараметры уровень представления данных и сеансовый уровень, которые надлежит

использовать для соединений через этот прослушивающий процесс.

Список SID Определяет системный идентификатор (SID) базы данных,обслуживаемой прослушивающим процессом.

Управляющие Содержит параметры, управляющие работой прослушивающего процесса.параметры .. •• •

Раздел заголовка

Q # copyright © 1997 by the Oracle Corporation

ft- < , nil • ; - ..

» NAME# listener.ora# FUNCTION# Network Listener startup parameter file example# NOTES« This file contains all the parameters for listener.ora,# and could be used to configure the listener by uncommenting# and changing values. Multiple listeners can be configured# in one listener.ora, so listener.ora parameters take the form# of SID_LIST_<lsnr>, where <lsnr> is the name of the listener# this parameter refers to. All parameters and values are# case-insensitive.

В этом небольшом разделе содержится довольно много информации.После уведомления об авторских правах указаны имя файла и его назна-чение. Расположенные ниже примечания сообщают о том, что:

• Вы можете использовать этот файл, удалив комментарии (знаки #)и вставив свою собственную информацию о конфигурации.

•••"•:.• С помощью этого файла можно конфигурировать более одного про-слушивающего процесса.

' •'••'• Для идентификации прослушивающих процессов нужно заменитьвсе обозначения <lsnr> на фактические имена.

• Регистр символов не учитывается, поэтому в файле можно исполь-зовать как прописные, так и строчные буквы или их комбинации.

Проблемы часто возникают из-за того, что для идентификации про-слушивающего процесса нужно всюду заменять <lsnr> на фактическоеимя. Очень легко не заметить очередное вхождение 'имени и пропуститьпараметр, который должен быть установлен для нового прослушивающе-го процесса.

В моем рабочем файле listener.ora (показанном ниже) заголовок состо-ит всего из двух закомментированных строк, без указаний на авторские

Page 92: Oracle 8i Networking 101

74 Глава 3

права и каких-либо примечаний. Из-за длинного имени файла перваястрока разбита на две, хотя на самом деле это одна очень длинная строка.В ней указано полное имя файла, а во второй строке указан "создатель".Файл listener.ora автоматически генерируется инструментом Net8Assistant при установке Net8. Net8 Assistant — замечательный инструмент,позволяющий настраивать прослушивающий процесс и конфигурироватьсопутствующие файлы. Однако для поиска ошибок в любом из этих фай-лов необходимо знать их структуру, иначе есть шанс, что проблемурешить не удастся. Инструменты очень полезны, и на протяжении этойкниги они будут упоминаться достаточно часто. Однако они не могутсделать за вас всю работу.

Q П D : \ORA8I\NETWORK\ADMIN\LISTENER . ORA ConfigurationFile : D : \о ra8i\netwo rk\adrain\listene r . oratt Generated by Oracle Net8 Assistant

Адресные параметры прослушивающего процессаЕсли в системе присутствует всего один прослушивающий процесс, то поумолчанию ему присваивается имя LISTENER. Это кажется очевидным,но если вы попытаетесь сконфигурировать еще один прослушивающийпроцесс, не понимая, что LISTENER — это имя стандартного прослушива-ющего процесса, то можете пропустить часть параметров, требующих из-менения. Замечу, что для стандартного прослушивающего процесса впредыдущих версиях SQL*Net и Net8 по умолчанию устанавливался па-роль ORACLE.

Ниже приведен пример конфигурационного кода прослушивающегопроцесса. Ваша задача состоит в том, чтобы скопировать и изменить этоткод, сохранив существующую версию LISTENER и добавив новый прослу-шивающий процесс с именем MYLIST1. Попробуйте самостоятельно най-ти все места, где нужно подставить MYLIST1.

Q LISTENER =(ADDRESS.LIST =

(ADDRESS»(PROTOCOL= IPC)(KEY* oracle. wo rid)

)(ADDRESS=

(PROTOCOL= TCP)(Host* marlenes-pc)(Port* 1526)

STARTUP_WAIT_TIME_LISTENER = 0CONNECT_TIMEOUT_LISTENER = 10TRACE_LEVEl_LISTENER = 0SID_LIST_LISTENER =

(SID_LIST =(SID.OESC =

(GLOBAL.DBNAME = marlenes-pc)

Page 93: Oracle 8i Networking 101

Компоненты Nets 15

, , ,. PASSWORDS_LI$TENER =Если вы; !уже заглянули вперед, то 'знаете, что. необходимо изменить

самую первую стршс^оа'тгаюке'пяагьдругк^сстр.ок.Воэ.отйея!: *. и

Q ' LISTENER " = " !

УН НПО

(KEY= oracle. world)) fel^V,p(ADDRESS=

(PROTOCOL=TCP)

(Host= marlenes-pc)

' i iCIf Ol-'Г/ГЭ'

(SiD_L,i;sT. ='" . ,. '„ а, л" .,.:,,-, , ' .(SID_OESC'= :

(GLOBAL_DBNAME = marlenes-pc)'(SlD_NAME='trRbL):''

?^Ж«1*2 ffi?pS:>u^ysS;Y«v^PASSWORDS.LlSTENER'i Arable)'.'# . i м" г . It , M ; H S E - « . , - . : - I : он» и >:tt Эта часть была добавлена для определения второго прослушивающего.# процесса MYLIST1

MYLIST1 =(ADDRESS_LIST =

(ADDRESS=(PROTOCOL= IPC)(KEY= oracle, wo rid)

(ADDRESS=(PROTOCOL= TCP) ((Host= marlenes-pc)(Port= 1521) с а д-;иЧ1;?т i. IMIT^TJ.AW..

) Of -- FidH^TSi.l TU05HIT

STARTUP_WAIT_TIME_MYLIST1 = 0CONNECT_TIMEOUT_MYLIST1 =10TRACE_LEVEL_MYLIST1 = 0SID LIST MYLIST1 = ,.„..,

Page 94: Oracle 8i Networking 101

76 Глава 3

(SID_LIST =(SIDJJESC =

(GLOBAL_DBNAME = marlenes-pc)(SID_NAME = MYOB)

PASSWORDS_MYLIST1 = (mypassword)

Среди многих изменений, потребовавшихся для конфигурированиянового прослушивающего процесса, самым трудноуловимым представля-ется определение нового имени SID_NAME в SID_LIST_MYLIST1.

Удалось ли вам найти все сделанные изменения? Отлично. Теперьрассмотрим параметры этого раздела подробнее.

1 - ' ' , • • . ' • • ' 5Т6!"

Раздел адресных параметров прослушивающего процесса(продолжение)Итак, перед нами следующая часть файла listener.ora.

..> i • \ • - • 'п <isnr> ,# This parameter specifies both the name of the listener, andП its listening address(es). Other parameters for this listenerП use this name in place of <lsnr>. When not specified, ,# the name for <lsnr> defaults to "LISTENER", with the defaultit address value as shown below.## LISTENER = .# (ADDRESS_LIST=» ( ADDRESS=( PROTOCOL=tcp ) ( HOST=localhost ) ( PORT=1 521 ))# (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))

Эти комментарии повторяют то, что было сказано выше об име-нах прослушивающих процессов, и дают образец кода для разделаaddress_list, который мы видели в предыдущем примере. В данном слу-чае используется протокол TCP, параметрами которого являются хост ипорт. Значение host — это сетевое имя сервера, на котором вы предпола-гаете запускать свой прослушивающий процесс. Если машина имеет сете-вое имя MARLENES-PC, то именно это значение нужно присвоитьпараметру host.

По умолчанию Oracle использует для прослушивающего процессапорты 1521 и 1526. Однако при назначении порта вы можете выбратьлюбой номер, не присвоенный другому процессу. Oracle работает с любы-ми портами от 1 до 65535, но порты с номерами меньше 1024 в некото-рых системах обычно резервируются для привилегированного доступа.В таблице 3.3 перечислены некоторые из стандартных портов Oracle.

Page 95: Oracle 8i Networking 101

Компоненты Net8 77

Таблица 3.3.Зарегистрированные номера портов Oracle и их назначение

Номер порта Описание _ _

1521 Стандартный порт для клиентских соединений со службой базы данных.В будущих версиях Oracle может быть заменен на официально зарегистриро-ванный порт 2483 (для TCP/IP) и 2484 (для TCP/IP с SSL).

2481 Рекомендуемый и официально зарегистрированный порт для клиентскихсоединений с Java-службой пи протоколу TCP/IP. '

2482 Рекомендуемый и официально зарегистрированный порт для клиентскихсоединений с Java-службой по протоколу TCP/IP с SSL

1575 Официально зарегистрированный стандартный порт для соединенийс сервером имен Oracle по протоколу TCP/IP или TCP/IP с SSL.

1630 Официально зарегистрированный стандартный порт для соединений со шлю-зовым процессом CMGW менеджера соединений Oracle по протоколу TCP/IP.

1830 Официально зарегистрированный стандартный порт для соединенийс административным процессом CMADMIN менеджера соединений Oracle

_ по протоколу TCP/IP. _ _____ _

При использовании Two-Task Common или TNS определять desc-ription_list не нужно. Однако для соединения с Java-службой базы данныхвам потребуются параметры protocol_stack, presentation и session, какпоказано ниже:

Q LISTENERJIAME =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS=

(PROTOCOL=IPC)

(KEY=EXTPROCO)

(DESCRIPTION =(PROTOCOL_STACK =

(PRESENTATION=GIOP)(SESSION=RAW)

(ADDRESS_LIST -

(ADDRESS =

(PROTOCOL-TCP) • ' • • [i«tq

(HOST=MARLENES~PC). I m:>> ;>;u

(PORT=2481)

Page 96: Oracle 8i Networking 101

78 Глава 3

Строки листинга

Q (PROTOCOL STACK =(PRESENTATION=GIOP)(SESSION=RAW)

содержат параметры, появившиеся в версии 81.Вам может показаться, что я напрасно трачу место, расставляя скобки

таким образом. Однако с годами я приучилась обращаться с ними оченьаккуратно, особенно в файле listener.ога. Вам встретятся примеры и доку-ментация, где все скобки стоят подряд, но если случайно пропустить однуиз них, то прослушивающий процесс не запустится, и можно потратитьчасы на выяснение причины. Зачастую именно одна отсутствующая скоб-ка приводит к неработоспособности прослушивающего процесса. Чтобыизбежать проблемы отсутствующих скобок, можно вставлять одностроч-ный комментарий после каждой закрывающей скобки, улучшая тем са-мым читаемость кода. После этого предупреждения обратимся к областиdescription Jist (список описаний) раздела адресных параметров.

Список описаний содержит список адресов (addressjist), по кото-рым можно обращаться к прослушивающему процессу, и описание стекапротоколов (protocol_stack). В addressjist можно задать несколько адре-сов прослушивающего процесса, по одному на экземпляр. Этот параметрне обязательно указывать; обязательным является только параметр ad-dress. Однако инструменты Net8 Assistant и Net8 Configuration Assistantсоздают addressjist всякий раз, когда указывается адрес. Если вы будетеиспользовать параметр addressjist, то он должен располагаться внутриdescription или descriptionJist. В области protocol.stack задаются уро-вень представления данных (presentation) и сеансовый уровень (sessi-on). Эта часть описания, впервые появившаяся в OracleSi, используется вПОР-дескрипторах для поддержки Java-соединений с базой данных.

Параметр presentation может иметь значения ТТС или GIOP, причемпо умолчанию используется ТТС. IIQP-клиенты требуют, чтобы уровеньпредставления данных был реализован с помощью GIOP. Параметр sessi-on может принимать значения NS или RAW, по умолчанию — NS (NetworkSubstrate). IIOP-клиентам сеансовый уровень не нужен, поэтому для нихиспользуется значение RAW.

Последний параметр, key, используется только с протоколом межпро-цессных связей (Inter-Process Communication, IPC) для идентификациисервера. Корпорация Oracle рекомендует указывать имя службы. В приве-денном выше примере EXTPROCO представляет собой имя машины илислужбы.

Раздел списка SIDСледующий раздел файла listener.ora содержит список служб, экземпля-ров и/или баз, данных, о которых должен знать прослушивающий про-цесс. В этой части файла вы сообщаете прослушивающему процессу, где икак искать определенный экземпляр, службу или базу данных.

Page 97: Oracle 8i Networking 101

Компоненты Nets 79

Q # SID_LIST_<lsnr># List of services the listener knows about and can connectП clients to. There is no default. See the Nets Administrator's# Guide for more information.ПП SID_LIST_LISTENER= •'# mn'ps- w SMwnlaiiafton ,исрг >мкокг TJB

••">'#' '< (SID_LIST* ••'•'•' ;'i!': T'wp' '.'?r?.£;t|r'i>i) !? ,vrc ,Hj>.j"T;/:.i.;jun тз'к ;^U]!i U ШЛЫКУ! :.) и/Ы-Ц'.О ,*. ;,, >,f,.i.

.1ЛО.тт;л;»Н '>г,Г«.: ц 07п;ошог. , ч r'

Vi:)'. .-i :>ouu it ?. j!.->rjjj

;;(.!'4 он/. •. , . . , ..j . - . . . . r . .

В моем фа,йле bst^ner.g^ ( те^а jWindqys NT| этот раздел выглядитследующим, образом:

CJJ ':' • ДрГ.'ЖЯ 'i; !;'-! V.'.f ISiiiC» Oi) ..rVj^iMKfii •-•;-;;

:.IO'!,. К -••'!'. ' i l j) Л(»

Q' SID_LIST_LISTENER =•>:•„- ,-t :.-••;, ч-' к •-».„«. г.яэдёйд*. ;.-.; ^;:>',н. .-.(; .•;,-.;.-

(SID_DESC =,.,,,,,, „;,,,.i, ,., , ,,:(SID_NAME .= Pl

(sippKC = •! f6i0BALlliBNM ;= о rci . wbrlcf f ll':;

'(6RACtE_HO'HE ^'DS^oraSi'C;SID_MME =' - ' л

' (PfiEePAWt.MA'X-s ад) ntia,"

(PROTOCOL = TCP) .V//J-I .-и -шс <OTOW.< <*„•

HI N KiHHiitfSM 1ША r-io3o'j T-jHrjun'jjv.jqK ОСЮЯ*П'ХЛ осрг.шцп "Minaa'Первый параметр — это дескриптор SID_L|ff| :J£ju53!"j отмечающий

начала, спидк-д сда-гемных.щент*^ф*«кат;р|)0^ , Д)), „Срзда^ая .базу данных,вы должны, роо, вди |1,рг^1егее, ЗДД^.рри ^нсг^рльзрв^н^и, рараллельного

сервера вам. нэрердя^д19, ^у^щ^Я^9^^9;Р^^чй^л |Р{ч;ш\1^енти"базой данных.

Page 98: Oracle 8i Networking 101

80 Глава 3

Следовательно, в разделе sid_list может содержаться более одного SID,но каждый из них должен быть уникален.

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

Параметр sid_name используется для указания SID базы данных. Этозначение зависит от операционной системы.

Имя службы базы данных может быть указано в двух файлах: init.ora(параметр service_name) и listener.ora (параметр global_dbname).

ВниманиеПри использовании глобального имени базы данныхнеобходимо убедиться, что оно полностью совпадаетсо значением service_name из файла init.ora.

Чтобы сообщить прослушивающему процессу начальный каталог базыданных, используется параметр oracle_home, содержащий полный путьк этому каталогу. Параметр program предназначен для указания выполня-емой программы службы. В приведенном выше примере программаextproc.exe,

Следующим параметром в области sid_desc нашего примера являетсяprespawn_max со значением 99. Чтобы понять его смысл, обратимся кобласти prespawn_desc. Там указан протокол TCP (protocol = tcp), а за-тем объявлен размер пула (pool_size = 10). Эти параметры сообщают про-слушивающему процессу, что для данного протокола должны бытьпредварительно созданы (или порождены) десять процессов выделенныхсерверов. Prespawn_max — это максимальное число таких процессов, ионо должно быть не меньше, чем сумма всех значений pool_size, объяв-ленных в prespawn_list. Рекомендуется устанавливать более высокое зна-чение, чтобы гарантировать достаточное количество процессов дляновых клиентских соединений. Для каждого протокола создается свойраздел prespawn_desc.

ВниманиеУказание слишком большого числа предварительносоздаваемых выделенных серверов может негативносказаться на производительности по причинам,связанным с расходом памяти.

Параметр timeout сообщает прослушивающему процессу, сколько ми-нут предварительно созданный выделенный серверный процесс, находя-щийся в неактивном состоянии, должен ожидать следующегосоединения. Нуль соответствует бесконечному ожиданию, поэтому длятайм-аута следует задавать небольшое положительное значение. Этот па-раметр применяется только для тех предварительно созданных процес-сов, с которыми было установлено хотя бы одно соединение; такимобразом, если предварительно созданный выделенный сервер ни разу небыл задействован, он не уничтожается.

Page 99: Oracle 8i Networking 101

Компоненты Net8 81

Управляющие параметрыДля прослушивающего процесса можно задать много управляющих пара-метров. Чтобы их было проще рассматривать, здесь не приводятся фраг-менты файла listener.ora, а параметры сведены в таблицу 3.4.

Таблица 3.4.Управляющие параметры listener.ora

Параметр Описание/значение по умолчанию/пример

PASSWORD <lsnr>

SAVE CONFIG_ON STOP<lsnr>

USE PLUG AND.PLAY<lsnr>

LOG FILE <lsnr>

LOG DIRECTORY <lsnr>

TRACE LEVEL <lsnr>

TRACE FILE <lsnr>

TRACE DIRECTORY<lsnr>

Устанавливает пароль на останов прослушивающего процесса. Зна-чение можно задавать как в зашифрованном, так и в открытом виде.Для установки и хранения зашифрованных паролей используетсяутилита Isnrctl.Значение по умолчанию: отсутствуетПример: PASSWORDSJJSTENER = 20A22647832FB454 "foobar"

Сообщает прослушивающему процессу о необходимости сохранитьизменения конфигурации при останове. Измененные значения пара-метров будут записаны в файл с сохранением форматирования икомментариев.Значение по умолчанию: OFF ,Возможные значения: ON | OFFПример: SAVE_CONFIG_ON_STOP_LISTENER = ON

Сообщает прослушивающему процессу о необходимости связатьсяс сервером имен Oracle для регистрации самого процесса и егослужб.Значение по умолчанию: OFFВозможные значения: ON | OFFПример: USE_PLUG_AND_PLAY_LISTENER = ON

Указывает имя файла журнала прослушивающего процесса.Расширение .log добавляется автоматически.Значение по умолчанию: <lsnr>Пример: LOG_FILE_LISTENER = Isnr

Указывает каталог для файла журнала прослушивающего процесса.Значение по умолчанию: ORACLE HOME/network/logПример: LOG.DIRECTORYJJSTENER = /private/app/oracle/product/8.0.3/network/log

Устанавливает уровень трассировки.Значение по умолчанию: OFFВозможные значения: OFF | USER | ADMIN | SUPPORT | 0-16Пример: TRACE_LEVEL_LISTENER = SUPPORT

Указывает имя файла трассировки прослушивающего процесса.Расширение .trc добавляется автоматически.Значение по умолчанию: <lsnr>Пример: TRACE_FILE_LISTENER = Isnr

Указывает каталог для файла трассировки прослушивающегопроцесса.Значение по умолчанию: ORACLE HOME/network/traceПример: TRACE_DIRECTORY_LISTENER = /private/app/oracle/product/8.0.3/network/trace

4 Зак. 726

Page 100: Oracle 8i Networking 101

82 Глава 3

Таблица 3.4 (продолжение)Управляющие параметры listener.ога

Параметр Описание/значение по умолчанию/пример

CONNECT_TIMEOUT_ Задает интервал (в секундах) с момента запуска прослушивающего<lsnr> процесса, на протяжении которого процесс будет ожидать

поступления разрешенного запроса к базе данных.Значение по умолчанию: 10Пример: CONNECTjriMEOUT_LISTENER = 10

Как упоминалось выше, для прослушивающего процесса OracleSi поумолчанию пароль не устанавливается. Однако в предыдущих версияхOracle файл listener.ora содержал параметр passwords_<Isnr>, которомуавтоматически присваивалось значение ORACLE для стандартного име-ни LISTENER. Нужно ли устанавливать пароль, если он отсутствует? Еслида, то как это сделать?

В поставку Oracle входит утилита с названием Listener Control (Isnrctl),позволяющая запускать прослушивающий процесс и управлять им непо-средственно с уровня операционной системы или из командного файла.В частности, с ее помощью можно устанавливать или изменять пароль.

Утилита Listener Control (Isnrctl)Для активизации утилиты Listener Control нужно ввести в строке при-глашения операционной системы команду Isnrctl. Эта команда имеетследующий синтаксис:

Q Isnrctl команда [имя_прослушивающего_процесса] аргументы

Например, для запуска прослушивающего процесса LIST1 можно ввести

Q Isnrctl start LIST1

Другой вариант — набрать в командной строке Isnrctl, нажать ENTERдля входа в утилиту, а затем ввести команду start LIST1.

После ввода Isnrctl появляется командная строка с заголовком, в кото-ром сообщается об используемой версии Oracle, авторских правах и спо-собе получения справки. Если ввести в командной строке help, то будетвыдан список команд, по которым можно получить справку. К сожале-нию, справочной информации по всем этим командам дается не слишкоммного. Например, если ввести help start, то утилита выведет следующее:

О start [<listener_name>] : start listener

He сомневаюсь, что вы могли бы и сами об этом догадаться! В табли-це 3.5 приведен список команд, по которым можно получить справку,вместе с объяснениями, которые дает утилита. Для тех команд, которыенеочевидны или недостаточно хорошо объяснены, даны дополнитель-ные пояснения после таблиц 3.5 и 3.6.

Page 101: Oracle 8i Networking 101

Компоненты Net8 83

Таблица 3.5.Команды утилиты IsnrctI

Параметр Описание

start ' start [<имя_прослушивающего_процесса>]: запустить прослушивающийпроцесс

stop stop [<имя_прослушивающего_процесса>]: остановить прослушивающийпроцесс

status status [<имя_прослушивающего_процесса>]: получить состояние прослу-шивающего процесса

services services [<имя_прослушивающего_процесса>]: получить информациюо службах прослушивающего процесса

version version [<имя_прослушивающего_процесса>]: получить информациюо версии прослушивающего процесса

reload reload [<имя_прослушивающего_процесса>]: перезагрузить файлыпараметров и системные идентификаторы (SID)

save_config save_config [<имя_прослушивающего_процесса>]: сохранить измененияконфигурации в файле параметров

trace trace OFF: USER: ADMIN [<имя_прослушивающего_процесса>]:установить указанный уровень трассировки

dbsnmp_start dbsnmp_start: запустить субагент базы данных (известный такжепод названием Intelligent Agent)

dbsnmp_stop dbsnmp_stop: остановить субагент базы данных

dbsnmp_status dbsnmp_status : получить состояние субагента базы данных

change_password change_password [<имя_прослушивающего_процесса>]: изменить парольпрослушивающего процесса

test протестировать прослушивающий процесс

quit/exit quit: exit: выйти из LSNRCTL

Если вы сконфигурировали Intelligent Agent (иногда называемый суба-гентом базы данных), чтобы обеспечить в своей системе функционирова-ние прослушивающего процесса Oracle Enterprise Manager (OEM), товажно изучить команды dbsnmp_start, dbsnmp_stop и dbsnmp_status.Они позволяют получать и изменять состояние Intelligent Agent как инте-рактивно, так и из пакетного задания, но при этом могут выполняться то-лько локально. В конце этой главы рассмотрим OEM подробнее.

По команде reload прослушивающий процесс повторно считываетфайл listener.ога. Это позволяет добавлять или изменять службы без оста-новки прослушивающего процесса. Если для него был установлен пароль,то перед вводом команды reload необходимо использовать команду setpassword. Команда services дает подробную информацию о службах, с ко-торыми данный прослушивающий процесс устанавливает соединения.Например, вы можете узнать о том, сколько соединений было установле-но или отклонено. Эта команда показывает службы трех типов: выделен-ные серверы из файла listener.ога, диспетчеры и предварительносозданные фоновые процессы.

Page 102: Oracle 8i Networking 101

84 Глава 3

Таблица 3.6.Параметры команд set и show утилиты Isnrctl

Параметр Описание

password

rawmode

displaymode

trcjile | trc_directory |trcjevel

logjile | log_directorylog_status

currentjistener

connectjimeout

startup_waittime

use_plugandplay

direct_handoff

save_config_on_stop

set password : установить пароль для последующих вызовов

set rawmode ON : OFF: установить режим вывода для команд services иstatus

set displaymode RAW | COMPAT | NORMAL | VERBOSE : режим выводана дисплей

set | show trc_< > [<значение>]: установить | показать параметрытрассировки текущего прослушивающего процесса

set | show log_< > [<значение>]: установить | показать параметрыпротоколирования текущего прослушивающего процесса

set | show currentjistener [<имя_прослушивающего_процесса>] :установить | показать текущий прослушивающий процесс

set | show имя_параметра [<значение>]: установить | показатьзначение параметра текущего прослушивающего процесса

set | show имя_параметра [<значение>]: установить | показатьзначение параметра текущего прослушивающего процесса

set | show имя_параметра [<значение>]: установить | показатьзначение параметра текущего прослушивающего процесса

DIRECTJHANDOFF может иметь значение ON или OFF

set | show имя_параметра [<значение>]: установить | показатьзначение параметра текущего прослушивающего процесса

Две другие команды из справочного списка, выводимого утилитойIsnrctl,— set и show — помечены звездочками. Это означает, что ониимеют дополнительные параметры. Во многих случаях команда help set[<параметр>] выводит справку как по set, так и по show, что отражено втаблице 3.6. Как правило, сначала применяется команда show, показыва-ющая текущее значение параметра прослушивающего процесса, а затемкоманда set, изменяющая это значение. Например, если на узле функцио-нирует более одного прослушивающего процесса, то перед изменениемпараметров одного из них следует определить, какой из прослушиваю-щих процессов считается утилитой Isnrctl текущим:

Q show current_listener

Ecvin показан не тот прослушивающий процесс, который вам нужен,введите

Q set current_listener <имя_прослушивающего_процесса>

Чтобы проверить, было ли сделано изменение, можно снова ввестикоманду show. Теперь просмотрите таблицу 3.6, где приведены объясне-ния параметров команд set/show, даваемые утилитой Isnrctl.

Согласитесь, что многие из описаний реально мало что объясняют,поэтому давайте выясним, как же использовать некоторые команды.

Page 103: Oracle 8i Networking 101

Компоненты Net8 85

Подробнее о некоторых командахНачнем изучение неочевидных команд утилиты Listener Control скоманд, связанных с паролем: change_password и set password. Командаchange_password приглашает ввести старый и новый пароли, затем про-сит повторить новый пароль, и лишь после этого меняет пароль прослу-шивающего процесса. Проверка старого и установка нового паролявыполняются с применением шифрования. Ниже приведен пример испо-льзования команды change_password для прослушивающего процесса сименем LISTENER, соединяющегося по протоколу IPC со службой SRVR.

Q lsnrctl> change_password LISTENEROld password:New password:Reenter new password:Connecting to (ADDRESS=(PROTOCOL=ipc)(KEY=srvr))Password changed for LISTENERThe command completed successfully

Команда change_password позволяет создавать и менять только за-шифрованные пароли. Если в файле конфигурации прослушивающегопроцесса (listener.ora) присутствовали незашифрованные пароли, то ониостанутся прежними.

Может сложиться впечатление, что команда set password тоже позво-ляет модифицировать пароль прослушивающего процесса. Однако на са-мом деле она предназначена лишь для активизации уже существующегопароля. Когда ее нужно использовать? Предположим, что в данный мо-мент вы работаете с прослушивающим процессом LIST1. Вы изменили ка-кие-то из его параметров и теперь хотите выполнить те же изменения вдругом прослушивающем процессе, LIST2. Для LIST2 в файле listener.oraустановлен следующий пароль:

Q password_list2 = MYPWD2

Чтобы переключиться на LIST2, вы должны сначала установить длянего пароль. Для этого из утилиты Isnrctl нужно ввести команду

Q set password <пароль>

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

Ниже приведен список остальных команд set с краткими описаниямикаждой из них.

Connect timeout Эта команда задает интервал времени (в секундах) смомента установления соединения, в течение которого прослушиваю-щий процесс будет ожидать поступления разрешенного запроса.

Current listener Если на узле функционирует более одного прослуши-вающего процесса, то любая команда утилиты Isnrctl действует на стан-дартный прослушивающий процесс, пока в качестве текущего не будет

Page 104: Oracle 8i Networking 101

Глава 3

установлен другой процесс. Все последующие команды, выдаваемые врамках того же сеанса Isnrctl, будут применяться ко второму прослушива-ющему процессу, пока вы снова не измените установку currentjistener.Посмотрим, как это работает. Допустим, что на вашей машине запущенытри прослушивающих процесса: LIST1, LIST2 и LISTS. Чтобы узнать, ка-кой из них утилита Isnrctl считает текущим, нужно ввести

Q lsnrctl> show current_listener

Если показан не тот процесс, с которым вам нужно взаимодейство-вать, достаточно ввести

Q lsnrctl> set current_listener <имя_прослушивающего_процесса>

Подчеркну еще раз, что вы должны вводить команду set current_liste-ner в командной строке утилиты; после выхода из утилиты эта установкабудет потеряна.

displaymode Эта команда изменяет режим вывода для команд servicesи status в зависимости от указанных аргументов. Аргументы могут бытьследующими: raw (действует аналогично команде set rawmode), compat(устанавливает режим совместимости с предыдущими версиями), normalи verbose (обеспечивает выдачу дополнительной информации для служ-бы поддержки при диагностике ошибок).

ПримечаниеВ документации на Oracle 8.1.5 отмечалось,что в версии 8.1.5 режимы normal и verboseзадействованы не полностью. Это примечаниеотсутствует в документации на версию 8.1.6.

В версии 8.1.6 значением по умолчанию является compat, а в одном изпримечаний сказано, что raw следует использовать только по рекоменда-ции службы глобальной поддержки Oracle (Oracle World Wide Support).

log_file, log_directory И log_StatUS Первые две команды позволяютизменять имя файла журнала прослушивающего процесса и каталог, в ко-тором он создается. Третья команда показывает, включено ли протоколи-рование (ON или OFF).

rawmode Эта команда изменяет режим вывода для команд services иstatus. Возможные аргументы — ON или OFF. Установив rawmode в ON,вы получите дополнительную информацию о состоянии прослушивающе-го процесса, которая может оказаться полезной при устранении проблем.В нормальной ситуации этот режим обычно не включают.

save COnfig ОП Stop Эта команда может иметь аргументы ON илиOFF. Если установить значение ON, то все изменения, выполненныекомандами Isnrctl set, будут сохранены в файле listener.ora сразу послеввода команды exit или quit. Сохранение модифицированных парамет-ров происходит непосредственно перед завершением работы прослуши-вающего процесса. При этом принимаются все возможные меры по

Page 105: Oracle 8i Networking 101

Компоненты Net8 87

сохранению форматирования, комментариев и регистра символов. Длянемедленного сохранения всех модифицированных параметров исполь-зуется команда save_config.

Startup waittime С помощью этой команды устанавливается интервалвремени (в секундах), в течение которого прослушивающий процесс бу-дет неактивен перед выполнением команды start. Изменение этого пара-метра возможно только с уровня операционной системы и выполняетсяследующим образом:

Q Isnrctl set startup_waittime 10

tfC file, trc directory И trc level Подобно ранее описанным коман-дам log_ команды trc_ позволяют задать или просмотреть имя файлатрассировки, его каталог, а также уровень трассировки. Доступные уров-ни - OFF, USER, ADMIN, SUPPORT, 0, 4, 10 и 16. OFF или 0 отключаюттрассировку, USER или 4 выводят информацию уровня пользователя,ADMIN или 10 выводят информацию уровня администратора, тогда какSUPPORT или 16 дают дополнительную информацию, предназначеннуюдля службы поддержки Oracle. Чем выше уровень, тем больше информа-ции вы получите. Команда set trc_level перекрывает установки, выпол-ненные в файле listener.ora.

use_plugandpiay Эта команда сообщает прослушивающему процессу онеобходимости зарегистрировать свою информацию на сервере именOracle. Возможные аргументы — ON или OFF.

Команда showДля полноты картины ниже приведен список параметров команды show.Как видите, они повторяют параметры команды set.

• connect_timeout

• current_listener

• displaymode

• log_file, log_directory, log_status

• password

• raw_mode

• save_config_on_stop

• startup_waittime

• trc_file, trc_directory, trc_level

• use_plugandplay

Tnsnames.oraВ файле tnsnames.ora хранится конфигурационная информация для лока-льных имен прозрачного сетевого субстрата (TNS). Что стоит за этоймногозначительной фразой? Чтобы лучше понять, какую информациюсодержит файл tnsnames.ora, представьте себе следующие имена: Билл,Джим, Пег и Марти. Что у них общего? Да, вы правы: все они являются

Page 106: Oracle 8i Networking 101

Глава 3

, сокращенными вариантами полных имен. Имя "Билл" может быть образо-вано от "Уильям", а "Джим" — от "Джеймс". "Пег" используется вместо"Пегги", а "Марти" может означать как "Мартин", так и "Марта". Есть лиразница между сокращенным именем и псевдонимом? Согласно словарю,слово "псевдоним" означает "другое имя", поэтому можно предположить,что сокращенное имя и псевдоним — это примерно одно и то же.

К чему весь этот разговор о сокращенных именах и псевдонимах?Дело в том, что на клиентской машине файл tnsnames.ora определяет(или описывает) имена, которые используются для обращения к базе дан-ных с этой машины. На сервере те же самые имена используются прослу-шивающим процессом для установления соединений с базой данных.В версиях Oracle до 8.1.5 прослушивающий процесс считывал файл tnsna-mes.ora, чтобы определить имя и местонахождение каждой из баз дан-ных, перечисленных в файле listener.ora. В версиях 8.1.5 и выше базаданных при запуске сама регистрируется в прослушивающем процессе.Прослушивающий процесс периодически опрашивает базы данных напредмет регистрации; таким образом, если база данных была запущенараньше прослушивающего процесса, то она все равно зарегистрируется,хотя на это может потребоваться некоторое время.

Образец файла tnsnames.oraНиже приведен файл tnsnames.ora, входивший в мой дистрибутивOracle 8.1.5 для Windows NT.

LJ и This file contains the syntax information for# the entries to be put in any tnsnames.ora fileП The entries in this file are need based.it There are no defaults for entries in this file# that Sqlnet/Net3 use that need to be overridden»# Typically you could have two tnsnames.ora files# in the system, one that is set for the entire system# and is called the system tnsnames.ora file, and a# second file that is used by each user locally so that# he can override the definitions dictated by the systemit tnsnames.ora file.

По заголовку видно, что этот файл довольно старый — в нем упомя-нуты SQL*Net и Net3 (первоначальное название Net8), но ни слова неговорится о Net8.

Согласно второму абзацу, в системе может присутствовать более одно-го файла tnsnames.ora. Однако в следующей главе, посвященной серверуимен Oracle, вы увидите, что ведение большого числа таких файлов дляподдержки разработчиков приложений и конечных пользователей мо-жет вызывать значительные трудности.

Page 107: Oracle 8i Networking 101

Компоненты Nets 89

CJ # The entries in tnsnames.ora are an alternative to using# the names server with the onames adapter.# They are a collection of aliases 'for the addresses that"# the listener(s) is(are) listening for a database or# several databases.

Этот раздел довольно прозрачен. Здесь говорится о том, что файлtnsnames.ora используется в качестве альтернативы серверу имен. Записив этом файле представляют собой коллекцию псевдонимов, используе-мых прослушивающим процессом для установления соединений с базойданных.

Q # The following is the general syntax for any entry inП a tnsnames.ora file. There could be several such entries# tailored to the user's needs. ,• ..

<alias>= [ (DESCRIPTION_LIST = # Optional depending on whether u have# one or more descriptions# If there is just one description, unnecessary ]

(DESCRIPTION[ (SDU=2048) ] «Optional, defaults to 2048

# Can take values between 512 and 32K[ (ADDRESS_LIST= # Optional depending on whether u have

# one or more addresses# If there is just one address, un-- .essary ]

(ADDRESS=[ (COMMUNITY=<conmiunity_name>) ](PROTOCOL=tcp)(HOST=<hostname>)(PORT=<portnumber (1521 is a standard port used)>))[ (ADDRESS=

(PROTOCOL=ipc)

(KEY=<ipckey (PNPKEY is a standard key used)>)

(ADDRESS=[ (COMMUNITY=<community_name>)

(PROTOCOL=decnet)(NODE=<nodename>)(OBJECT=<objectname>)

. . .» More addresses

Как следует из этого листинга, синтаксис записей в tnsnames.ora дово-льно прост. Сначала вы указываете имя, на которое будет отзываться про-слушивающий процесс. Это имя обычно называют именем сетевойслужбы (net service name). Если есть база данных MYDB, можно назватьее в файле tnsnames.ora как угодно. Существует только одно правило: при

Page 108: Oracle 8i Networking 101

90 Глава 3

попытке установить соединение с базой данных следует использоватьточно такое же имя. Например, я могу указать псевдонимMARLENES_DB, и тогда в строке соединения нужно будет использоватьименно его:

Q sqlplus MYSCHEMA/MYPASSWORD@MARLENES_DB

Несмотря на то что моя база данных имеет имя MYDB, я вызываю ее спомощью псевдонима, или имени сетевой службы, объявленного в файлеmsnames.ora.

Реальный файл tnsnames.oraТеперь обратимся к реальному файлу tnsnames.ora, чтобы понять, как ра-ботают остальные дескрипторы и параметры. Ниже показано, как выгля-дит мой файл для стандартной базы данных ORC1 из версии 8.1.5 истандартной базы данных ORCL из версии 8.0.5.

Q # D:\ORA8I\NETWORK\ADMIN\TNSNAMES.ORA ConfigurationFile : D : \о ra8i\NETWORK\ADMIN\t nsnames . о га# Generated by Oracle Nets Assistant

. ' - .1 / .' •

MARLENES-PC. WORLD. MYDOMAIN. COM =(DESCRIPTION =

(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = marlenes-pc)(PORT = 1526))

)(CONNECT_DATA =

(SID = ORC1)

' : ' .-: • •' •

ORC 1 . WOR LD . MYDOMAIN . COM =(DESCRIPTION =

(ADDRESS.LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = marlenes-pc)(PORT = 1521))

)(CONNECT_DATA =

(SID = ORC1)

ORCL . WORLD . MYDOMAIN . COM =(DESCRIPTION =

(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = marlenes-pc)(PORT = 1526))

)( CONN ECT_ DATA =

(SID = ORCL)

Page 109: Oracle 8i Networking 101

Компоненты Nets 91

Этот файл состоит из трех отдельных записей. Первая и вторая запи-си содержат информацию для обращения к базе данных ORC1 по двумразным псевдонимам через два разных порта — стандартные порты Orac-le с номерами 1521 и 1526. Заметьте также, что в обеих записях значениеSID одно и то же.

Параметры tnsnames.oraКак и в случае файла listener.ora, вы можете создать область descripti-on_list или ограничиться ключевым словом description. Область descrip-tion_list используется для определения списка дескрипторов,ассоциированных с именем сетевой службы. Если перед прибытием к ме-сту назначения запрос должен пройти через несколько промежуточныхадресов, то используется параметр source_route со значениями YES, NO,ON или OFF, а сами эти адреса перечисляются в нужном порядке в спис-ке address_list. Установка source_route=YES (или ON) требуется при ис-пользовании менеджера соединений, когда клиентский запрос сначалапоступает к менеджеру, а лишь затем к месту назначения.

Другой параметр, который в случае использования должен размещать-ся в области-описаний,— это type_of_service. Он указывает тип службыдля базы данных Oracle Rdb и используется интерфейсными инструмен-тами Rdb. Его следует применять только в том случае, когда приложениеподдерживает и Oracle RDBMS, и Oracle Rdb и вы хотите, чтобы при уста-новлении соединений приложение случайным образом выбирало тоодну, то другую из этих баз данных. Этот параметр предназначен для ба-лансировки нагрузки.

В область описаний также помещаются параметры address_list иaddress. Адресную информацию можно ввести сразу после параметраdescription, не используя address_list.

Параметры, указываемые в списке адресов, зависят от типа используе-мого протокола. Некоторые протоколы и связанные с ними параметрыперечислены в таблице 3.7.

Таблица 3.7.Требуемые параметры протоколов

Протокол Параметр

TCP HOST, PORT

IPC KEY

DECNET NODE, OBJECT

Хотя параметры host и node описывают одно и то же, а именно маши-ну, на которой находится база данных, для успешного установления сое-динений имя параметра должно строго соответствовать используемомупротоколу. Таким образом, вы не можете указать протокол TCP, а потомдобавить параметр node для определения местонахождения машины.

В области connection_data списка описаний можно указывать любыеиз параметров, приведенные в таблице 3.8.

Page 110: Oracle 8i Networking 101

92 Глава 3

Таблица 3.8.Параметры connection_data

Параметр Описание

servicejiame

globaljiame

instancejiame

failover mode

hs

rdb_database

sdu

server

Идентифицирует службу версии 8.1, к которой предполагается доступ.Обычно здесь указывается глобальное имя базы данных.

Идентифицирует базу данных Oracle Rdb.

Указывает имя экземпляра базы данных, к которому предполагаетсядоступ. Обычно это системный идентификатор (SID), который можнонайти в файле параметров init.ora.

Сообщает Nets о необходимости переключаться на другой прослуши-вающий процесс в случае сбоя первого. В зависимости от конфигура-ции будут автоматически восстановлены все текущие сеансы или всевыполнявшиеся операторы select. Этот параметр имеет подпараметрыBACKUP, TYPE и METHOD. TYPE, в свою очередь, может приниматьзначения SESSION, SELECT или NONE, a METHOD - значения BASICи PRECONNECT.

Сообщает Net8 о необходимости соединяться с системой, отличнойот Oracle.

Указывает имя базы данных Rdb.

Сообщает Net8 о необходимости оптимизировать скорость передачипакетов данных, отправляемых по сети, под указанную единицу данныхсеанса (session data unit, SDU). Значение по умолчанию — 2048;размер SDU должен быть кратен размеру стандартного транспортногокадра. В случае Ethernet стандартный транспортный кадр имеет размер1024 байта и для максимальной эффективности SDU не долженпревышать эту величину более чем в четыре раза.

Значение DEDICATED сообщает прослушивающему процессу о необхо-димости использовать выделенное соединение в среде многопоточногосервера.

Подробнее об именах службИмя службы — это логическое представление службы. Оно может вклю-чать в себя имя базы данных. В службу может входить более одногоэкземпляра. Когда вы создаете имя сетевой службы для базы данных вер-сии 8.1, службу необходимо идентифицировать по имени. Дополнитель-но можно идентифицировать экземпляр версии 8.1, указав его имя. Какэто делается? Прежде всего в файл init.ora должны быть включены пара-метры service_name и instance_name. После этого указываются значенияв файле tnsnames.ora, как показано ниже.

net_ ^(description =

(address= (адресная_информация))(connect_data=

(зегу1се_пате=имя_службы)(1г^апсе_пате=имя_экземпляра)))

Page 111: Oracle 8i Networking 101

Компоненты Nets 93

Имя службы задается параметром service_name, а имя экземпляра —параметром instance_name.

net. ©raЯ много путешествовала. Перед началом каждого путешествия я заполня-ла у турагента специальную форму — "профиль путешествия", в которойописывала свои предпочтения. Там отмечалось, где мне нравится сидетьв самолете — у окна или рядом с проходом, нужна ли мне особая диета, ка-кой номер имеет моя кредитная карта, какие номера в гостинице я пред-почитаю, и т.д. Решив заказать тур, я звонила своему агенту, и онсверялся с моим "профилем", чтобы выбрать подходящий вариант.

Файл sqlnet.ora, размещаемый на каждой клиентской машине, являет-ся своего рода профилем, сообщающим Net8, как нужно устанавливать иподдерживать соединения с сетевыми службами. В частности, в нем опре-деляются приоритетные методы именования, способы обеспечения безо-пасности, параметры трассировки и протоколирования.

Пример файла sqlnet.ora, поставляемый с Oracle 8.1.5 для WindowsNT, имеет огромный размер, занимая почти 50 страниц в формате Micro-soft Word. Ниже приведен заголовок, поясняющий назначение этого фай-ла. Имена разделов, отмеченные звездочками, не были перечислены взаголовке, но присутствуют в файле.

Q * copyright (с) 1996 by the Oracle Corporationft NAMEft sqlnet.oraft FUNCTIONft Oracle Network Client startup parameter file exampleft NOTESft This file contains examples and instructions for defining allft Oracle Network Client parameters. It should be possible to readft this file and set up a Client by uncommenting parameter definitionsft and substituting values. The comments should provide enoughft explanation to enable a reasonable user to manage his TNS connectionsft without having to resort to 'real' documentation,ft SECTIONSft ONames Clientft Client Cache (ONRSD)*ft Namesctlft Native Naming Adaptersft Advanced Networking Option Network Security*ft Oracle Security Server*ft Sqlnet(v2.x) and Net3.0 Client*

Для простоты восприятия параметры каждого раздела вынесены в от-дельные таблицы. Их можно найти в приложении А. Файл sqlnet.ora ис-пользуется при конфигурировании:

• Доменов» Предпочтительных серверов имен Oracle• Расширенной информации профиля

Page 112: Oracle 8i Networking 101

94 Глава 3

• Маршрутизации запросов на соединения• Усовершенствованных средств безопасности Oracle

а также при установке приоритетных методов разрешения имен сетевыхслужб. Все это будет подробнее рассмотрено в главах 4 и 6.

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

Простой протокол управления сетью (Simple Network ManagementProtocol, SNMP) был разработан главным образом для администраторовбаз данных, а также сетевых и системных администраторов. Он позволя-ет определять местонахождение баз данных и приложений, выполнятьих идентификацию и управлять ими с центральной машины. В сетяхOracle протокол SNMP используется преимущественно для оперативногоконтроля за приложениями Oracle в ходе их нормальной работы, а такжедля быстрого выявления и локализации потенциальных проблем. Управ-ление системами и сетями Oracle, их модификация и настройка осуществ-ляются с помощью других инструментов. Поскольку SNMP в настоящеевремя не обладает той безопасностью, которая позволила бы использо-вать его для изменения системных параметров, поддержка SNMP в Oracleограничена только опросом состояния.

Взгляд изнутриРассматривая SNMP как стандартный протокол Интернета, вы обнаружи-те, что для него все машины делятся на два типа. Управляющая станция(management station) или управляющий узел (managing node) опрашиваетдругие сетевые узлы или приложения для проверки их состояния или дея-тельности — подобно тому, как ваша мама звонит вам каждый день, чтобыпоинтересоваться вашим здоровьем и делами. Вызов, выполняемыйуправляющей станцией SNMP, называется SNMP-опросом (SNMP poll).Любые машины или приложения, которые могут быть опрошены, назы-ваются управляемыми элементами (managed elements). Употребляя слово"приложение" в разговоре об SNMP, я имею в виду базу данных. Итак,у нас есть управляющая станция, которая опрашивает управляемыеэлементы сети.

Управляющая станция выполняет свою работу с помощью специально-го программного обеспечения, называемого платформой управления(management platform) или средой управления (management framework).Примерами платформ управления, с которыми могут интегрироватьсяпродукты Oracle, являются СА Unicenter, HP Open View, IBM Netview/6000, DEC Netview POLYCENTER, Sun SunNet Manager, Tivoli, Novell

Page 113: Oracle 8i Networking 101

Компоненты Nets 95

Network Management System, Bull Integrated System Management, Cablet-ron Spectrum Management System и Castle Rock SNMP Network Manager.

В состав каждого управляемого элемента входит главный агент (masteragent), который взаимодействует с платформой управления. Это проис-ходит следующим образом. Платформа управления посылает главномуагенту запрос по протоколу SNMP. Агент дает требуемый ответ, опять-та-ки через SNMP. В задачи главного агента входит мониторинг сетевоймашины. В определенных ситуациях агент может послать аварийное сооб-щение (trap) по известному адресу вне платформы управления. Это позво-ляет быстро принимать меры по предупреждению или устранениюпроблем. Каждый управляемый элемент содержит структуру, называемуюбазой данных управляющей информации (Management Information Base,MIB). В ней описано, какую информацию можно получать через SNMP.

Помимо главного агента в каждом управляемом элементе могут при-сутствовать субагенты (subagents), выполняющие задачи мониторинга илинепосредственно взаимодействующие с базами данных или программами.Обратите внимание: из того факта, что машина является частью сети,автоматически не следует, что она поддерживает SNMP.

Если главный агент SNMP предоставляется вашей операционной сис-темой (что вовсе не обязательно), то он может не обладать совместимо-стью с субагентами Oracle. Операционные системы сильно отличаютсядруг от друга, и чтобы определить, какие действия нужно предпринятьдля конфигурирования SNMP, я рекомендую обратиться к документациина конкретную систему.

Oracle Enterprise Manager и Intelligent AgentПрошлым летом я решила развести огород. Позади моего дома совсеммало места, поэтому я ограничилась тремя кустами помидоров и тремясладкими перцами. Что я не учла с самого начала, так это крайнюю твер-дость почвы на заднем дворе. У меня была только небольшая мотыга ипара ручных инструментов, когда я приступила к устройству грядок.Очень скоро я поняла, что мои инструменты совершенно не годятся дляэтой работы, и мне пришлось пойти в магазин садовых принадлежно-стей, чтобы купить что-нибудь более подходящее. Не могу сказать, что по-сле этого стало совсем легко, но помидоры выросли отличные!

В базовую поставку Oracle входят несколько инструментов, помогаю-щих конфигурировать различные компоненты Net8. Мы рассмотрим всеэти инструменты в следующих главах, а сейчас познакомимся с инстру-ментом, с помощью которого можно определить, насколько конфигура-ция Net8 согласована с сетевыми узлами и базами данных.

Этот инструмент, называемый Oracle Enterprise Manager (OEM), вхо-дит в базовый набор программного обеспечения Oracle. Вместе с инстру-ментами конфигурирования сети он может облегчить вашу работу.

Page 114: Oracle 8i Networking 101

96 Глава 3

bop OEMДоступ к инструментальному набору OEM возможен только из средыWindows (95, 98 или NT) на PC. Этот набор появился в седьмой версииOracle и включался (с разными номерами версий) во все последующиеверсии РСУБД. Например, OracleS.0.3 была выпущена с OEM версии 1.5,OracleS.0.5 - с OEM 1.6, OracleS.1.5 - с OEM 2.0.4, а Огас1е8.1.6 -с OEM 2.O.5.

Сосредоточимся на возможностях, предлагаемых в OEM версии 2.0.5,поскольку он совместим со всеми предыдущими версиями Oracle, начи-ная с Oracle?.3, и содержит самый богатый на сегодняшний день наборопций.

Oracle Enterprise Manager представляет собой набор графических ин-струментов, позволяющих управлять базами данных с одного центрально-го PC. Вы можете исследовать конфигурацию каждой из баз данных ивыполнять общие задачи администрирования. Эти возможности предо-ставляются в рамках базовой поставки OEM. Помимо базовых инструмен-тов корпорация Oracle за отдельную плату предлагает средства дляавтоматического запуска мониторинга в любой из баз данных системы.Для взаимодействия с базой данных на ее сервере должен быть запущенпрослушивающий процесс OEM (называемый "интеллектуальным аген-том" (Intelligent Agent) или субагентом базы данных). На каждом сервереможно сконфигурировать только один Intelligent Agent. Чтобы OEM могобнаружить каждую из баз данных, в файле конфигурации IntelligentAgent должны быть зарегистрированы все базы данных, находящиеся насервере. Даже если вы не являетесь администратором базы данных, отвас может потребоваться конфигурирование Intelligent Agent для каждойиз операционных систем вашей сети, поддерживающих базы данныхOracle. Теперь посмотрим, какую роль в среде OEM играет SNMP.

SNMP и OEMOEM не использует SNMP непосредственно, но он может взаимодейство-вать с субагентами через прозрачный сетевой субстрат или с помощьюдругих средств. Если SNMP доступен в управляемом элементе, то субагентбазы данных (Intelligent Agent) может взаимодействовать как с OEM, таки с главным агентом SNMP, сообщая о проблемах или передаваяинформацию.

На рис. 3.1 показана управляющая станция с платформой управления,которая устанавливает связь с главным агентом по протоколу SNMP. Длясвязи с субагентом главный агент также использует SNMP, а субагент сое-диняется с базой данных при помощи Net8. OEM может соединяться с су-багентом через TNS или какой-либо протокол, не относящийся к TNS.Intelligent Agent работает независимо от баз данных и других служб.

Page 115: Oracle 8i Networking 101

Компоненты Nets 97

Управляющая станция Управляемый элемент

Рис. 3.1. Интеграция Oracle с компонентами SNMP

Page 116: Oracle 8i Networking 101
Page 117: Oracle 8i Networking 101

Сервер имен Oracle

Page 118: Oracle 8i Networking 101

100 Глава 4

1мена очень важны. Почти все в нашем мире имеет свое имя. Расте-ния и животные в большинстве случаев имеют по два имени: научное иобщеупотребительное. Нам, людям, с самого рождения дается одно илинесколько имен, чтобы нас было легче отличать друг от друга. У человекаможет быть как официальное имя, по которому к нему обращается боль-шинство других людей, так и уменьшительное, предназначенное дляблизких друзей и членов семьи. Если вас когда-нибудь называли неправи-льно, то вы хорошо знаете, насколько тесно ваше имя связано с вашейличностью.

В мире Oracle имена не менее важны. Каждый компьютер сети иден-тифицируется тем или иным образом. В большинстве случаев компьюте-рам присваивается IP-адрес, а также имя. Мы настолько привыклиназывать вещи по именам, что предпочитаем использовать имена вместочисел, когда говорим о компьютерах и других неодушевленных предме-тах вычислительной среды. Как правило, имена запоминаются намноголегче, чем бессмысленные строки. В конце концов, гораздо проще на-жать на телефоне кнопку с надписью "Врач", чем искать телефонный но-мер этого врача.

Однажды мне пришлось побывать в организации, где над каждымкомпьютером висела картонка с его именем. Если я правильно помню,компьютеры одной группы назывались "Гручо", "Харпо", "Чико" и "Карл",в другой группе использовались названия планет Солнечной системы, а втретьей — названия быстроногих животных, что-то вроде "Рысь","Гепард" и "Пума". Конечно, с точки зрения безопасности нежелательноиспользовать очевидные имена, которые легко угадать, например,ONLINE_DB или PRODI, PROD2.

В компьютерах также используются имена баз данных, экземпляров ислужб. В действительности наши компьютеры и базы данных не станутработать хуже, если вместо произносимых имен мы будем использоватьбессмысленные сочетания букв и цифр. Другое дело, что при этом могутвозникнуть трудности при ссылке на определенную машину или базуданных. Если вы присвоите компьютеру труднопроизносимое имя, на-пример, "AXCZ23B1", то со временем наверняка начнете называтьэтот компьютер "ax-ees-two-three-bee-one" или просто "bee-one". Такова че-ловеческая природа — использовать осмысленные имена для объектовокружающего мира.

Допустим, что вам нужно соединиться с базой данных SKDL, находя-щейся на компьютере AXCZ23B1. Чтобы установить соединение с исполь-зованием полного адреса, необходимо ввести примерно следующее(MYDBACCT — ваше имя пользователя, a MYPW — пароль):

Q sqlplus MYDBACCT/MYPWiSKDL AXCZ23B1.US.COM

Что произойдет, если переместить базу данных с AXCZ23B1 на другойкомпьютер? Ваша строка соединения изменится. Всем, кто работает сэтой базой данных, также потребуется изменить свои строки соединения

Page 119: Oracle 8i Networking 101

Сервер имен Oracle 101

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

В этой главе вы узнаете о сервере имен Oracle — распределенной служ-бе именования, обеспечивающей поддержку соединений многих клиен-тов с распределенными серверами. Подобно тому, как имена хостовразрешаются в IP-адреса, сервер имен Oracle разрешает идентификаторсоединения (например, сокращенное имя) в дескриптор или полный ад-рес машины. Чуть позже в этой главе будет рассказано об идентификато-рах и дескрипторах подробнее.

Общие сведенияВ главе 2 говорилось об эволюции вычислительных сред — от мэйнфрей-мов к средам клиент/сервер и далее к средам тонкого клиента. Перед темкак обсуждать сервер имен Oracle, давайте кратко рассмотрим принципыархитектуры клиент/сервер. Это позволит гарантировать, что мы с вамипонимаем их одинаково.

Различные сетевые архитектурыВ среде мэйнфрейма прикладные программы и база данных располагают-ся на одной и той же машине. При наличии большого числа пользовате-лей или при недостаточном объеме ресурсов требования к ресурсамлегко могут превысить возможности машины. В среде клиент/серверприложения перемещены с сервера на клиентские машины. В этом слу-чае ресурсы сервера используются только для поддержки базы данных, аподдержку приложений обеспечивают клиентские машины. Однако прилюбом изменении приложения необходимо менять конфигурацию каждо-го клиента. Кроме того, каждая клиентская машина должна обладать до-статочными ресурсами для поддержки приложения и запросов.

Архитектура тонкого клиента позволяет обойти проблемы с ресурса-ми и обслуживанием, характерные для подхода клиент/сервер. В отли-чие от архитектуры клиент/сервер приложения размещаются наотдельной машине, к которой могут обращаться все клиентские машины.Таким образом, клиенту требуются минимальные ресурсы, машина сред-него уровня обеспечивает работу приложения, а центральному серверупо-прежнему достаточно поддерживать только базу данных.

Машина среднего уровня играет роль посредника между клиентами исерверами баз данных. Она выполняет следующие задачи:

/' -• Принимает от клиентов информационные запросы.• Передает запросы нужному серверу базы данных,

если в сети присутствует более одного такого сервера.• Получает ответы от сервера базы данных.• Возвращает ответы клиентам.

Page 120: Oracle 8i Networking 101

102 Глава 4

Вместе с OracleSi корпорация Oracle выпустила новый набор продук-тов под названием WebDB, в котором прикладная информация хранитсянепосредственно в базе данных. Это гибридная форма архитектуры, на-поминающая ту, что использовалась на мэйнфреймах, но опирающаясяна более быстрые процессоры и большие ресурсы памяти, доступные внаши дни. В главе 12 мы подробнее рассмотрим WebDB, а также прослу-шивающий процесс, который необходимо сконфигурировать для взаимо-действия с этим набором продуктов.

Трансляция сетевых именПоявление и последующее совершенствование сетевых протоколов обес-печило переход от мэйнфреймов к архитектуре клиент/сервер, потом кархитектуре тонкого клиента и, наконец, к современному состоянию дел,когда некоторые приложения хранятся непосредственно в базе данных.С момента внедрения технологии клиент/сервер мы используем файлысетевой конфигурации (listener.ora и tnsnames.ora), которые предоставля-ют информацию, необходимую для работы базовых сетевых протоколови реализации распределенных взаимодействий.

Из главы 3 вы знаете, что файл listener.ora содержит конфигурацион-ную информацию для одного или нескольких прослушивающих процес-сов, а именно адреса и параметры, ассоциированные с каждым из них.Файл tnsnames.ora обеспечивает трансляцию имени службы (псевдони-ма) в адрес экземпляра.

Пример трансляцииПеред тем как продолжать разговор о файле tnsnames.ora и сервере именOracle, давайте немного поиграем. Вообразим, что мы шпионы, которымнужно обмениваться шифрованными сообщениями. Сейчас я приведу за-шифрованную фразу, которую вам предстоит расшифровать с помощьюподсказки. Готовы? Вот эта фраза: 'Jw, evknfibzex tre sv wle!". А вот под-сказка: начинайте с буквы j и заканчивайте буквой г. Немного ниже я дамрасшифровку.

Посмотрим, что нужно сделать для взлома шифра. Очевидно, что этопростой подстановочный шифр. Иначе говоря, я написала фразу на лист-ке бумаги, а потом создала ключ, с помощью которого заменила однибуквы на другие. Для создания ключа, позволяющего шифровать фразы,можно выписать буквы английского алфавита в обычном порядке от адо z, а потом сдвинуться на несколько букв вправо или влево и переписатьалфавит снова, например, так:

Q a b c d e f g h i j k l m n o p q r s t u v w x y ze f g h i j k l m n o p q r s t u v w x y z a b c d

Предположим, я хочу зашифровать слова "Hi there". Я смотрю насвой ключ и вижу, что под буквой h находится буква /, а под буквой г —буква т. Таким образом, первым зашифрованным словом будет "Lm".Попробуйте самостоятельно зашифровать слово "there". Должно полу-читься "xlivi". Теперь вы можете вернуться назад и с легкостью решитьпервую головоломку.

Page 121: Oracle 8i Networking 101

Сервер имен Oracle 103

И в первом, и во втором случае вы транслировали, или разрешали,одну форму слова в другую. Net8 использует файл tnsnames.ora похожимобразом — для разрешения имен в адреса. При этом вам доступно неско-лько различных методов трансляции имен. Рассмотрим кратко, в чем онисостоят и каковы их достоинства и недостатки.

Методы трансляции именФактически существует пять различных подходов к разрешению дескрип-торов соединений: локальное именование (local naming), именование покаталогу (directory naming), сервер имен Oracle (Oracle Names server),именование по хосту (host naming) и внешнее именование (external na-ming). В этой главе нам предстоит изучить сервер имен Oracle, а в главе 5будет подробно рассмотрено именование по каталогу. Тем не менее дляполноты картины будут кратко описаны все возможные варианты с указа-нием их достоинств и возможных недостатков.

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

При использовании метода именования по каталогу имена служб вмес-те с информацией о соединениях хранятся в централизованном каталоге.Конфигурирование легко выполняется с помощью поставляемых с базойданных инструментов. Все изменения выполняются только в одном мес-те. Этот метод лучше всего работает в больших, сложных сетях с болеечем 20 базами данных, в которых регулярно происходят изменения. Не-достатком является то, что для разрешения имен необходимо обращатьсяк серверу каталога. В главе 5 вы увидите, почему это может стать потен-циальной проблемой.

Сервер имен Oracle также обеспечивает централизованный подход кхранению сетевых имен и адресов. Любые изменения на серверах базданных регистрируются только один раз и в одном месте — на сервереимен Oracle, после чего быстро становятся известны всем пользовате-лям, число которых может достигать сотен и тысяч. Как и именование покаталогу, этот метод лучше всего работает в сложных сетях с не менеечем двумя десятками баз данных, в которых регулярно происходят изме-нения. К недостаткам сервера имен Oracle относится то, что он поддер-живает только службы Oracle, а для его настройки и администрированиятребуется прикладывать дополнительные усилия.

При именовании по хосту разрешение имен выполняется с помощьюмеханизма трансляции IP-адресов, в роли которого может выступатьслужба доменных имен (Domain Name Services, DNS), сетевая информа-ционная служба (Network Information Services, NIS) или централизованноведущийся файл со списком хостов TCP/IP. Конфигурирование на сторо-не клиента сводится к минимуму — для установления соединения

Page 122: Oracle 8i Networking 101

104 Глава 4

пользователю достаточно указать только имя хоста, что устраняет необ-ходимость в файле tnsnames.ora. Однако этот метод имеет ограниченноеприменение, поскольку и клиент, и сервер должны в обязательном поряд-ке использовать TCP/IP и иметь доступ к DNS, NIS или файлам со списка-ми хостов. Именование по хосту лучше всего подходит для простыхTCP/IP-сред, соответствующих только что приведенному требованию.Кроме того, при реализации этого метода нужно учитывать, что менед-жер соединений Oracle будет недоступен, поскольку он не поддерживает-ся в данной конфигурации.

Последний метод именования — внешнее именование — позволяет раз-решать имена Oracle с помощью служб имен других производителей.Если у вас уже есть какая-либо служба имен, вы можете загрузить в нееимена сетевых служб Oracle с помощью инструментов и утилит, поставля-емых производителем. Однако сторонние службы имен обычно нельзяадминистрировать с помощью инструментов Net8.

Потенциальные проблемыВ среде Net8 существует одно простое, но очень важное правило: при ис-пользовании локального именования, которое является самой распро-страненной формой трансляции имен, каждый сервер и каждый клиентдолжны иметь файл tnsnames.ora. Когда вам нужно добавить, изменитьили удалить имя службы, это должно быть сделано в каждом из файловtnsnames.ora, присутствующих в системе. При редком добавлении илиудалении баз данных, а также при очень небольшом количестве клиентови служб модификация каждого файла tnsnames.ora не представляет осо-бой сложности.

А если у вас очень много клиентов или среда баз данных по-настояще-му динамична? Обслуживание может превратиться в кошмар! Представь-те себе и такую ситуацию, когда некоторым разработчикам илипользователям требуются специальные файлы tnsnames.ora. Как вы буде-те следить за тем, какие файлы должны быть модифицированы, а какиенет?

Проблем становится еще больше, когда в систему добавляются новыеклиенты, а в вашей компании есть группа, которая самостоятельно кон-фигурирует свои машины. Кто будет определять, какой файл tnsna-mes.ora использовать? Если сгенерирована новая версия tnsnames.ora, токак ее распространить по системе и кто будет выполнять перенос? Как га-рантировать наличие правильного файла на каждой клиентской машине?Как видите, требуется обдумывать и решать множество вопросов.

Чтобы снизить остроту этих проблем, корпорация Oracle разработалаприложение, обеспечивающее централизованное разрешение именслужб — так называемый сервер имен Oracle (Oracle Names server). Затем(в OracleSi, Release 2) появился сервер каталога (directory server), работа-ющий по протоколу LDAP (Lightweight Directory Access Protocol — упро-щенный протокол доступа к каталогу). Как уже говорилось, LDAP будетописан в главе 5, а в этой главе выясним, что представляет собой серверимен Oracle и как он работает.

Page 123: Oracle 8i Networking 101

Сервер имен Oracle 105

Сервер имен OracleСервер имен Oracle — это приложение, разработанное корпорациейOracle для централизованного хранения имен и адресов всех служб сетии предоставления этой информации каждому клиенту, запрашивающемусоединение. При использовании сервера имен Oracle вам больше не нуж-но снабжать каждого клиента системы файлом tnsnames.ora. Когда возни-кает необходимость что-то изменить в сети Oracle, это изменениевыполняется на сервере имен Oracle, который распространяет его подругим серверам имен системы. Следовательно, каждое изменение доста-точно выполнить только один раз в одном месте. Не правда ли, это заме-чательный способ сократить объем работы по администрированию?

Однако за все нужно платить. В данном случае потребуется приложитьбольше усилий на начальном этапе. Но пугаться не стоит. Со временемсервер имен Oracle становится все более дружественным к пользователюи более простым в применении. Давайте посмотрим, как он работает икакие решения необходимо принять перед началом его использования.

Получение информации о соединенииЧтобы понять, каким образом сервер имен Oracle работает с клиентскимзапросом, поставьте себя на место преподавателя, который только что за-кончил принимать последний экзамен и хочет ввести в базу данных от-метки студентов. В сети учебного заведения находятся три "сервера;соединения с ними идентифицируются как STUDENTS (студенты),GRADES (отметки) и COURSES (курсы). Вам нужно установить соедине-ние с использованием идентификатора GRADES. Каждая база данныхпри запуске регистрируется на сервере имен Oracle. Далее будем основы-ваться на предположении, что служба GRADES уже доступна и зарегист-рирована на сервере имен.

Приложение, с которым вы работаете, передает серверу имен Oracleзапрос на соединение, в котором указан идентификатор соединения(GRADES). Сервер имен обращается, в зависимости от конфигурации, ксвоему кэшу или к своей базе данных и получает информацию, необходи-мую для разрешения идентификатора соединения в дескриптор соедине-ния. Этот дескриптор содержит ту же информацию, которую выполучили бы из файла tnsnames.ora:

LJ (ADDRESS=(PROTOCOL=tCp)(HOST=marlenes-pc)(PORT=1521))(CONNECT_DATA

(SID=grades))

Затем дескриптор соединения возвращается приложению. В данномслучае он говорит о том, что прослушивающий процесс расположен нахосте MARLENES-PC, использует протокол TCP/IP и прослушиваетпорт 1521. База данных, к которой предстоит обращаться, имеет систем-ный идентификатор GRADES.

Page 124: Oracle 8i Networking 101

106 Глава 4

После этого приложение направляет запрос на соединение прослуши-вающему процессу, расположенному по указанному адресу, и соединяетсясо службой. Для вас этот процесс остается прозрачным. На рис. 4.1 пока-зано, как клиент передает серверу имен Oracle запрос с идентификато-ром соединения, принимает дескриптор соединения и посылает запросна соединение прослушивающему процессу на нужной машине.

ONames

(1) Клиент передает запросна соединение, содержащийидентификатор соединения.

(2) Сервер имен Oracle (ONames)обращается к своей базе данных ивозвращает дескриптор соединения.

(3) Клиент запрашиваетсоединение.

Сервер

Клиент

Рис. 4.1. Получение дескриптора соединения от сервера имен Oracle

Как видите, все довольно просто. Конечно, в этом примере был пока-зан только один сервер имен. Когда в сети присутствуют несколько такихсерверов, ситуация немного усложняется. Посмотрим, зачем могут потре-боваться два и более сервера имен и какие задачи управления приходитсярешать в этом случае.

Множественные серверы имен OracleПри каких обстоятельствах в сети следует иметь более одного сервераимен Oracle? Этот вопрос требует развернутого ответа.

Рассказывая о том, как сервер имен Oracle обрабатывает запрос, я ко-ротко заметила, что для хранения идентификаторов и дескрипторов сое-динений может использоваться кэш или база данных. Какой методполучения информации будет использовать ваш сервер — зависит оттого, как вы его сконфигурируете.

Допустим, вы решили выбрать в качестве репозитория сервера именOracle базу данных. Но где ее взять? Все очень просто — для храненияимен и связанной с ними информации выделяется одна из существующихбаз данных Oracle или создается отдельная база данных. Об организациирепозитория подробнее поговорим в части II, когда будем рассматриватьинструменты конфигурирования. А пока просто имейте в виду, что выможете выбирать способ хранения информации об именах. Если вы

Page 125: Oracle 8i Networking 101

Сервер имен Oracle 107

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

Далее нужно учесть, сколько клиентов поддерживает ваша система.Предположим, у вас 2000 клиентов. Что произойдет, если они запросятсоединения с базами данных почти одновременно? При наличии толькоодного сервера имен Oracle вполне может возникнуть узкое место, и по-льзователи начнут получать отказы в соединении.

Коль скоро речь зашла о пользователях, представьте, что произойдет,если компьютер с сервером имен Oracle станет недоступным (например,кто-нибудь случайно зацепит шнур питания и выдернет его из розетки).При наличии только одного сервера имен вы имеете единственную точкуотказа и как следствие потенциальные проблемы, которые часто стано-вятся весьма реальными.

Таким образом, чтобы гарантировать доступность, а также уменьшитьвремена отклика (обеспечив тем самым поддержку большого количестваклиентов), логично с самого начала остановиться как минимум на двухсерверах имен Oracle. Эти серверы могут разделять один репозиторий водной и той же базе данных, а могут располагаться на разных машинах ииспользовать отдельные базы данных для повышения отказоустойчиво-сти. Более того, вы можете использовать несколько серверов имен, об-служивающих разные области сети. Выбор остается за вами.

В зависимости от размера клиентской базы, количества центровданных, количества экземпляров и расположения компьютеров в сетивам может потребоваться несколько отдельных серверов имен, исполь-зующих одну или несколько баз данных для записи и считыванияинформации.

Но как управлять двумя и более серверами имен? Здесь на помощьприходит концепция административных регионов.

Административные регионыНедалеко от моего дома находится пожарная часть. Примерно в десятимилях от нее расположена другая часть, которая обслуживает два горо-да — мой и еще один. Обе части имеют общую центральную станцию, гдесидят диспетчеры, принимающие вызовы и посылающие пожарные ма-шины. Третий город, расположенный поблизости, имеет свою собствен-ную диспетчерскую. Однако все города относятся к одному округу,поэтому совместно используют технику всех трех пожарных частей.

Перенесем эту ситуацию на сообщество серверов имен Oracle. Админи-стративный регион (administrative region) состоит из одного и более серве-ров имен Oracle, использующих единый репозиторий. В примере спожарной частью у нас есть два административных региона, один с двумяпожарными частями, а другой — только с одной.

Каждая пожарная часть соответствует серверу имен Oracle, а центра-льная диспетчерская — репозиторию. Каждый сервер имен обычно полу-чает информацию из определенного репозитория, подобно тому какпожарная часть принимает вызовы через определенную диспетчерскую.

Page 126: Oracle 8i Networking 101

108 Глава 4

Однако все серверы имен принадлежат к одной сети, точно так же, каквсе города принадлежат к одному округу. Таким образом, адреса служб вдействительности разделяются между всеми серверами имен, и если одинрепозиторий окажется недоступным, сервер имен сможет получить необ-ходимую информацию из другого административного региона.

Если вы решили использовать серверы имен, то вам следует составитьплан сети и разделить ее на административные регионы. Кроме того,следует определить один или несколько доменов Oracle.

ДоменыСогласно руководству администратора Net8 версии 8.1.6, "домен — это ло-гическая группа машин и сетевых служб". В пределах каждого админист-ративного региона может быть как один, так и несколько доменов.Деление административного региона на отдельные логические доменыупрощает администрирование.

Все имена в пределах домена должны быть уникальны, но поддержи-вать уникальность простых имен между доменами не требуется. Это озна-чает, что в двух разных доменах может встречаться одно и то же имяслужбы или базы данных, подобно тому как в базе данных могут присутст-вовать два разных объекта с одним именем, принадлежащих к разнымсхемам.

Если объекты принадлежат к разным схемам, то вы можете различатьих даже при совпадении имен, поскольку имя схемы связано с именемобъекта. Допустим, что у вас есть таблица MYTAB в схеме NELSON и таб-лица MYTAB в схеме ROZ. Эти таблицы уникальны, поскольку одна изних в действительности называется NELSON.MYTAB, а другая —ROZ.MYTAB. Поскольку имена всех административных регионов и доме-нов уникальны, имена объектов каждого региона, квалифицированныеименами домена и региона, также будут уникальны.

Подобно каталогам операционной системы, сетевые домены имеютиерархическую организацию. Однако сетевые домены, как и доменыOracle, являются логическими, а не физическими сущностями и не обязате-льно отображаются на реальное сетевое оборудование или компьютеры.Они используются просто как пространства имен, позволяющие гаранти-ровать отсутствие конфликтов между именами. Административный реги-он с одним или несколькими доменами можно объявить в любом местесети.

Некоторые операционные системы используют пространства именDNS (Domain Name System — доменная система имен). Домены Oracle независят от этих пространств имен. При желании вы можете определитьимена доменов так, чтобы они совпадали с пространствами имен DNS,однако делать это не обязательно.

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

Page 127: Oracle 8i Networking 101

Сервер имен Oracle 109

Такой подход хорошо работает в небольших системах, где все службы ре-гистрируются динамически. Каждый раз, когда служба регистрируется впрослушивающем процессе, информация немедленно направляется всемсерверам имен региона.

Однако для крупномасштабных распределенных сред больше подхо-дит другой вариант, когда несколько административных регионов регист-рируют свою информацию в одной или нескольких региональных базахданных. Региональная база данных содержит таблицы с информацией обименах. Каждый раз, когда служба регистрируется в прослушивающемпроцессе, информация заносится в соответствующую региональную базуданных. Серверы имен Oracle периодически опрашивают ее, чтобы уз-нать об обновлениях. Таким образом, им не нужно постоянно связывать-ся друг с другом, чтобы поддерживать актуальность своей информации.

Типы хранимых данныхК этому моменту вы уже знаете, как работает сервер имен Oracle, и вампонятны некоторые связанные с ним термины. Но пока ничего не былосказано о том, какого рода информацию хранят серверы имен.

В таблице 4.1, взятой из руководства администратора Net8 вер-сии 8.1.6, перечислены различные типы данных, которые может хранитьсервер имен Oracle.

Таблица 4.1.Данные, хранимые сервером имен Oracle

Данные Описание

Глобальные имена Сервер имен Oracle получает информацию о базе данныхи адреса баз данных (ее глобальное имя и адрес) от прослушивающего процесса. Адрес

конфигурируется в файле listener.ora, а глобальное имя регистриру-ется при запуске базы данных или статически конфигурируется вфайле listener.ora. Вам не нужно регистрировать эту информацию.

Имена и адреса других Сервер имен Oracle хранит имена и адреса всех серверов именсерверов имен Oracle Oracle из своего административного региона. Если в сети существует

более одного административного региона, то сервер имен хранитимя и адрес как минимум одного сервера имен из корневого админи-стративного региона и из каждого непосредственного подрегиона.Вам не нужно регистрировать эту информацию.

Имена сетевых служб Сервер имен Oracle будет хранить имена сетевых служб, если вызарегистрируете их с помощью утилиты Names Control или инстру-мента Nets Assistant. Кроме того, сервер имен может хранить ссылкина базы данных Oracle FWb и базы данных других производителей.(См. обсуждение утилиты namesctl в последней части этой главы.)

Глобальные связи Связи баз данных позволяют устанавливать соединение между двумябаз данных базами данных. Имя связи базы данных совпадает с глобальным

именем той базы данных, на которую указывает эта связь.Как правило, для каждой базы данных существует только одна связь.

Page 128: Oracle 8i Networking 101

110 Глава 4

Таблица 4.1 (продолжение)Данные, хранимые сервером имен Oracle

Данные Описание

Псевдонимы Сервер имен Oracle может хранить псевдонимы (альтернативныеимена) для любого имени сетевой службы, службы базы данныхили глобальной связи базы данных. Псевдонимы регистрируютсяна сервере имен с помощью утилиты Names Control или инструментаNet8 Assistant.

Таблица 4.2.Типы связей баз данных

Связь базы данных Тип доступа

Частная связь базы данных Может использоваться только владельцем схемыв конкретной схеме базы данных

Общая связь базы данных Может использоваться всеми пользователями базы данных

Глобальная связь базы данных Может использоваться всеми, кто работает в сетина сервере имен Oracle

Теперь наступило время подробнее рассказать о глобальных связяхбаз данных.

Создание глобальной связи базы данныхПрежде всего выясним, какие функции выполняют глобальные связи базданных. Глобальная связь базы данных дает возможность связать каждуюбазу данных, находящуюся в сети, со всеми остальными базами данныхэтой сети. Когда все они связаны между собой, любой пользователь сетиможет получить доступ к любому глобальному объекту, указав глобальноеимя этого объекта в SQL-операторе или в определении объекта.

Вспомним о том, что такое глобальное имя базы данных. Глобальноеимя используется для уникальной идентификации базы данных и записы-вается в виде имя_базы_данных.домен_базы данных. Допустим, что вашакомпания называется XYZ Corporation и занимается коммерческой деяте-льностью в Соединенных Штатах. Вашей базе данных присвоено имяSKDL. Домен Oracle, к которому принадлежит эта база данных, называет-ся us.xyzcorp.com. В этом случае полным именем базы данных будетSKDL.US.XYZCORP.COM.

Вернемся к глобальным связям баз данных. Чтобы в глобальной связиможно было использовать глобальное имя базы данных, параметр иници-ализации global_namcs в файле init.ora должен иметь значение TRUE.В этом случае при регистрации базы данных прослушивающий процесссохранит ее глобальное имя.

Теперь посмотрим, что происходит при использовании сервера именOracle. Когда сервер имен получает глобальное имя базы данных от про-слушивающего процесса, он автоматически регистрирует у себя глобаль-ную связь базы данных. Вам не нужно предпринимать никаких действий

Page 129: Oracle 8i Networking 101

Сервер имен Oracle 111

для регистрации или создания этой связи. Но откуда берется глобальноеимя? Оно должно быть помещено в файл init.ora вашей базы данныхкак значение параметра service_name. Итак, проследим всю цепочкудействий.

1. В файле init.ora вы устанавливаете global_names = TRUEи указываете глобальное имя базы данных:service_name = SKDL.US.XYZCORP.COM.

2. При запуске база данных регистрируется в прослушивающемпроцессе.

3. Сервер имен Oracle опрашивает прослушивающий ПрОЦвС«й»вТчтобы узнать о наличии новых регистрационных данных,

4. Сервер имен Oracle получает от прослушивающего процессаглобальное имя базы данных.

5. Сервер имен Oracle создает глобальную связь базы данных,используя указанное вами глобальное имя.

6. Вы проверяете функционирование связи, вводя оператор select,в котором используется эта связь.

Последняя операция выглядит следующим образом:

LJ select *f rom [email protected];

где EMPLOYEE — это глобально определенный объект.Вы можете создать глобальную связь базы данных самостоятельно,

вызвав утилиту Names Control и введя информацию о связи:

Q $ namesctlNAMESCTL> register skdl.us.xyzcorp.com -d , ,

(description=(address=(protocol=tcp)(host=skingwad)(port=1521)))

Параметр -d показывает, что вы хотите использовать стандартныйпрослушиваемый адрес TCP/IP. В качестве протокола указан TCP,хост-машиной является SKINGWAD, а порт имеет номер 1521.

Чтобы создать глобальную связь базы данных с помощью инструментаNet8 Assistant, выполните следующие действия:

1. Запустите Net8 Assistant. В системе UNIX для этого нужно ввестикоманду netasst из $ORACLE_HOME/bin, а в системе Windows NTвыбрать пункт меню Start >• Programs >• OracleORACLE_HOME >•Network Administration >• Net8 Assistant.

2. В панели навигатора раскройте список Oracle Names Servers^щелкнув на значке плюса {+).

3. Выберите сервер имен Oracle, к которому нужно добавитьглобальную связь базы данных.

4. Выберите пункт Manage Data (Управление данными) в спискена правой панели.

5. Щелкните на вкладке Links (Связи) и выберите Add (Добавить).

Page 130: Oracle 8i Networking 101

112 Глава 4

6. Введите имя глобальной связи базы данных в поле DB Link Name.

7. Введите в полях User и Password имя пользователя и пароль учетнойзаписи, привилегии которой позволяют создавать глобальную связьбазы данных.

8. Щелкните на кнопке Execute (Выполнить) для создания связи.

9. Выберите пункт меню File >• Save Network Configuration(Файл >- Сохранить сетевую конфигурацию).

ВниманиеЕсли параметр global_names в файле параметровинициализации (init.ora) имеет значение TRUE,то введенное имя глобальной связи должно бытьглобальным именем базы данных.

Корпорация Oracle рекомендует создавать глобальную связь для каж-дой сетевой базы данных, чтобы глобальные объекты могли автоматиче-ски разделяться между всеми пользователями сети. Однако рекомендуювам проявлять большую осмотрительность, принимая решение о том, ка-кая информация будет разделяться глобально и к каким объектам будетразрешен доступ всех пользователей сети.

Глобальные связи баз данных и безопасностьЕсли вы не хотите указывать имя пользователя и пароль для глобальнойсвязи базы данных, зарегистрированной на сервере имен, то дальнейшееконфигурирование не требуется. Если же вы хотите иметь гарантию, чток глобальным объектам будут обращаться только те пользователи, кото-рым это положено, то необходимо реализовать управление доступом.Следовательно, нашей следующей темой будут квалификаторы связей базданных.

Глобальные связи баз данных могут замещаться частными и общимисвязями, созданными отдельными пользователями. Если пользователь сподходящими привилегиями создаст частную или общую связь базы дан-ных с тем же именем, что и у глобальной связи, то сервер имен Oracle бу-дет использовать для разрешения имен эту частную или общую связьвместо глобальной.

Квалификаторы связей баз данныхВ предыдущих версиях Oracle нередко создавалось по нескольку связей водной базе данных. Множественные связи использовались для доступа кразным схемам или для обращения к другим базам данных из одной илинескольких схем локальной базы данных. В OracleSi подход изменился, икорпорация Oracle теперь рекомендует иметь не более одной глобальнойсвязи для каждой базы данных. Для управления доступом к объектам пре-дусмотрен механизм квалификаторов связей (link qualifiers), с помощьюкоторого можно задавать альтернативные установки для имени пользова-теля и пароля. Глобальная связь базы данных может иметь любое количе-ство квалификаторов.

Page 131: Oracle 8i Networking 101

Сервер имен Oracle 113

Допустим, вам нужно управлять доступом к таблице EMPLOYEE. Дляэтого вы можете добавить к глобальной связи skdl.us.xyzcorp.com квали-фикатор, требующий ввода имени пользователя и пароля. В следующемразделе я покажу, как определяются квалификаторы связей.

После того как квалификатор связи определен, можно соединяться судаленной базой данных:

(J connect @SKDL.US.XYZCORP.COM@EMPLOYEE

В ходе обработки запроса на соединение у пользователя будут запро-шены имя и пароль, и только после правильного ввода соединение будетокончательно установлено.

Добавление квалификатора связиХотя имя и пароль для глобальной связи можно зарегистрировать с помо-щью утилиты Names Control, эта утилита не обладает всеми функциями,необходимыми для работы с глобальными связями, и корпорация Oracleрекомендует использовать вместо нее Net8 Assistant. Чтобы добавить имяпользователя и пароль к глобальной связи базы данных, выполните следу-ющие действия:

1. Запустите Net8 Assistant. В системе UNIX для этого нужно ввестикоманду netasst из $ORACLE_HOME/bin, а в системе Windows NTвыбрать пункт меню Start *• Programs >• Oracle HOME_NAME >•Network Administration >- Net8 Assistant.

2. В панели навигатора раскройте список Oracle Names Servers,щелкнув на значке плюса (+).

3. Выберите сервер имен Oracle, к которому нужно добавитьглобальную связь базы данных.

4. Выберите пункт Manage Data в списке на правой панели.

5. Щелкните на вкладке Links и выберите действие Add.

6. Выберите опцию DB Qualifiers в нижней части экрана.

7. На экране появится отдельное окно DB Qualifiers.Введите в первом поле название квалификатора.

8. Введите в полях User и Password имя пользователя и парольдля данной связи и щелкните на кнопке ОК.

9. Повторите шаги с 6-го по 8-й столько раз, сколькоквалификаторов вам нужно добавить.

10. Щелкните на кнопке Execute (Выполнить) для модификации связи.

11. Выберите пункт меню File >• Save Network Configuration,чтобы сохранить сделанные изменения.

5 Зак. 726

Page 132: Oracle 8i Networking 101

114 Глава 4

Модели именования OracleВ самом начале этой главы говорилось об именах и о нашей склонностивсему давать свое имя. При использовании серверов имен Oracle дела об-стоят таким же образом. Каждый объект в сети должен иметь уникальноеимя. К этим объектам относятся и базы данных.

В сети серверов имен Oracle можно использовать две различные моде-ли именования объектов: модель однодоменного именования (SingleDomain Naming) и модель иерархического именования (HierarchicalNaming). Давайте посмотрим, чем они отличаются.

Модель однодоменного именованияСудя по названию, модель однодоменного именования должна бытьпроще, чем модель иерархического именования, и это действительнотак. Эта модель хорошо подходит для небольшой сети, где нет дублирова-ния имен служб или связей баз данных. Все имена, хранящиеся на сер-вере имен Oracle, принадлежат к одному домену. В предыдущих версияхсетевых средств Oracle этому единственному домену присваивалосьстандартное имя .WORLD. Хотя в Net8 и Oracle Names версии 8 такоготребования больше нет, вы можете продолжать использовать имя.WORLD для совместимости с прежними соглашениями об именовании.

Рассмотрим пример. Допустим, что корпорация XYZ выпускает тривида продуктов. Для каждого из этих продуктов ведется своя база данных,в которую заносится информация о заказах, деталях, поставщиках и т.д.С одной из этих баз данных, SKDL, мы уже встречались раньше, а две дру-гие называются RMFS и DGSS. Разумеется, для каждой из производствен-ных баз данных существуют база данных разработки и база данных длятестирования/контроля качества. Поскольку все они построены на осно-ве OracleSi, для идентификации используются имена служб. (В предыду-щих версиях Oracle базы данных идентифицировались по SID, а не поименам служб.)

Теперь поместим эти базы данных в среду с однодоменным именова-нием. В нашем случае домен будет называться .WORLD. Его графическоепредставление приведено на рис. 4.2. Для идентификации имя доменаприсоединяется к имени службы. Таким образом, SKDL превращается вSKDL.WORLD.

Домен .WORLD

SKDL SKDLDEV SKDLTSTRMFS RMFSDEV RMFSTSTDCSS DGSSDEV DGSSTST

Рис. 4.2. Однодоменное именование

Page 133: Oracle 8i Networking 101

Сервер имен Oracle 115

Модель иерархического именованияВы когда-нибудь составляли генеалогическое дерево? Обычно оно выгля-дит примерно так, как показано на рис. 4.3. Там изображено генеалогиче-ское дерево вымышленного рода. Удивительно, если оно совпадет свашим!

Jago Hmum / Hammy Tzcn

Bebop Shuz / Duwap Tzcn

Kudzo Knee / Duwap Tzcn

Рис. 4.З. Пример генеалогического дерева

Как видите, дерево начинается с одной пары родителей. На второмуровне показаны их дети, а на третьем — внуки. Подобная структура назы-вается иерархической. Каждый уровень обязан своим существованиемвышележащему уровню. Посмотрите на второй и третий (самый ниж-ний) уровни: там показаны две пары людей с одинаковыми именами:Duwap Tzcn и Pocus Abe. "Ну и что? — скажете вы. — Ведь они принадле-жат к разным поколениям". Конечно, вы правы. Это действительноразные люди.

Итак, генеалогическое дерево представляет собой иерархическуюструктуру. Разные представители рода находятся на разных ветвях.В сети Oracle вы можете использовать модель иерархического именова-ния для распределения имен по разным регионам. Иерархическое струк-турирование большой сети служит залогом будущего роста иобеспечивает большую гибкость при именовании объектов. Точно также, как в генеалогическом дереве могут встречаться одинаковые имена,представляющие разных людей, при иерархическом именовании возмож-но наличие одинаковых локальных имен, представляющих разные базыданных. Чтобы это было понятнее, преобразуем наше генеалогическоедерево в иерархическую доменную структуру. Взгляните на рис. 4.4.

На рис. 4.4 все представители рода распределены по четырем доме-нам: один корневой домен семьи Tzcn и три домена детей. Рядом с имена-ми Женатых членов семьи приведены имена их супругов. Показаннаяструктура позволяет добавлять в каждый домен другие имена при

Page 134: Oracle 8i Networking 101

116 Глава 4

Семейство Tzcn

Jago Hmum/Hammy TzcnКорневой домен

Имя домена

kfleTO НтитЯгсп

^ Bebop Shuz/Duwap TzcnHocus Tzcn/Pocus Abe

Дети Shuz/Tzcn

HelliaTzcnKudzo Knes/Duwap Tzcn

Дети Tzcn/PocusMydo AbePocus Abe

Itsy Bitty/Hairy Abe

Имена внутри домена

Рис. 4.4. Генеалогическое дерево, представленное в видеиерархии доменов

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

При использовании метода иерархического именования создаетсямножество связей "предок-потомок". Вы получаете больше возможностейдля расширения модели, но вместе с тем на вас возлагается дополнитель-ная обязанность — следить за тем, к какому домену принадлежит каждаябаза данных. Наглядно представить связи между доменами помогает гра-фическая схема. В прежних версиях сетевых инструментов можно былосоздавать графическое представление модели имен Oracle. В OracleSi этавозможность отсутствует, но вам все равно стоит набросать схему сете-вой конфигурации.

Множественные административные регионыВ каких случаях нужно использовать иерархическое именование вместооднодоменного? Если сеть имеет большие размеры' или распределена побольшой территории, то вы, вероятно, захотите распределить работу поадминистрированию между локальными группами, разрешив им управ-лять своими регионами. Обеспечить локальное управление какой-либообластью сети при использовании серверов имен Oracle можно толькопутем реализации иерархического именования. Это позволит передатьдомены под контроль административных регионов и назначить ответст-венных за управление каждым регионом.

Page 135: Oracle 8i Networking 101

Сервер имен Oracle 117

Подумайте вот над каким вопросом. Если существует несколько раз-ных доменов в разных административных регионах и несколько баз дан-ных с одним и тем же именем, то как клиент сможет узнать, какую строкусоединения использовать для соединения с нужной базой данных? Вы го-ворите, что каждый клиент должен квалифицировать запрос на соедине-ние полным именем домена? Да, это очень близко к правильному ответу.Как правило, каждому клиенту присваивается так называемый домен поумолчанию (default domain), в котором выполняется большая часть егозапросов. Обращаясь к сетевой службе в пределах этого домена, клиентможет не указывать его имя. Иначе говоря, клиент может опустить квали-фикатор ".", и имя домена по умолчанию будет автоматически присоеди-нено к имени службы или связи базы данных. Посмотрим, как этопроисходит.

Допустим, в вашей пользовательской конфигурации указан домен поумолчанию US.XYZCORP.COM. Когда вы обращаетесь с запросом к служ-бе SKDL, не добавляя никаких квалификаторов, имя SKDL автоматическидополняется именем домена по умолчанию, и результирующая строка со-единения приобретает вид SKDL.US.XYZCORP.COM. Если же вы хотитесоединиться с базой данных в европейском домене EURO.XYZ-CORP.COM, то запрос на соединение должен быть квалифицирован пол-ным именем домена, поскольку он не является вашим доменом поумолчанию. Таким образом, чтобы соединиться с базой данных европей-ского отделения компании, необходимо указать имя SKDL.EURO.XYZ-CORP.COM.

В сети с множественными административными регионами создаетсяодин корневой регион. Он содержит корневой домен, а также один и бо-лее делегированных административных регионов, каждый из которых, всвою очередь, содержит один и более доменов. Это звучит не слишкомпонятно, поэтому попробуем внести ясность.

Если компания, в которой вы работаете, существует уже много лет, тов ней наверняка сформировалась управленческая иерархия. Ваш менед-жер подчиняется менеджеру группы. Над менеджером группы стоит руко-водитель отдела, за работой которого следит менеджер отделения.Руководитель отдела отчитывается перед директором или вице-президен-том. На самом верхнем уровне этой иерархии находится человек, воз-главляющий компанию (или группа таких людей). Глава компанииобладает доступом ко всем ее областям, или регионам. Корневой админи-стративный регион можно уподобить главе компании, а делегированныеадминистративные регионы — директорам.

Взгляните на рис. 4.5. Корпорация XYZ представлена корневым доме-ном. Согласно рисунку, этот корневой домен расположен в США. Корне-вой административный регион с тремя доменами также расположен вСША. Эти три домена объединяют вице-президентов, менеджеров и слу-жащих. На рисунке показаны два делегированных региона: один располо-жен в Европе, а другой — на Дальнем Востоке. Каждый делегированныйрегион содержит два домена — домен менеджеров и домен служащих.

Корневой административный регион должен содержать как минимумодин домен. Как видно из рис. 4.5, в нашем случае корневой регион

Page 136: Oracle 8i Networking 101

118 Глава 4

Корневойадминистративный регион

I

Американскиевице-президенты

Делегированныеадминистративныерегионы

Домены, входящиев регион

Рис. 4.5. Корневой и делегированные административные регионы

содержит более одного домена. Вы можете разделить сеть любым спосо-бом, логичным с точки зрения администрирования. Например, при нали-чии семи доменов у вас может быть от одного до семи административныхрегионов.

Кроме того, корневой административный регион будет содержатьпринадлежащие ему серверы имен Oracle, а также домены и серверыимен делегированных регионов. Наконец, корневой регион будет содер-жать относящиеся к нему определения данных, включая все имена служббаз данных, связи баз данных и псевдонимы.

Подробнее о делегированных регионахЛюбые административные регионы, расположенные ниже корневого,считаются делегированными. Корневой регион передает им полномочияна управление доменами. Делегированный административный регион, всвою очередь, может передать полномочия на управление доменом деле-гированному региону более низкого уровня иерархии.

Каждый делегированный административный регион содержит всепринадлежащие ему серверы имен Oracle и домены, а также серверыимен и домены нижестоящих регионов. Разумеется, делегированный ре-гион должен также хранить адреса серверов имен корневого региона,чтобы получать информацию, необходимую для связи с другими

Page 137: Oracle 8i Networking 101

Сервер имен Oracle 119

регионами. Подобно корневому региону, каждый делегированный реги-он хранит относящиеся к нему определения данных — имена служб базданных, связи баз данных и псевдонимы.

Конфигурирование сервера имен OracleК этому моменту вы должны были определить, что вам больше подходит:непрерывное тиражирование регистрационных данных служб между сер-верами имен Oracle или хранение данных всех региональных серверовимен в базе данных Oracle. Кроме того, вы уже могли сделать выбор меж-ду однодоменным и иерархическим методами именования. Если решеноиспользовать метод иерархического именования, то выбраны ли место-нахождение и имя корневого административного региона и его домена?Определены ли границы всех делегированных административныхрегионов?

В случае утвердительного ответа на эти вопросы можно устанавливатьпрограммное обеспечение и приступать к конфигурированию. Установкуследует выполнять в соответствии с документацией на сервер имен Orac-le для вашей конкретной платформы. Даже если у вас уже установленOracle Enterprise Server 8.1.6, есть вероятность, что сервер имен не уста-навливался. Чтобы это проверить, в системе UNIX нужно перейти в ката-лог $ORACLE_HOME/network и поискать файл namesini.sql:

[J find ./ -name namesini.sql -print

В системе Windows NT этот файл должен находиться в папкеORACLE_HOME\network\names. Его отсутствие говорит о том, что сер-вер имен Oracle не был установлен. Если в системе уже присутствуетструктура сервера имен Oracle, можно запустить сценарий namesupg.sqlиз того же каталога, чтобы произвести обновление с версии 1 или 2 доNet8.

Корпорация Oracle рекомендует устанавливать сервер имен Oracle наотдельной машине, где нет никаких других служб или серверов. Вам так-же потребуется установить клиентскую часть Net8 или SQL*Net на каж-дой клиентской машине и серверную часть Net8 или SQL*Net на сервере.

ВниманиеЕсли для сервера имен Oracle используетсямашина с UNIX, то программа установки(Oracle Universal Installer) не создаст необходимыйкаталог $ORACLE_HOME/network/names.Его нужно создать вручную перед началомконфигурирования.

Конфигурирование сети Oracle можно выполнять с помощью различ-ных инструментов: Net8 Assistant, Net8 Configuration Assistant и утилитControl. Какой из них использовать для конфигурирования сервера именOracle? Чтобы ответить на этот вопрос, кратко рассмотрим каждый изинструментов.

Page 138: Oracle 8i Networking 101

120 Глава 4

Инструменты конфигурирования и управленияNet8 Assistant, подробно рассматриваемый в главах 7 и 8,— это инстру-мент с графическим интерфейсом пользователя (GUI), предназначенныйдля конфигурирования сетевых компонентов и управления ими. Его мож-но запускать как на клиентской машине, так и на сервере. NetS Assistantпозволяет конфигурировать или определять:

• Прослушивающие процессы• Простые имена и идентификаторы соединений, отображаемые в де-

скрипторы соединений (Эти отображения хранятся либо в файлеtnsnames.ora, либо в централизованной LDAP-совместимой службекаталогов, либо на сервере имен Oracle.)

• Методы именования, используемые для разрешения идентификато-ров соединений в дескрипторы соединений

Net8 Assistant можно использовать для запуска, останова и настройкисконфигурированного сервера имен Oracle, а также для сбора статисти-ки, относящейся к серверу имен.

NetS Configuration Assistant, который будет рассмотрен в главе 9, пред-назначен для конфигурирования основных сетевых компонентов. Он ав-томатически запускается при установке программного обеспеченияOracle, чтобы обеспечить конфигурирование имен и адресов прослуши-вающих процессов, имен сетевых служб в файле tnsnames.ora, способовдоступа к серверу каталога, а также методов именования, которые будутиспользоваться клиентами для разрешения идентификаторов соедине-ний. NetS Configuration Assistant можно также запускать вручную в авто-номном режиме.

Набор утилит Control состоит из утилиты Listener Control (Isnrctl), окоторой говорилось в главе 3, утилиты Names Control (namesctl), кото-рую мы рассмотрим далее в этой главе, и утилиты Connection ManagerControl (cmctl), речь о которой пойдет в главе 10.

Как вы думаете, какой инструмент следует выбрать для конфигуриро-вания сервера имен Oracle? На самом деле это каверзный вопрос. Когдавам нужен простой, базовый, стандартный сервер имен, можно вообщеобойтись без конфигурирования! Если имя этого сервера сконфигуриро-вано в файле names.ога, то оно будет иметь вид ONAMES_<xocT>. Поумолчанию сервер ONAMES_<xocT> будет прослушивать порт 1575 прото-кола TCP/IP на локальном хосте или на другом фиксированном хосте.Таким образом, если ваша машина называется MYPC и в файле names.огаесть соответствующая запись, то стандартный сервер имен Oracle будетназываться ONAMES_MYPC.

Хранение информации в базе данныхЕсли вы решили хранить информацию сервера имен Oracle в базе дан-ных, то в первую очередь необходимо сконфигурировать сервер базыданных. Если он в данный момент не функционирует, запустите его, сое-динившись с базой данных под именем INTERNAL. В OracleSi для этогоможно использовать утилиту SQL*Plus. Введите в строке приглашенияоперационной системы:

Page 139: Oracle 8i Networking 101

Сервер имен Oracle 121

Q $ sqlplusSQL> connect INTERNAL/PASSWORD (если для пользователя INTERNAL установлен пароль)SQL> startup;

Затем, не выходя из SQL*Plus, вы должны создать учетную запись с па-ролем. Она будет использоваться для хранения таблиц сервера имен. Дляпримера выберем имя пользователя NAMES и пароль NAMESPW. Разуме-ется, вы не должны делать свой пароль таким же очевидным, как здесь.

Q create user NAMESidentified by NAMESPW

default tablespace USERStemporary tablespace TEMP;

В этом сценарии предполагается, что ваша база данных имеет два таб-личных пространства — USERS и TEMP.

Таблицы сервера имен Oracle создаются с помощью сценария namesi-ni.sql, расположенного в каталоге $ORACLE_HOME/network/admin (намашине с UNIX) или ORACLE_HOME\network\admin\names (на машинес Windows NT). Для запуска этого сценария нужно соединиться сSQL*Plus под тем именем, которое было создано на предыдущем шаге.В системе UNIX вам потребуется ввести:

Q connect NAMES/NAMESPW@$ORACLE_HOME/network/admin/namesini.sql;

Теперь, когда таблицы существуют, можно создавать серверы именOracle, используя Net8 Assistant.

Создание сервера имен Oracleс помощью Net8 AssistantЧтобы создать сервер имен Oracle, необходимо в первую очередь запус-тить Net8 Assistant. На машине с UNIX вы должны перейти в каталог$ORACLE_HOME/bin и ввести

Q run netasst

Для запуска Net8 Ass is tant в Windows NT (предположив, что$ORACLE_HOME = OraHomeSl) нужно выбрать пункт меню Start >•Programs >• Oracle OraHomeSl >~ Network Administration >• NetS Assistant.

На рис. 4.6 показан начальный экран NetS Assistant с выбранной оп-цией Oracle Names Servers. Обратите внимание на четыре пиктограммы вверхней левой части экрана. Знак плюса (+) становится зеленым при вы-боре опции, допускающей создание объекта, а буква X показывает, чтообъект может быть удален. Третья пиктограмма (диск с галочкой) пока-зывает, что сервер или службу можно протестировать. Щелкнув на знакевопроса (?), вы получите справку. Вдоль верхнего края экрана расположе-ны четыре раскрывающихся меню: File, Edit, Command и Help. Для вы-полнения отдельных задач можно пользоваться либо этими меню, либопиктограммами.

При описании дальнейших шагов предполагается, что в вашей средееще не создавались серверы имен Oracle. В противном случае экраны

Page 140: Oracle 8i Networking 101

122 Глава 4

Рис. 4.6. Начальный экран Net8 Assistant с выбранной опциейOracle Names Server

будут выглядеть по-другому. После запуска Net8 Assistant выполните следу-ющие действия:

1. В панели навигатора выберите опцию Oracle Names Servers.

2. Выберите пункт Create (Создать) в раскрывающемся меню Edit илищелкните на кнопке со знаком плюс (+) в верхней левой части окна,чтобы создать новый сервер имен Oracle. При этом запустится мас-тер имен (Names wizard).

3. Мастер имен предложит указать:

• Уникальное имя сервера имен Oracle• Адрес протокола для нового сервера имен. (В случае TCP/IP

корпорация Oracle рекомендует использовать стандартныйпорт 1575.)

• Будет ли информация об именах храниться в базе данных или ти-ражироваться между серверами имен. Для создания сервера, хра-нящего информацию в базе данных, выберите "Use a regiondatabase" ("Использовать региональную базу данных"). Таблицыэтой базы данных должны быть созданы до запуска мастера имен

• Адрес протокола для прослушивающего процесса базы данных.(В случае TCP/IP корпорация Oracle рекомендует использоватьстандартный порт 1521.)

• Имя пользователя и пароль учетной записи, которая будет испо-льзоваться для заполнения таблиц, а также имя службы или SID

Page 141: Oracle 8i Networking 101

Сервер имен Oracle 123

базы данных. В данном примере выбрано имя NAMES и парольNAMESPW, а для SID указано значение ORCL

• Будет ли данный сервер имен Oracle принадлежать к корневомуадминистративному региону

4. Если вы обозначили создаваемый сервер как корневой, то мастеримен завершит свою работу. В противном случае мастер решит, чтосервер принадлежит к делегированному административному регио-ну, и дополнительно предложит ввести имя домена локального адми-нистративного региона и адрес сервера имен корневого региона.

5. В документации Oracle сказано, что после завершения работы масте-ра имен вы увидите следующее сообщение:

"A Names Server, onames_server, has been created with defaultsettings. Use the Configuration Server section to modify the defa-ult configuration".

("Сервер имен, onames_server, был создан с параметрами поумолчанию. Используйте раздел Configuration Server для изме-нения конфигурации по умолчанию".)

• - , , • - . :

ВниманиеЯ не получила такого сообщения о завершении,но щелкнув на знаке минуса (-) рядом с опцией OracleNames Server в панели навигатора, обнаружила,что он превратился в знак плюса (+). Затем я щелкнулана знаке плюса, и появился новый сервер имен Oracle.(На рис. 4.7 показано, как выглядит экран со вновьсозданным сервером имен.)

6. Выберите пункт меню File >• Save Network Configuration (Файл >• Со-хранить сетевую конфигурацию). Вы можете создать и другие серве-ры имен Oracle, повторив шаги со 2-го по 6-й.

ВниманиеNet8 Assistant не поддерживает создание болеечем одного сервера имен Oracle на одной машине.

На рис. 4.7 показано окно Net8 Assistant с одним сконфигурированнымсервером имен Oracle.

Создав свой первый сервер имен Oracle (или несколько серверов) ивыйдя из программы, вы обнаружите, что Net8 Assistant создал файл сименем names.ога. Как минимум в нем будут присутствовать параметры изначения, перечисленные в таблице 4.3.

Page 142: Oracle 8i Networking 101

124 Глава 4

А 0 wait time cancels an already scheduled operation

Operation

I Setver Operations

Рис. 4.7. Окно Net8 Assistant с одним сервером имен Oracleв панели навигатора

Таблица 4.3.Минимальное содержимое файла names.ora

Параметр Значение

names.serverjiame

names.addresses

names.adminjegion

Имя сервера имен Oracle

Адрес, прослушиваемый сервером имен Oracle

Информация о базе данных

Полный список параметров names.ora вы сможете найти в приложении В.

Конфигурирование множественных доменовЕсли вы используете метод иерархического именования и хотите, чтобырегион содержал более одного домена, то с помощью Net8 Assistant мож-но определить дополнительный домен (или домены). При описании этихшагов предполагается, что вы не выходили из инструмента и соединеныс ним.

1. Щелкните на опции Oracle Names Servers в панели навигатора.

2. Выберите сервер имен, который будет использоватьсядля администрирования домена.

3. В списке на правой панели выберите пункт Configure Server(Конфигурирование сервера).

4. Щелкните на вкладке Domains (Домены).

Page 143: Oracle 8i Networking 101

Сервер имен Oracle 125

5. Введите в поле Domain Name имя домена, затем укажите времяжизни (time-to-live, TTL) и щелкните на кнопке Add.

6. Повторите шаг 5-й, если нужно добавить другие домены.

7. Закончив добавление доменов, выберите пункт меню File >- SaveNetwork Configuration.

Время жизни — это число, которое будет присвоено параметруmin_ttl. Значение по умолчанию — 86400.

Подробнее о кэш-памяти сервера имен OracleКак уже упоминалось, сервер имен Oracle может хранить информацию обименах в кэше (области памяти) и тиражировать новую информацию надругие серверы имен. Информация, хранящаяся в кэше сервера имен, пе-риодически записывается в дисковые файлы. Таких файлов три. На ма-шинах с UNIX они находятся в каталоге $ORACLE_HOME/network/names, а на машинах с Windows NT — в каталоге ORACLE_HOME\net-work\names. Имена файлов и типы хранимой в них информации приве-дены в таблице 4.4.

Процедура создания сервера имен будет отличаться от описаннойвыше только тем, что вместо "Use a region database" в мастере имен нужноуказать "Don't use a region database".

Таблица 4.4.Файлы конфигурации сервера имен Oracle

Имя файла Назначение

ckcfg.ora Содержит резервную копию параметров конфигурации, хранимыхв таблице ONRS_CONFG региональной базы данных.

ckpcch.ora Содержит все текущие неподтвержденные данные, которые были полученыиз удаленных регионов и еще не потеряли актуальности.

ckpreg.ora Содержит все подтвержденные данные для региона. При использованиирегиональной базы данных этот файл контрольной точки представляетсобой копию таблиц по состоянию на момент последней перезагрузки.Его данные используются в том случае, когда при запуске сервера именбаза данных недоступна. Если сервер имен Oracle не использует базуданных, этот файл является единственным долговременным хранилищеминформации и загружается при запуске сервера. При отсутствии в регионедругих серверов имен данные в файле региональной контрольной точкирассматриваются как текущие. В этом случае файл приводитсяв соответствие с последними обновлениями региона.

Теперь, когда вы создали как минимум один сервер имен Oracle, нужнонаучиться его запускать. Это делается либо через Net8 Assistant, либо с по-мощью утилиты Names Control (namesctl).

При использовании утилиты Names Control можно запустить сервердвумя способами: либо из строки приглашения операционной системы,введя полную команду, либо из самой утилиты. Правда, при вводе полной

Page 144: Oracle 8i Networking 101

126 Глава 4

команды возникает одна проблема: вы запустите тот сервер .имен, кото-рый установлен в качестве корневого для данного административного ре-гиона. Подробнее эта проблема рассмотрена чуть позже, в разделе,посвященном утилите Names Control. А пока запустим сервер имен Oracleнепосредственно из этой утилиты. Чтобы ее вызвать, нужно ввести встроке приглашения операционной системы следующее:

Q namesctl

При запуске утилиты вы можете увидеть предупреждения, показанныениже. На них можно не обращать внимания.

Q NNL-00024: warning: no preferred names servers in SQLNET.ORA•NNL-00018: warning: could not contact default name server

После входа в утилиту приглашение изменится на

Q NAMESCTL>

Теперь следует ввести команду start. Эта команда загружает серверимен Oracle в память и запускает его. При запуске сервер считывает впамять свою конфигурацию и данные. Для сервера ORCL сORACLEJHOME - OracleOraHomeSl, принадлежащего к домену .world,имя службы будет иметь вид OracleOraHomeSlNamesORCL.world (речьидет о Windows NT). На рис. 4.8 показано окно Services с выделеннойслужбой имен Oracle.

имм^ ^ н1

Service

OtacleOiaHomeBI OienlCache

Orade0.aHome81CMAdmn

OractoOraHome81DataGatherer

OrMleOraHonrie81ManagementServ«^

"'' 1OracleOiaHomeSITNSListener

QracleWebAssistantO

Startup Parameters:

Г"

Status Startup

Manual 3

Manual

Manual

Manual i•KfflfflRflHHfflHB HI 1

Started Manual

Manual

| CSS II

. - . « . ,

Sjtait •

Stop |

Pause

Continue I

Stajtup... I

НЩ Profiles... )

Help

Рис. 4.8. Окно Services с выделенной службой имен Oracle

Чтобы запустить сервер имен через Net8 Assistant, войдите в этот ин-струмент, как описывалось выше, и выполните следующие действия:

1. В панели навигатора раскройте раздел Oracle Names Servers.

2. Выберите сервер имен, который нужно запустить.

3. Выберите пункт Manage Server (Управление сервером) в спискена правой панели.

4. Щелкните на вкладке Control.

5. Выберите опцию Start.

Page 145: Oracle 8i Networking 101

Сервер имен Oracle 127

6. Щелкните на кнопке Apply (Применить).После запуска сервера вы должны увидеть следующее сообщение:

Server started successfully. (Сервер успешно запущен.)

Если вы работаете на машине с Windows NT, то будет создана соответ-ствующая служба.

Об открытияхНа днях я обнаружила, что в Интернете можно получать информацию окурсе принадлежащих мне акций. Для моего мужа недавно стало открыти-ем, что он может обрадовать меня, вымыв посуду. А что интересного об-наружили вы за последние несколько недель? Чтобы составить списоксвоих недавних открытий, вам придется порыться в памяти или попро-сить кого-нибудь помочь. Например, вы можете спросить своего друга:"Удалось ли нам узнать что-нибудь новое за последние несколько недель?Если да, то что именно?"

Когда клиент или один из серверов имен Oracle создает список всехсерверов имен Oracle, этот процесс называется обнаружением (discovery).Получить информацию о всех серверах имен Oracle можно с помощьюNet8 Assistant или утилиты Names Control. Независимо от используемогоинструмента первый этап этого процесса состоит в обнаружении како-го-нибудь одного сервера имен. Затем он опрашивает все остальные сер-веры имен своей области и создает их список, отсортированный повремени отклика. В системе UNIX этот список хранится в файле.sdns.ora, а в системе Windows NT — в файле sdns.ora.

Как происходит обнаружение? Сначала предпринимается попытканайти информацию о предпочтительном сервере имен Oracle в файлеsqlnet.ora. Предпочтительным сервером считается либо ближайший кклиенту физический сервер, либо сервер, доступный через наиболее"дешевую" сетевую связь. Следующий вариант — использование адресафиксированного сервера имен Oracle. Этот адрес жестко кодируется уклиентов и на сервере. Последняя возможность — поиск локального сер-вера имен Oracle, использующего порт 1575 протокола TCP/IP.

Если ни один из трех перечисленных подходов не даст результата, тоNet8 Assistant предложит ввести адрес известного сервера имен Oracle.К сожалению, утилита Names Control в такой же ситуации выдаст сообще-ние об ошибке, и вам придется повторно ввести команду с указанием из-вестного адреса.

Новые возможности, доступные в Net8При установке сервера имен Oracle версии 8 можно либо использоватьтекущую конфигурацию версии 1 или 2, либо задействовать новые воз-можности, доступные в Oracle8.1.6, Release 2. В число этих возможностейвходит динамическое обнаружение (Dynamic Discovery), при котором об-ласть поиска не ограничивается единственным регионом или доменом.

В этой версии сервера имен Oracle служба может регистрироваться налюбом найденном сервере. После того как служба зарегистрировалась

Page 146: Oracle 8i Networking 101

128 Глава 4

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

В новой версии Net8 процедура обнаружения используется для созда-ния списка серверов имен Oracle, с которыми может контактировать кли-ент. Этот метод заменяет ручное конфигурирование, применявшееся впредыдущих версиях.

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

Хотя сервер имен Oracle версии 8 можно сконфигурировать так, чтоон не будет использовать базу данных с информацией о топологии, кор-порация Oracle рекомендует задействовать эту возможность.

. . . . <

Утилита Names Control (namesctl)Подобно утилите Listener Control (Isnrctl), запускаемой из строки пригла-шения операционной системы для управления прослушивающими про-цессами Oracle, утилита Names Control (namesctl) позволяет запускатьсерверы имен Oracle и управлять ими. Как и при использовании ListenerControl, вы можете вводить команды либо с уровня операционной систе-мы, либо "изнутри" утилиты. Для вызова этого инструмента нужно ввестив строке приглашения операционной системы следующее:

U $ namesctl

Если вы не укажете после namesctl команду, то войдете в утилиту иувидите следующее приглашение:

Q NAMESCTL>

В этой утилите доступны команды следующих типов:

• Операционные команды (stop, start, restart и т.д.)• Команды модификации (set <свойство>)• Информационные команды (status, show <свойство> и ping)• Собственные команды утилиты (exit, quit и help)

Эти команды позволяют централизованно управлять всеми серверамиимен Oracle, а также просматривать и модифицировать их параметры.Подробно описаны различные команды будут позже, а пока посмотрим,как выполняется миграция с локального именования на сервер именOracle.

Page 147: Oracle 8i Networking 101

Сервер имен Oracle 129

Миграция с tnsnames.ora на сервер имен OracleПосле создания сервера имен Oracle вы можете загрузить на него сущест-вующий файл tnsnames.ora, использовав для выполнения миграции либоNet8 Assistant, либо утилиту namesctl. Иными словами, вам не нужно изоб-ретать колесо и вручную вводить все конфигурационные данные.

На практике миграцию намного проще выполнить с помощью утили-ты Names Control. Чтобы загрузить файл tnsnames.ora на сервер именOracle через эту утилиту, вы должны сделать следующее:

1. Вызвать namesctl, введя в строке приглашенияоперационной системы

namesctl

2. В строке приглашения NAMESCTL ввести

NAMESCTL> load_tnsnames tnsnames.ora

При желании вы можете загрузить файл с помощью Net8 Assistant. Со-ответствующие шаги описаны ниже. Как и в предыдущей процедуре,здесь предполагается, что вы уже создали как минимум один сервер именOracle.

1. Запустите Net8 Assistant. В системе UNIX для этого нужно запуститьпрограмму netasst из каталога $ORACLE_HOME/bin, а в системеWindows NT выбрать пункт меню Start >• Programs ">• OracleHOME_NAME >• Network Administration >- Net8 Assistant.

2. В панели навигатора раскройте список Oracle Names Servers,щелкнув на знаке плюса (+).

3. Выберите сервер имен Oracle, на который нужно загрузить файлtnsnames.ora.

4. В верхней части правой панели находится раскрывающийся список,содержащий пункты Manage Server, Manage Data, Configure Server.Выберите опцию Manage Data (Управление данными).

5. При выборе опции Manage Data по умолчанию отображаетсявкладка Net Service Names (Имена сетевых служб).

6. К возможным действиям, перечисленным под заголовком Action,относятся Query (Запросить), Add (Добавить), Remove (Удалить)и Load (Загрузить). Щелкните на Load.

7. В поле File введите путь к текущему главному файлу конфигурацииtnsnames.ora.

8. Щелкните на кнопке Execute.

9. Выберите пункт меню File >• Save Network Configuration.

Page 148: Oracle 8i Networking 101

130 Глава 4

Команды Namesctl - ••'•Изучая утилиту Listener Control (Isnrctl) в главе 3, мы останавливались накомандах, относящихся к прослушивающему процессу,. Утилита NamesControl (namesctl), как и Listener Control, имеет набор команд, начинаю-щихся с set и show. Поскольку они работают аналогично командам Liste-ner Control, рассмотрим их в первую очередь.1

Команды set и show . . .Очевидно, что команда show предназначена для просмотра текущих зна-чений параметров конфигурации сервера имен Oracle, а команда set —для их инициализации или модификаций. Квалификаторы, которые мож-но использовать с командой set, перечисленьх в таблице 4.5.

Таблица 4.5.Квалификаторы команды set утилиты namesctl

Квалификатор команды Описание

cache_checkpoint_interval

default_domain

••

forwarding_available

log_file_name

log_stats_interval

Устанавливает частоту сохранения всей собранной информацииоб удаленных регионах в локальном файле кэша, которому поумолчанию присваивается имя ckpcch.ora. Значение указываетсяв секундах.Минимальное значение: 10 секундМаксимальное значение: 259200 (3 дня)Значение по умолчанию: Ч0 (сохранение запрещено)

Задает домен, в который клиент namesctl чаще всего направляетзапросы на разрешение имен, или изменяет домен, заданныйпараметром names.default_domain файла sqlnet.ora. Имя доменабудет автоматически добавляться к любому неквалифицированно-му имени сетевой службы или имени службы.

Разрешает или запрещает перенаправление клиентских запросовудаленным серверам имен'Oracle.Аргументы: ON, OFF, YES, НОПо умолчанию: OFF

Определяет имя файла журнала, используемого серверомимен Oracle.По умолчанию: names.log

Изменяет частоту, с которой ведется запись статистики в файлжурнала. Время изме^яется'й секундах. Вы можете-указать любуюдопустимую комбинацию единиц' измерения, например, количест-во дней в сочетании с количеством часов, минут и секунд илипросто количество часбв. чМинимальное значение: 10 секундМаксимальное значение: отсутствуетЗначение по умолчаний: 0 (протоколирование не ведется)Примеры: set log_stats_interval 129600

set log_statsjnterval 1 day 12:00:00(В обоих случаях устанавливается интервал 36 часов.)

Page 149: Oracle 8i Networking 101

Сервер имен Oracle 131

Таблица 4.5 (продолжение)Квалификаторы команды set утилиты namesctl

Квалификатор команды Описание

NAMESCTLJraceJevel

password

requests_enabled

reset stats interval

save_config_interval

save_config_on_stop

Устанавливает уровень трассировки утилиты Names Control.Аргументы:OFF — трассировка выключенаUSER — трассировка для идентификации ошибок, вызванныхдействиями пользователяADMIN — трассировка для идентификации проблем, связанныхс программным обеспечениемSUPPORT — трассировка, ориентированная на службу поддержки

Устанавливает пароль, требуемый для выполнения привилегиро-ванных команд namesctl, например STOP, RESTART, RELOAD.Команда set password не изменяет пароль сервера имен Oracle.Она просто устанавливает значение соответствующей переменнойnamesctl, которая посылается серверу имен вместе с каждойкомандой. Если это значение совпадает с тем, которое хранитсяна сервере, то выполнение операции, требующей пароля,разрешается. При пересылке по сети пароль всегда шифруется.

Определяет, будет ли текущий сервер имен Oracle реагироватьна запросы. Если это свойство имеет значение OFF, то всеклиенты, посылающие запрос на разрешение имени, будутполучать отказ. Это применяется главным образом для диагности-ки, когда сервер имен функционирует непредвиденным образом.Возможные значения: ON, OFF.

Изменяет период обнуления (или установки начальных значений)дли статистики на текущем сервере. Время измеряетсяв секундах.Минимальное значение: 10 секундМаксимальное значение: отсутствуетЗначение по умолчанию: 0 (статистика никогда не сбрасывается)(Эта команда работает точно так же, как log_statsjnterval.)

Сохраняет в файле names.ora любые изменения, выполненныекомандами namesctl set на протяжении заданного интервала.Время измеряется в секундах.

Определяет, будут ли изменения, выполненные командамиnamesctl set, сохраняться в файле names.ora после завершениясеанса namesctl. Сохранение всех значений происходитнепосредственно перед выходом из утилиты, при этомв максимально возможной степени сохраняются форматирование,комментарии и регистр символов.Возможные значения: ON, OFF

Page 150: Oracle 8i Networking 101

132 Глава 4

Таблица 4.5 (продолжение)Квалификаторы команды set утилиты namesctl

Квалификатор команды Описание

server Задает имя сервера имен Oracle. Если аргументы не указаны,то используется значение, хранящееся в параметреnames.preferred_servers файла sqlnet.ora. Используйте этукоманду для переключения между множественными серверами.Квалификатор server может представлять собой либо адрес,либо имя сервера, информация о котором в данный моментхранится в памяти сервера имен Oracle,

trace_file_name Задает имя файла трассировки для сервера имен Oracle.По умолчанию: names.trc

tracejevel Устанавливает уровень трассировки сервера имен Oracle.Аргументы:OFF — трассировка выключенаUSER — информация для пользователяADMIN — информация для администратораSUPPORT — информация для глобальной службы поддержки

Команда show в основном имеет те же квалификаторы, что и командаset. У нее отсутствует Квалификатор password, но зато добавлены три до-полнительных квалификатора: status, system_queries и version. Они описа-ны в таблице 4.6.

Таблица 4.6.Дополнительные квалификаторы команды show

Квалификатор команды Описание

status Показывает общую информацию о состоянии сервера именOracle. Для просмотра состояний нескольких серверов укажитеих имена через пробел.

system_queries Показывает время следующего выполнения всех системныхзапросов. Эта команда применима только в распределеннойсреде и показывает, на какое время запланирован следующийсистемный запрос. Важна при определении момента выдачикоманды restart.

version Показывает текущую версию и имя сервера имен Oracle;с ее помощью очень удобно определять текущий сервер,

Остальные командыКоманды set и show — это лишь две из многих команд, доступных в утили-те Names Control. Краткие описания остальных команд приведены в таб-лице 4.7. За более подробной информацией обращайтесь к руководствуадминистратора Net8 (Oracle Net8 Administrator's Guide, Release 8.1.6).

Page 151: Oracle 8i Networking 101

Сервер имен Oracle 133

Таблица 4.7.Команды утилиты namesctl

Команда Описание

delegate_domain Определяет домен как начало подрегиона в текущемадминистративном регионе.

domain_hint Позволяет определять указания доменов (domain hints) для запросаданных из удаленных регионов. Указание домена содержит имяудаленного домена и как минимум один адрес сервера имен Oracleиз этого домена. Это позволяет серверу имен Oracle направлять запроссразу по конкретному адресу, что сокращает сетевой трафик. Еслиуказание домена отсутствует, то сервер имен направляет запроскакому-либо из известных ему удаленных серверов имен, которыйпередает запрос корневому серверу имен своего региона. Корневойсервер имен направляет запрос тому серверу имен, который содержитинформацию об указанном в запросе домене.

dumpjdap Собирает все подтвержденные данные из домена или регионаи экспортирует их в LDAP-совместимую службу каталогов или в файлLDIF (LDAP Data Interchange Format — формат обмена данными LDAP),который затем может быть загружен в каталог.

dumpjnsnames Записывает имена и адреса всех служб локального региона в файлtnsnames.ora.

exit Завершает работу утилиты Names Control.

flush Указывает серверу имен Oracle на необходимость очистить от всей информации об удаленных регионах локальный файл контрольной точки(по умолчанию это файл ckpcch.ora).

flush_name Указывает серверу имен Oracle на необходимость удалить информациюо заданном регионе из локального файла контрольной точки(по умолчанию это файл ckpcch.ora).

help Выводит список всех доступных команд namesctl. В ответ на командуhelp <имя_команды> утилита выводит справку по указанной команде.

list_delegated Выводит список всех делегированных доменов корневого региона илиуказанного домена.

list_domains Выводит список всех доменов корневого региона или поддоменовуказанного домена.

list_objects Выводит список всех сетевых объектов корневого региона илиуказанного домена.

loadjnsnames Загружает на сервер имен Oracle все имена сетевых служб,определенные в одном или нескольких файлах tnsnames.ora.

log_stats Записывает текущую статистику в файл журнала данного сервера именOracle. По умолчанию это файл names.log.

password Устанавливает зашифрованный пароль для привилегированных командутилиты Names Control.

ping Связывается с текущим сервером имен Oracle или с указаннымисерверами имен Oracle, показывая время отклика.

Page 152: Oracle 8i Networking 101

134 Глава 4

Таблица 4.7 (продолжение)Команды утилиты namesctl

Команда Описание

query Показывает содержимое сетевого объекта, хранимого на сервере именOracle.

quit Завершает работу утилиты Names Control. . - —

register Регистрирует сетевой объект на'оервёре имен Oracte. •

reload Заставляет сервер имен Oracle немедленно проверить егоадминистративный регион на наличие измёй&шй данник! При наличииизменений сервер имен заново загружает все имена служб баз данных,имена сетевых служб, глобальные связи баз данных и псевдонимы.

reorderjis Создает файл со списком локальных серверов имен Oracleи прослушиваемых ими адресов.

repeat Позволяет многократно выполнять команды query, register,timed.query или unregister для вычисления средней скорости возвратарезультатов.

reset_stats Возвращает статистические показатели сервера имен Oracle кисходным значениям, которые они имели при запуске сервера.

restart Возвращает сервер имен Oracle в исходное состояние, которое он имелпосле запуска.

set Выводит список команд конфигурирования, доступных в текущемсеансе namesctl.

show Выводит список команд show, доступных в текущем сеансе namesctl.В ответ на одну из этих команд namesctl показывает текущее значениесоответствующего параметра.

shutdown Останавливает один или несколько серверов имен Oracle.

start Запускает программу службы имен Oracle и инициирует загрузкусистемных данных и данных лсжаМЬиЙгааЙ^иниегф^иеЙЬго региона.

start_client_cache Запускает клиентский кэширующ'ий процес'с. '

startup Запускает программу службы имен Oracle и инициирует загрузкусистемных данных и данных локального административного региона.

status Показывает статистику для одного или нескольких^серверов именOracle, а также некоторые их внутренние установки.

stop Останавливает один или несколько серверов имен Oracle.

timed_query Показывает все данные, находящиеся в кэше сервера имен Oracle,

unregister Удаляет сетевой объект с сервера имен Oracle,

version Показывает текущую версию и имя сервера имен Oracle.

Page 153: Oracle 8i Networking 101

Интернет-каталогOracle

Page 154: Oracle 8i Networking 101

136 Глава 5

недавно мне потребовалось связаться с местным отделением Управ-ления социального обеспечения (Social Security Administration, SSA). Я от-крыла телефонную книгу и заглянула в раздел с голубыми страницами,где приводятся списки федеральных правительственных учреждений.Поскольку телефонный каталог организован по алфавиту, я быстро выяс-нила, что SSA имеет номер 1-800 и свою Web-страницу.

На основании этого примера можно предположить, что каталог пред-ставляет собой механизм или объект, используемый для хранения инфор-мации об одном и более предметах. Каталоги, создаваемые в логическойпоследовательности (подобно тому, как телефонная книга упорядоченапо алфавиту), позволяют нам быстро получать конкретную информацию.

Опираясь на приведенное выше определение каталога как объекта, вкотором хранится информация об одном и более предметах, нетрудно об-наружить вокруг себя другие разновидности каталогов. Словарь представ-ляет собой каталог слов. Поваренную книгу можно считать каталогомрецептов. Прайс-лист из компьютерного магазина — это каталог товаров,доступных для приобретения. А как насчет программы телевидения? Ещепример каталога — это энциклопедия, в которой собрана воедино разно-образная информация.

Какие каталоги применяются в сетях, не считая каталогов операци-онной системы, хранящих файлы конфигурации Net8? В этой главе мырассмотрим новое средство OracleSi — Интернет-каталог (Oracle Inter-net Directory, OID). OID рассчитан на работу с упрощенным протоколомдоступа к каталогу (Lightweight Directory Access Protocol, LDAP). Звучитнемного устрашающе, но не беспокойтесь. Далее подробно рассказанооб LDAP, равно как и о том, что такое Интернет-каталог, зачем он мо-жет понадобиться и как выполнять его начальное конфигурирование.Поскольку Интернет-каталог Oracle — это очень сложный инструмент,рассказать о нем все в рамках одной небольшой главы не представляет-ся возможным. Цель этой главы состоит в том, чтобы помочь вам разо-браться в основах этой технологии. За более подробной информациейрекомендую обращаться к руководству по администрированию Интер-нет-каталога (Oracle Internet Directory Administration Guide, Release 2.0.6), из-данному корпорацией Oracle. Итак, приступим к изучению электронныхкаталогов.

Различные виды каталоговПеред тем как двигаться дальше, следует пояснить один момент. В этойглаве слово "каталог" означает специализированную электронную базуданных, в которой хранится довольно специфичная информация, орга-низованная строго определенным образом. Речь не идет о компьютерныхкаталогах, в которых хранятся файлы. Возможно, вам будет трудно прео-долеть этот стереотип. Если вы хоть сколько-нибудь работали с компыо-

. . . . терами, то знаете, что файлы хранятся в отдельных каталогах, что

Page 155: Oracle 8i Networking 101

Интернет-каталог Oracle 137

позволяет обращаться к ним более простым и логичным образом. Каж-дый каталог имеет свое имя, которое прямо или косвенно говорит о том,что в нем хранится.

Итак, мы все знаем, что такое компьютерный каталог. Но что нам из-вестно о той разновидности каталога, которую предстоит изучить в этойглаве? Каталог, имеющийся в виду, представляет собой специализирован-ную базу данных для хранения информации определенного типа. Напри-мер, в почтовой программе вы можете создать список имен и адресовсвоих друзей. В некоторых почтовых программах можно открыть адрес-ную книгу, набрать несколько первых букв, и подпрограмма поиска выве-дет имена, начинающиеся на эти буквы. Адресная книга доступна толькоиз почтовой программы.

Каталоги такого вида хорошо подходят для работы с любыми инфор-мационными ресурсами, требующими управления. Например, они ши-роко применяются для хранения имен компьютеров, их IP-адресов идругой информации о местонахождении, требуемой для разрешенияимен сетевых служб, а также списков авторизованных пользователей иих привилегий.

Теперь обратимся к реляционной базе данных. Не является ли она меха-низмом, используемым для организации и хранения информации? Не со-стоит ли она из набора файлов с данными и метаданными, хранящихся вкаталогах? Все электронные базы данных, с которыми я встречалась, со-стояли из файлов, расположенных в каталогах. Но помните, что сейчасмы говорим не о каталогах файловой системы. Речь идет о реляционныхбазах данных и базах данных каталогов, поэтому сначала выясним, чтоотличает реляционную базу данных от базы данных каталогов.

Реляционная база данных в сравнениис базой данных каталогаПрежде всего взаимодействие с реляционной базой данных осуществля-ется не так, как с базой данных каталога.

Посмотрим, как происходит работа с реляционной базой данных. До-пустим, вы используете базу данных своего местного колледжа. В табли-цах этой базы данных содержатся сведения о курсах, читаемых вколледже, личные данные каждого студента, списки курсов, на которыхзарегистрирован каждый студент, отметки студентов, а также регистра-ционные формы. Будучи студентом, вы можете просматривать регистра-ционную форму и записываться на те или иные курсы, модифицироватьсвои личные данные, просматривать расписание занятий, а возможно, исвои отметки. В качестве преподавателя вы можете вводить тестовыебаллы и отметки студентов, а также пользоваться реляционными свойст-вами базы данных для соединения информации об успеваемости с личны-ми данными каждого студента. Как ассистент вы можете обрабатыватьданные о регистрации студентов на курсах, добавлять, обновлять илиудалять информацию о курсах.

Page 156: Oracle 8i Networking 101

138 Глава 5

Итак, фактически вы выполняете многочисленные операции ввода иобновления, к которым иногда добавляются операции удаления и запро-сы. Если теперь предположить, что вы просматриваете документы из хра-нилища данных, то в этом случае вам не требуется выполнять какие-либоманипуляции с данными; реляционная база данных по большей частииспользуется для хранения, извлечения, ввода, обновления и удалениябольшого количества элементов данных. Таким образом, можно с уверен-ностью сказать, что реляционная база данных ориентирована на интен-сивную запись и хранение весьма разнородной информации. Системауправления реляционной базой данных ожидает найти информацию в со-вершенно конкретных местах — в определенных файлах данных, распо-ложенных на определенных машинах. Информация о местонахожденииданных хранится в словаре данных.

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

Серверы каталоговНаконец, мы подошли к главной теме этой главы. Сначала рассмотримсерверы каталогов в общем, а затем перейдем к описанию Oracle-реализа-ции сервера каталога LDAP. В то время, когда писалась эта глава, кор-порация Oracle использовала для своей новой технологии термин"Интернет-каталог Oracle". При описании общих принципов построениясерверов каталогов на основе протокола LDAP будем использоватьтермин "сервер каталога LDAP", тогда как, обсуждая сервер каталога,реализованный корпорацией Oracle, будем ссылаться на него как на"Интернет-каталог Oracle".

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

Вернемся к серверам имен Oracle, рассмотренным в главе 4. Создаваясервер имен, вы можете объявить, что он будет хранить информацию обименах в кэше. При таком способе хранения вновь зарегистрированныеимена сразу же передаются всем остальным серверам имен региона. Сер-верное приложение ожидает найти одну и ту же информацию на любомиз серверов, к которому оно обратится с запросом. Что происходит, ког-да клиентский запрос не может быть выполнен локально? В этом случаесервер либо самостоятельно находит и возвращает запрашиваемую

Page 157: Oracle 8i Networking 101

Интернет-каталог Oracle 139

информацию, либо указывает клиенту на ее местонахождение. Разумеет-ся, все это делается прозрачным для клиента способом.

Подобно серверу имен Oracle, сервер каталога LDAP позволяет транс-лировать запрос на определение местонахождения объекта из однойформы в другую; Однако в отличие от сервера Oracle он может обеспечи-вать трансляцию не только для объектов Oracle. Сервер каталога LDAPможет связывать приложения и ресурсы, находящиеся на разных маши-нах, в разных сетях и даже в разных географических регионах.

Предположим, что вы потратили много времени на настройку пользо-вательской среды своего рабочего компьютера. Теперь рабочий стол вы-глядит именно так,'как нужно, а цвета фона и переднего плана идеальносоответствуют вашему вкусу. Ваш пользовательский профиль хранитсялокально на рабочем компьютере. Когда вы входите в сеть из дома, этотпрофиль недостугген. Чтобы настроить домашний компьютер точно также, как'рабочий; придётся все! повторять заново. Согласитесь, что былобы очень уДобно иметь доступ к своему профилю из любой точки земногошара. Такую возможность как раз и предоставляет каталог.

' . Bftoqi-JTiVafffd нн^птг:; - •; > , •

Серверы каталогов LDAPЕсли вы водите автомобиль, то знаете, что существует много правил и ин-струкций, которым необходимо следовать. Эти правила и инструкциирегламентируют действия^ которые вы должны предпринимать в тех илииных ситуациях, чтобы не нарушать законы своей страны. Например,правила могут требовать, чтобы вы не превышали определенную ско-рость при движении мимо школы или останавливались перед знаком"stop". Вам может быть разрешено выполнять правый поворот на крас-ный сигнал светофора после остановки, если рядом нет знака, которыйзапрещает это делать. Все эти правила и инструкций были созданы длятого, чтобы сделать движение спокойным и безопасным.

В главах 1 и 2,мы рассмотрели различные протоколы, лежащие в осно-ве сетевых технологий Oracle. Вспомните, что протоколы — это наборыправил, определяющие способ транспортировки данных по сетям. По-добно правилам дорожного движения протоколы обеспечивают эффек-тивную и безопасную передачу сетевого трафика.

Одним из достоинств сервера каталога LDAP является то, что он по-зволяет, централизованно хранить много различных видов информации.Этот сервер можно использовать в качестве центрального репозиториядля описаний всех, сетевых компонентов базы данных, пользовательскихи корпоративных политик и даже аутентификационных данных. При на-личии единого репозитория изменения нужно выполнять только в одномместе, а не в потенциально огромном количестве файлов. Кроме того,отпадает необходимость держать файл tnsnames.ora на каждой клиент-ской машине и на каждом сервере. Поскольку в каталоге хранятся именадругих служб, вы можете устанавливать соединения по различным прото-колам, используя единую конфигурацию.

Page 158: Oracle 8i Networking 101

140 Глава 5

Сервер каталога LDAP имеет и ряд недостатков. Прежде всего, если увас есть только один центральный сервер каталога, то при его недоступ-ности выполнение запросов станет невозможным. И как быть, если при-ложение, которое вы пытаетесь запустить, не имеет доступа к сети илиразделено таким образом, что не может обращаться к серверу каталога?

Другая проблема состоит в том, что клиенты должны иметь доступк серверу каталога LDAP, а это означает наличие потенциальной бреши всистеме безопасности. Наряду с пользователями доступ к информациио сетевых компонентах и корпоративных политиках могут получить ивзломщики. Следует заострить внимание на этих проблемах для того,чтобы вы учитывали их в процессе проектирования и конфигурированиясвоего сервера каталога. При тщательном предварительном планирова-нии многих из них можно избежать.

Например, можно организовать локальное кэширование данных, счи-танных с сервера каталога, на тот случай, если сервер будет отключенили станет недоступным по какой-либо другой причине. Кэшированныеданные не обязательно будут отражать самые последние изменения, ноосновная часть необходимой информации останется доступной.

Итак, мы получили достаточно много важной, но второстепенной ин-формации о сервере каталога LDAP, но практически ничего не узнали оего устройстве. Далее кратко рассмотрим историю LDAP, а также некото-рые "правила дорожного движения", чтобы лучше понять, с чем имеемдело.

Краткая история сервера каталога LDAPУпрощенный протокол доступа к каталогу (LDAP) разработан группой поинженерным проблемам Интернета (Internet Engineering Task Force,IETF) и является открытым стандартом. Из других известных разработокIETF достаточно назвать протоколы TCP/IP, DNS, SMTP, NNTP, SNMP иHTTP.

Х.500, служба каталогов OSI, вобрала в себя много хороших идей, нооказалась непригодной для реализации и развертывания в Интернетеиз-за сложности и тяжеловесности. С реализациями Х.500 трудно рабо-тать, они требуют больше компьютерных ресурсов, чем есть в распоряже-нии среднего пользователя. Первоначально LDAP разрабатывался какдополнение протокола доступа к каталогу (Directory Access Protocol)Х.500. Он предоставляет около 90 процентов функций Х.500 при почтидесятикратном снижении требований к ресурсам. Упрощение доступа ккаталогу достигается за счет следующих решений:

• LDAP работает непосредственно поверх TCP/IP, что исключает из-держки на обращение к верхним уровням коммуникационного стекаOSI, используемого в Х.500.

• Исключены редко используемые возможности Х.500 и избыточныеоперации, что значительно упрощает функционирование.

• Большинство элементов данных имеют простой строковый формат,тогда как в Х.500 используются более сложные структурированныепредставления.

Page 159: Oracle 8i Networking 101

Интернет-каталог Oracle 14J[

• Используются упрощенные версии правил кодирования данных, пе-редаваемых по сети.

Сначала LDAP использовался в качестве клиентской части протоколаХ.500. LDAP-клиент соединялся с сервером LDAP, который, в свою оче-редь, передавал запрос серверу Х.500. При этом сохранялись затраты навзаимодействие с медленным и громоздким сервером Х.500, выполняв-шим фактическую обработку запроса. Со временем модель LDAP была от-делена от протокола Х.500, что позволило разработать автономныйсервер LDAP. В этой модели LDAP-клиент посылает запрос непосредст-венно к серверу LDAP и немедленно получает от него ответ. ИсключениеХ.500 из процесса обработки позволяет серверам LDAP функциониро-вать так же, как и любым другим Интернет-серверам — с очень небольши-ми издержками и полной интегрированностью в среду Интернета.

Операции LDAP, хранение информации в каталоге и методы работы сним полностью описываются четырьмя базовыми моделями. К нимотносятся:

• Информационная модель. Определяет возможные типыхранимых данных.

• Модель именования. Определяет, как могут бытьорганизованы данные в каталоге LDAP и как на них ссылаться.

• Функциональная модель. Описывает, что можно делатьс данными, как к ним обращаться и как их обновлять.

• Модель безопасности. Определяет методы защиты данныхв каталоге LDAP от несанкционированного доступа.

Рассмотрим каждую из этих моделей, чтобы лучше понять устройствои работу сервера каталога LDAP.

Информационная модельКак можно описать человека? Обычно говорят о том, мужчина это илиженщина, высокий он или низкий, толстый или худой, какой у него цветглаз и волос.

Если вы захотите использовать каталог для хранения описаний своихдрузей, то каждое такое описание будет представлено одной строкой(row), называемой также записью (entry). Записи состоят из атрибутов(attributes), таких, как рост, вес, цвет волос, цвет глаз и пол. С каждыматрибутом связываются определенные правила. Наборы этих правил на-зываются типами. Например, атрибут для цвета глаз может иметь типсимвольной строки и называться eyeColor. С каждым типом связывают-ся значения. Атрибут eyeColor, имеющий тип символьной строки, мо-жет принимать значения голубой, серый, черный, карий, фиалковыйи т.д. Собственно говоря, это и есть информационная модель, определя-ющая структуру записи сервера каталога LDAP. Рассмотрим эту модельподробнее.

Информационная модель LDAP определяет, какие виды информациимогут храниться на сервере каталога. Центральным понятием этой

Page 160: Oracle 8i Networking 101

142 Глава 5

модели является понятие записи. Как правило, записи связаны с объекта-ми реального мира — людьми, организациями, принтерами, адресамии т.д., однако наличие такой связи не является обязательным требовани-ем. Вы уже знаете, что записи состоят из атрибутов, содержащих инфор-мацию об объекте, и что каждый атрибут имеет тип, определяющиймножество допустимых значений. На рис. 5.1 показана общая структуразаписи LDAP. Для большей наглядности рядом показано, как будет выгля-деть запись в случае конкретного атрибута eyeColor.

Запись LDAP

Атрибут eyeColor

Тип Значение Значение Символьнаястрока Голубой Фиалковый

Рис. 5.1. Запись службы каталога LDAP с примером

Остановимся на типе атрибута. Синтаксис типа определяет, какуюинформацию допускается хранить в области значений и как будут трак-товаться значения при выполнении поиска или других операций над ка-талогом. Возьмем для примера атрибут commonName (общее имя),обозначаемый как "сп". Он имеет синтаксис caselgnoreString. Это гово-рит о том, что значения должны быть символьными строками, причемрегистр символов при сравнениях игнорируется, то есть строки"JONES", 'Jones" и 'Jones" считаются одинаковыми. Атрибут todayDateимеет идентичный синтаксис, но здесь игнорируются дефисы или про-белы в датах, в результате чего даты 10-02-2000 и 10022000 будут рассмат-риваться как одинаковые.

Атрибуты могут иметь ограничения на размер, состав, количество ар-гументов и т.д. Например, атрибут для хранения номера кредитной кар-ты может допускать ввод только одного значения, а атрибут, содержащийтекст документа, может иметь ограничение на максимальное количествосимволов, чтобы ограничить дисковое пространство, занимаемое доку-ментами. Для определения обязательных или допустимых атрибутов вмасштабах сервера используются смысловые правила (content rules). Вме-сто использования смысловых правил можно указывать в каждой записиспециальный атрибут с именем objectClass, который определяет тип за-писи и тем самым задает обязательные и необязательные атрибуты. На-пример, для записи PERSON атрибут objectClass может требоватьналичия атрибутов sn (surname - фамилия) и en (common name), а такжедругих. В базе данных эквивалентом такой структуры служит схема. Что-бы изменить текущую схему для структуры LDAP, к записи добавляютсяновые объектные классы.

Page 161: Oracle 8i Networking 101

Интернет-каталог Oracle 143

Каждая запись имеет специальный объектный класс, называемыйструктурным {structural) объектным классом. Он определяет тип записи ине может быть изменен. Остальные объектные классы называются вспомо-гательными, (auxiliary),. Их можно добавлять и удалять в соответствии сустановленными правилами доступа. Версия 3 стандарта LDAP содержитспециальный объектный класс с именем extensibleObject, который заме-щает лю.бще, текущие правила схемы. Зачем это нужно? Дело в том, чтоиногда определевие нового правила схемы и информирование клиентови серверов об этом изменении сопряжено с большими затратами ресур-сов. В таких случаях гораздо удобнее и дешевле просто замещать правиласхемы, добавляя или удаляя атрибуты по мере необходимости.

Усовершенствования в LDAP версии 3LDAP версии 3 был утвержден IETF в декабре 1997 года как стандартИнтернета. Новый стандарт содержал ряд усовершенствований, бла-годаря которьтм.корпорация Oracle смогла реализовать в своемИнтернет-каталоге: :;« ; ;

• Поддержку наборов символов любого из языков,существующих в мире.

• Глобальное развертывание информационного дерева каталога(Directory Information Tree) на множественных серверах LDAP с ис-пользованием механизма ссылок (он кратко объясняется в разделе"Ссылки LDAP')..,

• Поддержку стандартных протоколов SASL (Simple Authenticationand Security Layer) и TLS (Transport Layer Security), служащих уни-версальный! расширяемым средством защиты данных в протоколеLDAPr пмишп .

• Возможность расширения существующих операций LDAPс помощью так называемых механизмов controls.

• Публикаций} информации, пригодной для использованиядругими серверами и клиентами LDAP.

Модель именованияВ главе 2 мы говорили об иерархических структурах. Давайте еще раз об-ратимся к иерархической схеме корпорации XYZ, показанной на рис. 5.2.По сравнению с prfc. 2.5 здесь выполнено лишь одно небольшое измене-ние — добавлена Запись верхнего уровня "XYZCORP". Остальная частьэтой схемы вам уже знакома.

Хотя это и не требуется протоколом, записи в модели именованияLDAP обычно образуют дерево, отражающее географическую или орга-низационную структуру. Рис. 5.2 дает пример такой структуры. Записиименуютсй в соответствии с их положением в иерархии; каждая записьимеет отличительное имя (Distinguished Name, DN). Каждый компонентэтого имени называется относительным отличительным именем (RelativeDistinguished Name, RDN). RDN может состоять из одного или несколь-ких атрибутов записи.

Page 162: Oracle 8i Networking 101

144 Глава 5

Рис. 5.2. Иерархическая схема американского отделениякорпорации XYZ

Модель именования LDAP будет проще понять, если рассмотретьорганизацию именования в файловой системе UNIX или Windows NT.RDN можно уподобить имени файла, a DN — полному пути к этому файлу.Возьмем, например, такое имя: D:\Ora816\Oracle\Network\Admin\trace_010500.trc. Где здесь DN, а где — RDN? Подумайте над ответом, апока продолжим рассказ об именовании в LDAP.

Точно так же, как два файла в одном каталоге не могут иметь одинако-вые имена, записи каталога LDAP с общей родительской записью должныназываться по-разному. В структуре LDAP информацию могут содержатькак узлы-листья, так и родительские узлы. Последовательность местона-хождений, составляющих полный путь к нужной информации, называетсяпространством имен (namespace). В файловой структуре операционной си-стемы пространство имен начинается от корня или наиболее значащегокомпонента и простирается до имени файла. Примером такого простран-ства имен служит путь D:\Oracle\Ora81\network\admin: чтобы добратьсядо файла в каталоге admin, вам нужно начать с диска D: и пройти через всепромежуточные каталоги. В структуре LDAP пространство имен начинает-ся с наименее значащего компонента имени и простирается до корня. Та-ким образом, при работе с пространством имен LDAP вы начинаете собщего имени (сп) и продвигаетесь по направлению к корню. Перед темкак переходить к конкретным примерам, обратите внимание на используе-мые разделители.

В приведенном выше имени файла разделителем служил обратныйслэш (\), хотя это может быть и прямой слэш (/), в зависимости от того,какая операционная система используется — UNIX или Windows NT.

Page 163: Oracle 8i Networking 101

Интернет-каталог Oracle 145

В LDAP компоненты имени разделяются запятыми (,). Например, записьLDAP может называться "cn=Orders, u=Vienna,st=VA, o=XYZCORP, c=US",где Orders — это общее имя, Vienna — подразделение, Virginia — штат,XYZCORP — организация, a US — страна. Относительными отличитель-ными именами в этом примере являются "cn=Orders", "u=Vienna", "st=VA"и "o=XYZCORP", а отличительным именем - "o=XYZCORP,c=US". Кстати,ответ на заданный выше вопрос таков: "D:\Ora816\Oracle\Network\Admin" - это DN, a "trace_010500.trc" - RDN.

Кажется, такой ответ может немного запутать, поэтому разберем при-мер с именем файла более подробно. Полный путь к файлу можно рас-сматривать как эквивалент отличительного имени. Допустим, что у насесть компонент pathname, обозначаемый как "рп". Следуя методу имено-

•вания LDAP, полный путь можно рассматривать как один компонент:pn=D:\Ora816\Oracle\Network\Admin. Имя файла станет общим име-нем: cn=trace_010500.trc. Если мы решим разбить компонент рп на отде-льные части, то каждая часть ниже корня станет RDN, а их комбинация,ведущая к интересующей нас области, станет DN. Смысл именования втом, чтобы обеспечить однозначность в определении местонахожденияинформации в пределах структуры LDAP.

Отличительное имя состоит из последовательности относительныхотличительных имен, разделяемых запятой (,) или точкой с запятой (;).Каждый компонент RDN представляет собой множество пар "атри-бут-значение", разделяемых знаком плюса (+). Но как быть, если сим-вол-разделитель содержится в самом значении? В таком случае значениедолжно быть заключено в двойные кавычки ("), или же символу-раздели-телю должен предшествовать escape-символ. В качестве escape-символаиспользуется обратный слэш (\). А если значение тоже содержит двой-ные кавычки или обратный слэш? Тогда перед каждым из этих специаль-ных символов необходимо ставить обратный слэш. Согласно этимправилам, запись cn=http:\\mywebaddress.com будет представлена какcn=http:\\\\mywebaddress.com. Каждый обратный слэш в общем именидолжен предваряться escape-символом, то есть тем же самым обратнымслэшем. Поскольку в результате имена могут сильно усложняться, лучшевсего отказаться от многозначных RDN, а в качестве разделителей испо-льзовать запятые.

Разумеется, здесь рассказано далеко не все о формате отличительногоимени, но приведенной информации должно быть достаточно, чтобы по-нимать, о чем пойдет речь далее, при описании Oracle-реализации серве-ра каталога LDAP.

Функциональная модельТеперь вы знаете, какого вида информация хранится в каталоге LDAP икак организовано ее именование. Посмотрим, что можно делать с этойинформацией. Фактически вам доступны девять операций трех типов:

• Операции опроса: search, compare• Операции обновления: add, delete, modify, modify RDN• Операции аутентификации: bind, unbind, abandon

6 Зак. 726

Page 164: Oracle 8i Networking 101

146 Глава 5

Операции опроса позволяют проводить поиск в структуре каталогаLDAP и извлекать информацию. Операция search используется для поис-ка информации в определенной области дерева каталога на основе крите-рия отбора, иначе называемого фильтром поиска. Эта операциявозвращает набор атрибутов (со значениями или без) для каждой записи,удовлетворяющей условию фильтрации. Клиент может указать, скольковремени он готов ожидать результатов поиска, а также ограничить раз-мер или количество выводимых записей.

Операции обновления, как следует из их названия, позволяют добав-лять, модифицировать или удалять информацию из структуры'каталога.Операция modify используется для изменения атрибутов и значений су-ществующей записи, а также для добавления или удаления атрибутов изначений. С помощью операции delete можно удалить существующую за-пись. Для изменения имени записи используется операция modify RDN.

Операции bind и unbind, относящиеся к аутентификации, выполняютосновную работу по защите информации в каталоге. Операция bind по-зволяет проверить, является ли клиент тем, за кого он себя выдает. Дляэтого клиент указывает DN и пароль, передаваемый открытым текстом.Интересно отметить, что серверу не нужно подтверждать свою аутентич-ность перед клиентом. Если аутентификация не требуется, то клиентудостаточно указать NULL вместо DN и пароля. Операция unbind исполь-зуется для завершения сеанса работы с каталогом. Операция abandon по-зволяет отменять любую операцию, находящуюся в стадии выполнения.Это очень полезно, если, например, операция поиска слишком затяну-лась. В LDAP версии 3 реализованы более надежные методы защиты, втом числе двухсторонняя аутентификация, при которой сервер такжеобязан подтверждать свою аутентичность перед клиентом.

Модель безопасностиКак можно предположить по наличию операций bind и unbind в функци-ональной модели, система безопасности основана на идентификацииклиентов, пытающихся получить доступ к каталогу LDAP. Необходимуюинформацию предоставляет операция bind. После идентификации кли-ента сервер использует сведения о правах доступа, чтобы определить,разрешен ли этому клиенту доступ к запрашиваемой информации. Поско-льку в модели LDAP средства управления доступом не предусмотрены,разработчик может реализовать ту форму управления, которая лучшевсего подходит для его системы. Однако при несогласованности методовуправления доступом, используемых в разных реализациях, можетвозникнуть проблема с тиражированием информации между этимиреализациями-. ; ,

Справочная модель LDAPКогда LDAP использовался в качестве клиентской части Х.500, предпола-галось, что за обработку всех запросов клиента и возврат окончательныхрезультатов (или сообщений об ошибках) будет отвечать сервер каталогаХ.500. Если сервер не мог удовлетворить запрос, он связывался с другимисерверами, опрашивая их от имени клиента. Это называлось сцеплением

Page 165: Oracle 8i Networking 101

Интернет-каталог Oracle 147

(chaining). Клиент ничего не знал о том, что в получение результатов егозапроса вовлекался другой сервер.

Модель сцепления оказалась слишком негибкой, чтобы эффективноработать в Интернете. По этой причине была разработана новая модель,получившая название справочной модели (referral model). Она упрощаетразвертывание серверов каталогов LDAP в сильно распределенной и не-однородной среде, которой является Интернет. В соответствии с этоймоделью, если сервер каталога LDAP не содержит запрашиваемой инфор-мации, он может направить клиента к другому серверу LDAP.

Теперь, когда у вас есть некоторое представление об истории и моде-лях LDAP, посмотрим, как корпорация Oracle реализовала эту техноло-гии) в своих базах данных.

Обзор Интернет-каталога OracleИнтернет-каталог Oracle, реализованный как приложение OracleSi,Release 2, объединяет возможности LDAP версии 3 и сервера OracleSi.В реализацию входят четыре компонента:

• Сервер каталога Oracle• Сервер тиражирования каталога Oracle• Менеджер каталога Oracle• Инструменты командной строки для администрирования

и управления данными

Сервер каталога Oracle обеспечивает выполнение клиентских запро-сов на поиск и обновление информации, используя многоуровневуюархитектуру, основанную непосредственно на TCP/IP. Сервер тиражиро-вания каталога Oracle, как подразумевает его название, обеспечивает ти-ражирование информации между серверами каталогов LDAP. Если одинсервер в сообществе тиражирования окажется недоступен, пользовательсможет получать данные каталога с другого сервера. Менеджер каталогаOracle — это графический инструмент администрирования. Вместе с Ин-тернет-каталогом Oracle поставляется также ряд инструментов коман-дной строки, предназначенных для манипулирования большимиобъемами данных LDAP.

Записи, атрибуты и объектны© классыВ главе 1, где обсуждались стандарты ISO/OSI, было отмечено, чтодетали реализации каждого уровня протоколов оставлены на усмотрениепроизводителей. Стандарты сервера каталога LDAP не являются исклю-чением. Производителям дана возможность разрабатывать код продук-тов, исходя из собственной интерпретации стандартов.

Рассматривая выше различные модели LDAP, мы познакомились сустройством сервера каталога, основанного на стандартах IETF. Теперьпосмотрим, как эти стандарты были интерпретированы и реализованыкорпорацией Oracle.

Page 166: Oracle 8i Networking 101

148 Глава 5

ЗаписиВы когда-нибудь играли в "классики"? В детстве я проводила за этой иг-рой все свободное время. На рис. 5.3. показано, как разметить площадку.Каждый из квадратов должен быть достаточно большим, чтобы в немможно было стоять и поворачиваться на одной ноге, не наступая налинии.

10

Рис. 5.3. Разметка для игры в "классики"

Чтобы начать игру, нужно найти какой-нибудь предмет для бросания.Прекрасно подойдет округлый плоский камень. Он должен быть не слиш-ком тяжелым и вместе с тем достаточно большим для выполнения точ-ных бросков. Вы вбрасываете камень в квадрат номер 1, потом прыгаетев этот квадрат, поворачиваетесь, поднимаете камень и прыгаете на ис-ходную позицию перед квадратом. Прыгать и поворачиваться нужно то-лько на одной ноге, не наступая на линии. Успешно пройдя первый этап,вы вбрасываете камень в квадрат номер 2. Прыгая из квадрата в квадрат,вы добираетесь до того места, где лежит камень, поднимаете его, не те-ряя равновесия и не наступая на линии, поворачиваетесь и прыгаете об-ратно на исходную позицию. После того как вы прошли квадрат номер 5,при дальнейших прыжках вперед и назад можно вставать двумя ногами наквадраты 4 и 5, чтобы немного отдохнуть.

Подумайте о тех действиях, которые вам только что пришлось выпол-нить. Вы двигались вперед и назад по определенному пути в соответствиис правилами игры. Вы проходили квадраты в установленном порядке, апотом, успешно забрав свой камень, возвращались в исходную точку. Те-перь посмотрим, как устроен Интернет-каталог Oracle и как определяет-ся местонахождение нужной информации.

Page 167: Oracle 8i Networking 101

Интернет-каталог Oracle 149

Каждый отдельный набор данных в каталоге называется записью(entry), а каждая запись идентифицируется отличительным именем. По-добно тому, как в нашей игре каждый номер идентифицировал квадрат иодновременно определял его местонахождение, каждое отличительноеимя идентифицирует запись и определяет местонахождение информа-ции, содержащейся в этой записи. Записи вместе со своими отличитель-ными именами образуют иерархию, называемую информационным деревомкаталога (Directory Information Tree, DIT).

Вернемся к структуре корпорации XYZ и посмотрим, как будет выгля-деть DIT для двух разных служащих с одним и тем же именем Bebop Shuz,работающих в двух разных отделах. Это дерево показано на рис. 5.4.

o=XYZCorp(4)'(Корень)Ч.

С_У5 c=France ©

\ou=Shipping ou=Purchasing (2)

«.'•/«.£ \у) cn=BebopShuz cn=BebopShuz (])

Где: Disorganization, c=country, ou=organizational unit, cn=common name

Рис. 5.4. Информационное дерево каталога с двумя служащими

Исходя из приведенных на рис. 5.4 данных, попробуйте составить от-личительные имена для каждого служащего. Помните, что о означает ор-ганизацию (organization), с — страну (country), ou — организационнуюединицу (organizational unit), a en — общее имя (common name). Нижеуровня сп находятся значения атрибутов — адрес электронной почты,местонахождение офиса и т.д. Учтите также, что атрибуты могут присут-ствовать на каждом уровне.

Составляя отличительное имя, нужно начинать с низшего уровня ипродвигаться вверх по направлению к корню, а не наоборот. Чтобы вамбыло проще сориентироваться, уровни пронумерованы. Итак, подумайтеи запищите свои ответы.

Вот как должны выглядеть эти имена: cn=Bebop Shuz, ou=shipping,c=US, o^XYZ Corp и cn=Bebop Shuz, ou=purchasing, c=France, o=XYZ Corp.Самый нижний компонент DIT, называемый относительным отличитель-ным именем (RDN), помещается на первое место, в крайнюю левую пози-цию. Затем вы двигаетесь по направлению к вершине дерева — точно также, как при игре в "классики" вы прыгали от меньшего номера к больше-му., Элемент каждого уровня также представляет собой RDN. Например,следующим RDN после Bebop Shuz будет значение ou. Можно сказать, чтоотличительное имя — это просто последовательность RDN, разделенных

Page 168: Oracle 8i Networking 101

150 Глава 5

запятыми. Чтобы найти требуемую запись в Интернет-каталоге Oracle,недостаточно указать одно RDN; необходимо использовать полное отли-чительное имя.

В примере на рис. 5.4 оба служащих имеют одинаковые имена, нооднозначность идентификации не нарушается, поскольку они работа-ют в разных подразделениях, расположенных в разных странах. А еслиони работают в одном подразделении? В таком случае нужно искатьдругие способы уникальной идентификации. Например, можно при-своить служащим идентификационные номера или дополнить именаинициалами.

АтрибутыКогда мы рассматривали общие модели сервера каталога LDAP, было упо-мянуто о том, что каждая запись состоит из атрибутов, а каждый атрибутимеет тип и набор допустимых значений. Тип указывает на то, какая ин-формация хранится в атрибуте. Например, атрибутами служащих могутбыть jobTitle (должность), salaryAmount (зарплата), departmentNumber(номер отдела), и т.д. Атрибут jobTitle может принимать значения"Менеджер", "Клерк", "Программист" или "Администратор базы данных".

В Интернет-каталоге Oracle можно хранить информацию двух видов:прикладную и служебную. Только что перечисленные значения атрибутаjobTitle служат примером прикладной информации. Эта информацияимеет отношение к клиентам, они могут извлекать ее из каталога. Слу-жебная информация, напротив, связана с функционированием самого ка-талога. Например, отметка времени для записи каталога будет влиять наработу сервера, поскольку она считывается каждый раз, когда выполняет-ся регенерация всех серверов каталогов в системе.

Атрибуты могут иметь как одно, так и множество значений. АтрибутtelephoneNumber может хранить несколько телефонных номеров служа-щего — домашний, рабочий и сотовый, тогда как атрибут gender (пол)должен иметь только одно значение. Еще одним примером многозначно-го атрибута служит атрибут для хранения адресов электронной почты.

В спецификации LDAP определено множество стандартных атрибу-тов. Все они реализованы в Интернет-каталоге Oracle. Некоторые изчасто используемых атрибутов LDAP перечислены в таблице 5.1.

Таблица 5.1.Стандартные атрибуты LDAP, используемые Oracle

Атрибут Обозначение Описание

commonName en Общее имя записи. Пример: cn=Anne Smith

domainComponent dc Компонент доменного имени в системе DNS.Пример: dc=uk,dc=acme,dc=com

jpegPhoto jpegPhoto Изображение в формате JPEG(путь и имя соответствующего файла).Пример: jpegPhoto=/photo/audrey.jpg

organization о Название организации. Пример: o=XYZCORP

Page 169: Oracle 8i Networking 101

Интернет-каталог Oracle 151

Таблица 5.1 (продолжение)Стандартные атрибуты LDAP, используемые Oracle

Атрибут Обозначение Описание

organizationalUnitName ou Название отдела внутри организации.Пример: ou=Server Development

. Л '• ' ' • > < - , : - i . > '". •owner owner Отличительное имя владельца записи.

Пример (строка из LDIF-файла):owner: cn=Anne Smith, ou=Server Development,o=Acme, c=uk

surname sn Фамилия человека. Пример: sn=Smith

telephoneNumber telephoneNumber Телефонный номер.Пример: telephoneNumber=(650)123-4567или telephoneNumber=6501234567

Интернет-каталог Oracle предоставляет также несколько собственныхатрибутов, которые можно найти в приложении F к руководству админи-стратора Интернет-каталога Oracle версии 2.0.6.

Атрибуты Интернет-каталога Oracle, как и атрибуты обобщенного сер-вера каталога LDAP, имеют определенный тип, служащий для описанияприроды хранимых значений. Например, атрибут telephoneNumber мо-жет иметь тип, запрещающий хранение каких-либо других символов, кро-ме цифр и дефисов. Другой атрибут может хранить только буквы, атретий — значения, не подлежащие выводу на печать. Интернет-каталогOracle поддерживает и реализует все стандартные типы LDAP; добавле-ние к каталогу новых типов невозможно.

Говоря выше о функциональной модели LDAP, я упомянула о сущест-вовании правил, определяющих трактовку атрибутов при выполнениипоиска. Например, значения 703-555-1212 и 7035551212 могут рассматри-ваться как совпадающие, в зависимости от того, какие правила сравненияприменяются. Интернет-каталог Oracle распознает все стандартные пра-вила сравнения LDAP:

• DistinguishedNameMatch (сравнение отличительных имен)• caseExactMatch (сравнение с учетом регистра)• caselgnoreMatch (сравнение без учета регистра)• numericStringMatch (сравнение числовых строк)• telephoneNumberMatch (сравнение телефонных номеров)

Объектные классыИтак, мы рассмотрели записи и атрибуты. Теперь перейдем к объектнымклассам. Определяя запись каталога, вы указываете в качестве ее типаодин или несколько объектных классов. Объектный класс содержит атри-буты и представляет категорию объектов. Он может иметь как обязатель-ные, так и необязательные атрибуты.

Page 170: Oracle 8i Networking 101

152 Глава 5

Для объектного класса organizationalPerson атрибуты commonName(en) и surname (sn) являются обязательными, тогда как другие, в том чис-ле telephoneNumber и streetAddress, доступны, но использовать их необязательно.

Интернет-каталог Oracle предоставляет как стандартные объектныеклассы LDAP, так и собственные объектные классы. К наборам атрибутовпредопределенных объектных классов нельзя добавлять обязательные ат-рибуты, но вы можете добавлять необязательные атрибуты к существую-щему объектному классу, а также определять новый объектный класс илиобъектный подкласс. Вы спрашиваете, что такое подкласс?

Объектный класс "top"Мой друг Винни возглавляет бейсбольную команду своей корпорации.В его команде 25 человек. Перед каждой игрой он выделяет из составакоманды девять человек, которые будут начинать игру, определяя их по-зиции на поле и последовательность ударов. На языке Интернет-каталогаOracle команда в целом представляет собой объектный суперкласс; назо-вем его baseballTeam. Группа из девяти игроков — это подкласс, произве-денный от baseballTeam. Подкласс наследует все атрибуты своегосуперкласса. Записи в Интернет-каталоге Oracle могут наследовать атри-буты множественных объектных классов.

Существует специальный объектный класс, называемый "top" ("верши-на"), который служит суперклассом для каждого структурного объектногокласса. Атрибуты вершины наследуются каждой записью каталога. В Ин-тернет-каталоге Oracle вершина имеет один обязательный объектныйкласс с именем objectClass, а также несколько необязательных атрибутов,которые перечислены в таблице 5.2.

Таблица 5.2.Необязательные атрибуты вершины

Атрибут Описание

orclGuid Глобальный идентификатор, остающийся неизменнымпри перемещении записи

creatorsName Имя создателя объектного класса

createTimestamp , Время создания объектного класса

orclACI Дополнительный атрибут, модифицируемый пользователем.Содержит информацию о политике из списка управления доступом(Access Control List)

orclEntryLevelACI Многозначный атрибут, содержащий директивы спискауправления доступом

Существует три типа объектных классов: абстрактные (abstract),структурные (structural) и вспомогательные (auxiliary). Абстрактный объ-ектный класс рассматривается как виртуальный и не может быть единст-венным объектным классом записи. Вершина — это абстрактный класс,служащий суперклассом для всех остальных объектных классов Интер-нет-каталога Oracle.

Page 171: Oracle 8i Networking 101

Интернет-каталог Oracle 153

Большинство объектных классов Интернет-каталога Oracle по своейприроде являются структурными. Структурные объектные классыопределяют, какие виды объектных классов могут создаваться под опре-деленным объектным классом. Например, структурное правило инфор-мационного дерева каталога может гласить, что все объектные классы,расположенные непосредственно под объектным классом person, дол-жны описывать физические характеристики этого лица. Это означает,что непосредственно под объектным классом person можно разместитьклассы gender, hairColor или eye-Color, но не address. Имейте в виду, чтосейчас в Интернет-каталоге Oracle не контролируется соблюдение струк-турных правил. Возможно, в будущем ситуация изменится.

Вспомогательные объектные классы позволяют расширить список ат-рибутов существующей записи, не переопределяя ее объектные классы.Допустим, вы определили запись как экземпляр двух объектных классов,а теперь хотите добавить атрибуты, не принадлежащие ни одному из них.Самое простое решение — это создать вспомогательный объектный классс необходимыми атрибутами, а потом связать его с записью, не затраги-вая существующие объектные классы. Например, у вас есть объектныйкласс horses (лошади), в который входят арабские скакуны, паломино,пинто и шотландские тяжеловозы. Вам же требуется класс, составленныйисключительно из рабочих пород. Чтобы не переопределять существую-щий объектный класс, можно создать вспомогательный класс с названи-ем workHorses.

Подзаписи и схемыВ базе данных Oracle для хранения метаданных используется специаль-ная область, называемая словарем данных (data dictionary). В этой облас-ти содержатся описания всех объектов, в том числе их имена, размеры итипы, а также много другой информации. Метаданные Интернет-катало-га Oracle, к которым относятся объектные классы, атрибуты, синтаксисыи правила сравнения, хранятся в структуре, называемой схемой словаря(dictionary schema). Информация схемы словаря хранится в записи осо-бого типа, называемой подзаписью (subentry). В стандарте LDAP вер-сии 3 этой подзаписи присвоено имя subSchemaSubentry. Добавляя новыеобъектные классы и объекты, вы тем самым модифицируете subSchema-Subentry. Добавление новых правил сравнения и синтаксисов, помимотех, что уже определены в Интернет-каталоге Oracle, невозможно.

Распределение каталогаПервые базы данных Oracle обычно размещались на одном компьютере,в одном централизованном месте. По мере развития технологий баз дан-ных, а также программного обеспечения и аппаратуры компьютеров унас появилась возможность распределять базы данных по нескольким ди-скам. Сейчас мы можем распределить базу данных по компьютерам, рас-положенным в любых точках земного шара. Одни части базы данныхмогут находиться на компьютере во Франции, тогда как другие — накомпьютере в штате Вирджиния. Для пользователей такая база данныхбудет выглядеть единой логически централизованной структурой.

Page 172: Oracle 8i Networking 101

154 Глава 5

Аналогично этому данные Интернет-каталога Oracle можно физиче-ски распределить по нескольким серверам, сохранив их логическую цент-рализацию. Такое распределение дает двойной выигрыш. Во-первых,увеличивается объем хранимых данных, а во-вторых, сокращается объемработы, которую должен выполнять каждый отдельный сервер. Крометого, устраняется потенциальное узкое место, а если один из распреде-ленных каталогов станет недоступен, то другие группы пользователейсмогут продолжать работу.

Чтобы реализовать распределение, данные каталога делятся на едини-цы, называемые контекстами именования (naming contexts). Каждый кон-текст именования представляет собой поддерево, расположенное наодном сервере и начинающееся с записи, которая играет роль вершины.Поддерево растет от вершины вниз, либо до записей-листьев, служащихконечными точками, либо до ссылок на подчиненные контексты имено-вания. Формального ограничения на размер контекста именования не су-ществует, поэтому он может содержать как одну запись, так и всеинформационное дерево каталога.

Распределение каталога выполняется либо методом тиражирования(replication), либо методом разделения (partitioning). В чем их различие?При тиражировании, как следует из самого названия, делается точная ко-пия объекта, тогда как разделение означает деление на части. Таким об-разом, для распределения каталога можно либо целиком скопироватьконтекст именования на другую машину, либо разделить его на несколькоуникальных, не перекрывающихся контекстов именования и поместитькаждый из них на отдельную машину.

Интернет-каталог Oracle и NetsЧто общего у прослушивающего процесса Oracle, сервера имен Oracle иИнтернет-каталога Oracle? Если вы скажете, что все они являются прило-жениями, которые могут выполняться на сервере OracleSi, то будете пра-вы лишь отчасти. Но если вы ответите, что все они взаимодействуют припомощи Net8, то будете правы на все 100 процентов. Дело в том, что Ин-тернет-каталог Oracle не обязательно располагается на той же машине,что и база данных Oracle, но в любом случае связывается с ней при помо-щи Net8, как это делают прослушивающий процесс и сервер имен Oracle.Для взаимодействия с базой данных OracleSi используются OCI и NetS.

Компоненты Интернет-каталога OracleНа рис. 5.5 показаны связи между клиентами LDAP и Интернет-каталогомOracle. Кроме того, здесь можно увидеть, какую роль играет NetS в осуще-ствлении связи каталога с базой данных OracleSi. Клиенты LDAP посыла-ют запросы к серверу Интернет-каталога Oracle. Сервер, в свою очередь,соединяется с базой данных OracleSi и производит поиск запрошеннойинформации. Завершив поиск, сервер возвращает результаты клиенту.

Теперь посмотрим, какие именно компоненты участвуют в этом про-цессе. В таблице 5.3 перечислены компоненты Интернет-каталога Oracleи даны их описания.

Page 173: Oracle 8i Networking 101

Интернет-каталог Oracle 155

Клиенты LDAP

СерверИнтернет-каталога

Oracle

Рис. 5.5. Связи Интернет-каталога Oracle с Net8

Параметры конфигурации отдельного экземпляра сервера каталогахранятся в конфигурационной записи, называемой configset. Команды за-пуска и останова сервера, выдаваемые из утилиты Oracle Internet Directo-ry Control (oidctl), содержат ссылку на одну из конфигурационныхзаписей. Монитор Интернет-каталога Oracle, обрабатывающий запросутилиты oidctl, использует информацию из configset. При установке Ин-тернет-каталога Oracle создается стандартная конфигурационная записьс именем configsetO. Наличие заранее сконфигурированной записи позво-ляет запускать сервер Интернет-каталога сразу же после установки. Длянастройки среды можно создавать новые записи, а также просматриватьи модифицировать уже существующие, используя менеджер OID илиинструменты командной строки. О менеджере OID будет подробно рас-сказано далее.

После запуска экземпляра монитор OID помещает соответствующуюзапись в реестр экземпляров каталога и обновляет данные в таблицепроцессов. После останова экземпляра записи из реестра и таблицыпроцессов удаляются. В случае аварийного останова экземпляра мониторпроизводит его перезапуск и отмечает в записи реестра новое времязапуска.

Действия монитора OID протоколируются, в файле журналаORACLE_HOME/ldap/log/oidmon.log. Механизмы, посредством кото-рых монитор OID контролирует состояние серверов, предоставляютсяоперационной системой.

Page 174: Oracle 8i Networking 101

156 Глава 5

Таблица 5.3.Компоненты Интернет-каталога Oracle

Компонент Описание

Экземпляр сервера ШАР

Сервер тиражирования

База данных OracleSi

Утилита OID Control(oidctl)

Монитор OID (oidmon)

Обслуживает запросы к каталогу при помощи единственногопроцесса диспетчера, прослушивающего определенный портTCP/IP (по умолчанию это порт 389, если не используется SSL,и порт 636 при использовании SSL). При наличии на машине болеечем одного сервера ШАР каждый экземпляр должен прослушиватьотдельный порт. Процессы диспетчеров и серверные процессыИнтернет-каталога Oracle используют множественные потоки.

Отслеживает изменения и рассылает их по всем серверам,входящим в систему Интернет-каталога Oracle. На узле может бытьтолько один сервер тиражирования. Наличие этого серверане является обязательным.

Хранит данные каталога. База данных может располагаться на томже узле, что и серверы, или на отдельном узле. Корпорация Oracleрекомендует использовать разные базы данных для OracleSiи сервера Интернет-каталога.

Используется для запуска или останова экземпляров серверакаталога. Команды oidctl интерпретируются монитором OID(oidmon). Для связи с oidmon утилита oidctl помещает в таблицысервера OID данные сообщений, в том числе параметрыконфигурации, необходимые для запуска экземпляров OID.

Запускает, контролирует и завершает процессы сервера ШАР.Если установлен сервер тиражирования, монитор OID будетконтролировать и его.

Обработка клиентского запросаЧтобы проследить за обработкой клиентского запроса, вы должны пони-мать, из каких компонентов состоит экземпляр сервера каталога LDAP.Прежде всего это процесс диспетчера OID, который прослушивает назна-ченный ему порт, ожидая поступления команд LDAP. Для выполнениясвоих функций процесс диспетчера OID содержит механизмы прослуши-вания и диспетчеризации.

При запуске сервера каталога LDAP создаются серверные процессы,количество которых определяется параметром конфигурации orclserver-procs. По умолчанию создается один процесс. Запуск более чем одногосерверного процесса позволяет использовать преимущества многопро-цессорных систем. Для обработки запроса каждого клиента серверныепроцессы порождают отдельный рабочий поток (worker thread). Пара-метр orclmaxcc определяет максимальное количество соединений с ба-зой данных, которые может установить каждый серверный процесс. Поумолчанию этот параметр равен 10.

Итак, посмотрим, что происходит после того, как клиент решил ввес-ти поисковый запрос.

Page 175: Oracle 8i Networking 101

Интернет-каталог Oracle 157

1. Клиент вводит поисковый запрос, который может содержать однуили несколько из следующих опций:

• SSL: протокол Secure Socket Layer обеспечивает шифрование иаутентификацию или только шифрование. Без SSL запрос посы-лается открытым текстом и может быть легко прочитан анализа-тором протоколов.

• Тип пользователя: авторизованный или анонимный — в зависи-мости от того, какие привилегии требуются для выполнениязапрашиваемой операции.

• Фильтры: используются для сужения области поиска и могутвключать булевы операторы, например AND, OR и NOT. Воз-можно также использование условных операторов GREATERTHAN, EQUAL TO и LESS THAN.

2. Для ввода команды клиент может использовать либо менеджер OID,либо инструмент командной строки. При использовании менеджераOID сначала вызывается функция запроса из собственного интер-фейса Java (Java Native Interface). Этот интерфейс, в свою очередь,обращается к интерфейсу прикладного программирования (API) С.При использовании инструмента командной строки 0-функция это-го API вызывается напрямую.

3. Запрос посылается экземпляру сервера каталога с использованиемпротокола LDAP.

4. Посредством процесса, называемого связыванием (binding), серверкаталога выполняет аутентификацию пользователя и проверяет спи-ски управления доступом (ACL), чтобы убедиться в наличии у поль-зователя привилегий, позволяющих выполнять запрашиваемыйпоиск.

5. Сервер каталога преобразует поисковый запрос из формата LDAP вформат интерфейса вызовов Oracle (OCI) и передает его через Net8базе данных OracleSi.

6. База данных OracleSi анализирует запрос сервера каталога точно также, как и любой другой запрос, и выбирает информацию, котораябудет отослана клиенту через сервер каталога и API С.

Установка Интернет-каталога OracleИспользуя только документацию Oracle, довольно трудно разобраться впроцедуре начальной установки Интернет-каталога Oracle, поэтому уде-лим некоторое время анализу важного шага.

Для установки OID необходимо использовать универсальный установ-щик Oracle (Oracle Universal Installer). Сначала вы увидите экран AvailableProducts (Доступные продукты), где нужно выбрать третий вариант,Oracle Management Infrastructure 8.1.6.0.0. Сделав этот выбор, щелкнитена кнопке Next, и перед вами появится экран Installation Types (Типыустановки), показанный на рис. 5.6.

Page 176: Oracle 8i Networking 101

158 Глава 5

illation Types

OracleSi Management Infrastructure 8.1.6.0,0

What type of installation do you wantInfrastructure S.1.8.0.0?

X Oracle Management Server (241fristarts drectory services and enterprise

Directory, client tootee*. Of aetewectwy Manager, and dent-side development Kit

ustom . . .Enables yoUlo choose individual components lo insl

Рис. 5.6. Экран выбора типа установки

Когда в системе уже присутствует OracleSi, Release 2, в ходе установкиOID вам будет предложено либо использовать существующий экземпляр,либо создать новый. Если вы остановитесь на существующем экземпляре,то на следующем экране потребуется ввести его SID. Затем вам будетпредоставлена возможность решить, нужно ли шифровать атрибут user-Password. В данном примере выбрано No, чтобы отказаться от шифрова-ния, поэтому на следующем экране сообщается, что отличительнымименем области будет "cn=orcladmin". Для пароля по умолчанию показы-вается длина, но не значение. Далее вы увидите, что этим паролем явля-ется "welcome".

Следующий экран позволяет указать примерное количество записейкаталога, которые предполагается хранить. Диапазон значений — от "ме-нее 10 000" до "более 1 000 000". В заключение вам будет предложено под-твердить количество и типы устанавливаемых продуктов, и после этогоначнется фактическая установка. За ходом установки можно следить посообщениям, отображаемым на экране Configuration Tools. Установка по-разительно легка, если знать, как она выполняется.

Обратите внимание: хотя на экране сообщается, что для установкитребуется 723 мегабайта, затраты дискового пространства будут намногоменьше, если в системе уже установлены другие продукты OracleSi. Пока-занный размер соответствует полной установке OracleSi.

Теперь рассмотрим набор инструментов OID, чтобы вы знали, какиедействия можно выполнять над Интернет-каталогом Oracle.

Page 177: Oracle 8i Networking 101

Интернет-каталог Oracle 159

Инструменты Интернет-каталога OracleДля взаимодействия с сервером Интернет-каталога Oracle и его админи-стрирования можно использовать несколько инструментов команднойстроки и один графический инструмент. Вот их список:

• Инструменты командной строки для манипулирования отдельнымизаписями и атрибутами. Работают с текстовыми файлами, записан-ными в формате обмена данными LDAP (LDAP Data InterchangeFormat, LDIF)

» Инструменты командной строки для групповых операций, позволя-ющие эффективно загружать, модифицировать и удалять большиеколичества записей, а также копировать данные из информацион-ной базы данных каталога в LDIF-файл для последующей групповойзагрузки

• Утилита OID Control, предназначенная для запуска и остановасерверных процессов OID

• Инструмент Catalog Management• Утилита OID Database Password, предназначенная для установки и

смены паролей (по умолчанию для Интернет-каталога Oracle уста-навливается пароль "ODS")

• Графический инструмент OID Manager, предназначенный для адми-нистрирования OID и управления им

Изучим возможности, предоставляемые каждым из этих инстру-ментов.

Инструменты командной строкиВ главе 3 мы рассматривали прослушивающий процесс и утилиту ListenerControl (Isnrctl). Вызов этой утилиты выполняется с уровня операцион-ной системы — либо из строки приглашения DOS (в системе WindowsNT), либо из строки приглашения UNIX. Такой же подход используется ив утилите сервера имен Oracle (nariiesctl). Для сервера Интернет-каталогаOracle существует несколько различных инструментов командной стро-ки, каждый из которых ориентирован на решение определенных типовзадач. Одни инструменты позволяют работать с индивидуальными запи-сями, тогда как другие можно использовать для выполнения операцийнад целыми группами записей. Для управления самим каталогом преду-смотрен ряд отдельных инструментов. Сначала мы рассмотрим каждый

; <из инструментов командной строки, а в конце главы изучим графическийинструмент — менеджер OID, с помощью которого можно выполнять за-дачи администрирования.

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

Page 178: Oracle 8i Networking 101

160 Глава 5

записи в формате LDIF и поместить их в текстовый файл. Каждая записьв этом файле будет представлена своим отличительным именем и спис-ком атрибутов, по одному атрибуту в строке. В таблице 5.4 перечисленыназвания инструментов командной строки, работающих с форматомLDIF, и даны их описания.

.' - - • - • . * . • ' . i •.'.Таблица 5.4.Инструменты командной строки, работающие с форматом LDIF

Инструмент Описание . .. • .

Idapsearch Поиск записей каталога.

Idapbind Аутентификация пользователя/клиента на сервере каталога.

Idapadd Поочередное добавление записей. . п • ••, и • -О

Idapaddmt Параллельное добавление нескольких записей за счет использованиямногопоточности.'

Idapmodify Создание, обновление и удаление данных атрибута в определенной записи.

Idapmodifymt Параллельная модификация нескольких записей за счет использованиямногопоточности.

Idapdelete Удаление записей.

Idapcompare Просмотр записи на наличие указанного значения атрибута. ,

Idapmoddn Модификация DN или RDN записи, переименование записи или поддерева,перемещение записи или поддерева под другую родительскую запись.

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

Таблица 5.5.Инструменты командной строки для групповых операций с данными

Инструмент Описание ' :

bulkload Загрузка большого количества записей в Интернет-каталог Oracleиз LDIF-файлов.

Idifwrite Копирование данных из информационной базы каталога в LDIF-файл, которыйможет быть прочитан любым LDAP-совместимым сервером каталога.С помощью этого инструмента можно создавать файл для последующейгрупповой загрузки, а также выполнять резервное копирование информациивсего каталога или его частей.

bulkmodify Одновременная модификация большого количества существующих записей.

bulkdelete Быстрое удаление поддерева. "'-<

Page 179: Oracle 8i Networking 101

Интернет-каталог Oracle 161

Утилита OID ControlУтилита OID Control предназначена для запуска и останова серверногопроцесса Интернет-каталога Oracle. Соответствующие команды интерп-ретируются и выполняются процессом монитора OID. Для запуска экзем-пляра LDAP-сервера используется следующий синтаксис:

Q oidctl соппес1=<имя_сетевой_службы> server=OIDLDAPD1п51апсе=<номер_экземпляра_сервера> start

Учтите, что имя сервера — это константа, равная OIDLDAPD, если неиспользуется тиражирование, и OIDREPLD в противном случае. Номерэкземпляра можно выбирать произвольно. Команда oidctl активизируетутилиту OID Control. Вы должны указать имя службы и номер экземпляра.Остальные доступные параметры не являются обязательными. ДляИнтернет-каталога Oracle с именем сетевой службы OID1 и номером эк-земпляра, равным 2, команда запуска будет выглядеть следующимобразом:

Q oidctl connect=OID1 server=OIDLDAPD instance=2 start

ВниманиеПри попытке запустить процесс Интернет-каталога Oracleвы можете получить следующее сообщение об ошибке:"NLSJ-ANG not set in environment. Please set NLS_LANG tothe appropriate UTF8 character set." ("Переменная средыNLS_LANG не установлена. Пожалуйста, задайтеподходящий набор символов UTF8".) В этом случае нужноввести в строке приглашения операционной системыкоманду set NLS_LANG=AMERICAN_AMERICA.UTF8,а затем повторить команду start. На одной платформеперед запуском процесса требовалось построить базуданных с использованием набора символов UTF8,на другой было достаточно установить значениеNLS_LANG. На момент написания книги службаподдержки Oracle не могла предложить какого-либорешения этой проблемы.

Теперь посмотрим, какие параметры может иметь утилита OIDControl. Они перечислены в таблице 5.6.

Таблица 5.6.Параметры утилиты управления Интернет-каталогом Oracle

Параметр Описание

net_service_name Имя, указанное в файле tnsnames.ora, если он сконфигурирован.Этот файл располагается в каталоге ORACLE_HOME/network/admin.

server Тип запускаемого сервера. Допустимые значения — OIDLDAPD и., " ' OIDREPLD. Регистр символов не учитывается.

Page 180: Oracle 8i Networking 101

162 Глава 5

Таблица 5.6 (продолжение)Параметры утилиты управления Интернет-каталогом Oracle

Параметр Описание

serverjnstancejiumber Номер экземпляра запускаемого сервера. Допустимые значения —числа в диапазоне от 0 до 1000.

I ; • • • ; • - •«!'"' •'configsetjiumber Номер конфигурационной записи (configset), используемой

при запуске сервера. По умолчанию используется configsetO.Допустимые значения — числа в диапазоне от 0 до 1000.

-р номер_порта Номер порта, который будет использовать запускаемый экземплярсервера. По умолчанию используется порт 389.

-debug уровень_отладки Уровень отладки, который будет установлен при запуске сервера,

-h имя_хоста Имя хоста, на котором запускается сервер.: • . . . . • ' . • • | [ ] i l ; ' " i i - I

-I Включает и выключает протоколирование изменений притиражировании. Если этот флаг не указан, протоколирование вклю-чено. Возможные значения TRUE и FALSE, по умолчанию — TRUE.Параметр применим только для сервера каталога.

•server n Количество серверных процессов, запускаемых на данном порту.

start Запускает сервер, указанный аргументом server.

stop Останавливает сервер, указанный аргументом server.

Инструмент Catalog ManagementЧтобы сделать атрибуты доступными для поиска, в Интернет-каталогеOracle используются индексы. После установки OID список доступныхдля поиска атрибутов содержится в записи cn=CATALOGS. Атрибут, длякоторого задано правило сравнения, может быть проиндексирован. Что-бы использовать в фильтрах поиска дополнительные атрибуты, необхо-димо добавить соответствующие записи, используя инструмент CatalogManagement.

Если вы работаете в системе UNIX, то перед запуском инструментаCatalog Management необходимо сбросить параметр LANG. В оболоч-ке Когп это делается командой unset lang, а в оболочке С — командойunsetenv lang. Завершив сеанс работы с инструментом, вы сможете вос-становить этот параметр в исходное состояние. Инструмент CatalogManagement позволяет добавлять или удалять индекс для указанного ат-рибута. Командная строка имеет следующий синтаксис (на моей машинес Windows NT сценарий catalog.sh находился в каталоге ORACLE_HOME\ldap\bin):

Q catalog.sh -connect <имя_сетевой_службы> <add|delete> -attr <имя_атрибута> -file <имя_файла>

Можно проиндексировать либо отдельный атрибут, либо все атрибу-ты, перечисленные в файле. Атрибуты в файле должны быть перечисле-ны по одному в строке. Аналогичным образом можно удалить индексодного атрибута или индексы всех атрибутов, перечисленных в файле.

Page 181: Oracle 8i Networking 101

Интернет-каталог Oracle 163

Чтобы успешно запустить инструмент Catalog Management, необходи-мо знать пароль пользователя OID. Завершив действия с индексами, выможете восстановить параметр LANG, введя 8е1_1аг^=<используе-мый_язык>, export lang в оболочке Когп, или setenv lang <используе-мый_язык> в оболочке С.

Утилита O1D Database PasswordСоединяясь с базой данных, OID использует пароль. Как упоминалосьвыше, паролем по умолчанию служит ODS. Утилита OID DatabasePassword позволяет его изменить. В системе UNIX нужно ввести следую-щую команду:

Q oidpasswd

После активизации утилиты у вас будут запрошены текущий пароль,новый пароль и подтверждение нового пароля. По умолчанию считается,что вы намерены изменить пароль для базы данных, на которую указыва-ют переменные среды ORACLE_HOME и ORACLE_SID. Если это не так,то необходимо использовать параметр соппес1=<имя_сетевой_службы>.

Менеджер О!ВМенеджер OID — это единственный графический инструмент в инстру-ментальном наборе Интернет-каталога Oracle. До запуска этого инстру-мента у вас должен быть запущен экземпляр сервера каталога. Запускэкземпляра сервера, в свою очередь, возможен только после запуска де-мона OID Monitor. При этом предполагается, что вы создали Интер-нет-каталог Oracle и установили в системе программное обеспечениеOID. В конце главы 9 будет описано, как создать Интернет-каталог Oracleпри помощи инструмента Net8 Configuration Assistant.

Запуск и останов монитора OIDПеред запуском монитора ОШ необходимо установить нужныйязык, если он отличается от используемого по умолчанию (AMERICAN_AMERICA). После этого в строке приглашения операционной системывводится команда запуска:

Q oidmon <соппес1=имя_сетевой_службы> <з!еер=количество_секунд> start

Аргументы connect и sleep — необязательные. Имя_сетевой_службы —это имя, которое указано в файле tnsnames.ora для сервера OID. Значениеsleep сообщает монитору OID, сколько секунд необходимо выждать пе-ред проверкой на наличие новых запросов от утилиты OID Control и за-просов на перезапуск серверов, которые могли остановиться. Поумолчанию это 10 секунд. Для остановки монитора OID используется тотже синтаксис, только "start" заменяется на "stop".

После запуска монитора ОЮ можно запускать экземпляр сервера. Этоделается с помощью утилиты OID Control, которая была описана ранее.Когда монитор ОШ и экземпляр сервера запущены, можно запускатьменеджер OID и начинать с ним работать.

Page 182: Oracle 8i Networking 101

164 Глава 5

Менеджер Интернет-каталога OracleЧтобы запустить менеджер Интернет-каталога Oracle в системе Win-dows NT, нужно выбрать пункт меню Start >- Programs >• OracleORACLE_HOME >- Oracle Internet Directory »• Oracle Directory Manager.В UNIX для этого используется команда oidadmin, которую нужно ввестив строке приглашения операционной системы. При первой попытке вхо-да вам будет указано на необходимость соединиться с сервером. Щелкни-те на кнопке ОК.

Теперь поступит предложение ввести имя пользователя и пароль. Вотсписок подходящих имен и паролей для первого входа:

• Чтобы войти в качестве суперпользователя с целью конфигурирова-ния параметров SSL, введите в поле User строку cn=orcladmin, а вполе Password —либо пароль суперпользователя, который вы задалипри установке, либо пароль, используемый в менеджере QID поумолчанию (welcome).

• Чтобы войти в качестве анонимного пользователя, оставьте поляUser и Password пустым», i /• >

• Если вы уже создали учетную запись пользователя с помощьюинструментов командной строки, выберите нужное имя пользовате-ля с помощью кнопки Browser или введите отличительное имя в сле-дующем формате: сп=<имя>, ои=<организационная единица>,о=<организация>,с=<страна>.

Независимо от способа входа в конечном итоге вы увидите экран-за-ставку, показанный на рис. 5.7.

Рис. 5.7. Начальный экран менеджера каталога Oracle

Page 183: Oracle 8i Networking 101

Интернет-каталог Oracle 165

Менеджер каталога Oracle позволяет создавать объектные классы,атрибуты, записи и точки управления доступом; управлять записями;регенерировать записи и подзаписи; удалять индексы; создавать какоригинальные файлы, так и файлы, которые в точности повторяютуже существующие. Для выполнения всех этих действий можно исполь-зовать либо раскрывающиеся меню, либо пиктограммы на панелиинструментов.

После конфигурирования Интернет-каталога Oracle вы увидите пунк-ты Subtree Access Management (Управление доступом к поддереву), EntryManagement (Управление записью), Schema Management (Управлениесхемой) и Audit Log Management (Управление журналом аудита). Крометого, вы сможете конфигурировать протокол Secure Socket Layer и управ-лять незащищенным доступом к каталогу.

В таблице 5.7 приведены краткие описания пиктограмм панели инст-рументов менеджера OID, начиная с самой левой.

Таблица 5.7.Пиктограммы панели инструментов менеджера каталога Oracle

Пиктограмма Описание

Провод с разъемом

Круговая стрелка

"Создать"

"Создать по образцу"

Карандаш

Бинокль

Корзина

"Регенерировать запись"

"Регенерировать подзапись"

"Удалить индекс"

"Справка"

Соединение с сервером каталога, выбранным в панелинавигатора (или отсоединение от него).

Регенерация или обновление данных для объектов,хранящихся в памяти (кроме записей) с целью отраженияизменений в базе данных.

Создание нового объекта.

Создание нового объекта с использованием другого объектав качестве шаблона.

Редактирование или модификация объекта.

Поиск объекта.

Удаление объекта.

Обновление данных записи, хранящейся в памяти, с цельюотражения изменений в базе данных.

Обновление подзаписей, хранящихся в памяти, с цельюотражения изменений в базе данных.

Удаление индекса для атрибута. На это действие будетзапрошено подтверждение.

Вызов справочного навигатора.

Page 184: Oracle 8i Networking 101
Page 185: Oracle 8i Networking 101

Планирование сети

Page 186: Oracle 8i Networking 101

168 Глава 6

1едавно я приобрела замечательную книгу по садоводству и решилазаняться посадками. Но что же посадить — овощи, цветы или все вместе?Кажется, я знаю! Посажу помидоры, перец, салат, редис, морковь и огур-цы, и тогда появится возможность делать массу вкусных салатов. Если вы-растить еще и цветы разной высоты, то можно все лето ставить на столкрасивые букеты. Это будет так здорово! Но какого размера должен бытьучасток? Где и когда будем высаживать растения? Следует ли сажать раз-ные растения в разное время? Нужен ли им яркий солнечный свет илиполутень? Какого типа почва потребуется? Как поливать растения? Стоитли использовать инсектициды? Чтобы спланировать, как, где и когдаделать посадки, придется поискать ответы на множество вопросов. Нокакое отношение все это имеет к сетям?

Как правило, наилучший подход к выполнению любой работы состоитв том, чтобы перед началом практических действий остановиться и по-тратить некоторое время — несколько минут, дней или даже недель — наобдумывание предстоящих шагов. Предварительное планирование по-зволит получить представление о масштабах проекта, понять, в какойпоследовательности должны выполняться отдельные задачи, четкосформулировать конечную цель, а также определить потребности в обо-рудовании или других ресурсах. Кроме того, во время планирования нампредоставляется отличная возможность убедиться в том, что ничего непропущено. Вы говорите, что никогда не занимались планированием?Это не так — по ходу жизни все мы так или иначе составляем планы, дажеесли планируется ничего не планировать!

Что касается сетей, то мудрый человек (которым вы, несомненно, яв-ляетесь) обязательно выяснит, какое нужно оборудование и программноеобеспечение, какие требования предъявляются клиентами, и спланируеткаждый шаг по установке и конфигурированию, обеспечив тем самымуспех в реализации проекта. Организация сети требует не менее тщатель-ного обдумывания, планирования и подготовки, чем проектированиебазы данных или посадка огурцов.

Создание плана сетиИтак, какого вида планы вам нужны? О чем необходимо подумать и какиерешения должны быть приняты? Скорее всего, при планировании сете-вой конфигурации Oracle вам не придется начинать с нуля. Большинствоорганизаций уже имеют готовую сеть, которую вы должны будете при-нять за основу, поэтому вам не потребуется выбирать базовые сетевыепротоколы. Принимаемые решения будут зависеть как от базовой сети,так и от приложений, которые предполагается поддерживать.

Page 187: Oracle 8i Networking 101

Планирование сети 1(59

ВопросыЧтобы определить, какой должна быть сетевая конфигурация Oracle в ва-шем конкретном случае, нужно ответить на много вопросов. На некото-рые из них в вашей среде уже могут быть даны ответы. Кроме того, не всеиз рассматриваемых ниже вопросов имеют отношение к любой компа-нии или системе. Вопросы можно разбить на следующие общиекатегории:

• Управление• Сеть• Сервер• Соединение

• Резервное копирование и восстановлениеНесмотря на то что все эти категории в равной степени важны, входя-

щие в них вопросы образуют определенную логическую последователь-ность. Рассмотрим каждую область и те вопросы, на которые вампотребуется отвечать.

Вопросы управленияВопросы, относящиеся к области управления, могут потребовать согласо-вания с вышестоящим начальством. Ответы на них формируют основудля принятия всех остальных решений, определяющих конфигурациюсети Oracle. Вопросы приведены здесь в произвольно выбраннойпоследовательности.

Будут ли использоваться определенные соглашенияоб именовании прослушивающих процессов, служби экземпляров!При наличии нескольких разных серверов, на каждом из которых запус-кается один или несколько прослушивающих процессов, имеет смысл вы-работать соглашения об именовании прослушивающих процессов, служби экземпляров. „Это облегчит идентификацию баз данных, с которымипредстоит взаимодействовать. Иногда трудно проверить, что вы вноситеизменения именно в базу данных А на узле А, если на узлах В, С и D такжеприсутствуют базы данных А.

Поскольку имена служб и экземпляров перечислены в файле init.oraкаждой базы данных, а следовательно, считываются базами данныхво время запуска, вы можете идентифицировать базу данных, с которойвзаимодействуете, непосредственно из приложения. Для этого необходи-мо иметь привилегии, позволяющие обращаться к представлениюV$PARAMETER. Просмотреть значения имен можно при помощиследующего запроса (выходные данные соответствуют базе данныхверсии 8.1.6):

LJ column NAME format a20column VALUE format a40select NAME, VALUE

Page 188: Oracle 8i Networking 101

170 Глава 6

from VSPARAMETERwhere NAME in ('instance_name', 'service_names', 'db_name');

NAME VALUE

instance_name ordservice_names orc1.worlddb_name ord

В этом запросе нужно отметить два момента. Во-первых, аргументыконструкции where записаны в нижнем регистре. Это сделано намерен-но, поскольку значения хранятся в базе данных именно в таком виде.Во-вторых, имя параметра service_names записано во множественномчисле, тогда как имена остальных параметров — в единственном.

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

Соглашения об именовании имеют и свою отрицательную сторону.Они дают посторонним лицам потенциальную возможность изучить вашуструктуру имен, а затем проникнуть в систему, используя это знание. На-пример, если известно, что вы всегда называете прослушивающий про-цесс по имени узла с добавлением слова "LIST" и последовательногономера, то по этой информации можно составить имя вашего прослуши-вающего процесса. Если известно, что для имен экземпляров использует-ся имя узла, слово "DB" и последовательный номер, то можно с тем жеуспехом составлять имена ваших экземпляров.

Предположим, я точно знаю, что ваш узел называется PROD. Тем са-мым мне автоматически становится известно имя вашего первого прослу-шивающего процесса на этом узле (PRODLIST1), а также имя первогоэкземпляра (PRODDB1). Имя прослушивающего процесса не слишком по-может мне при попытке "взломать" вашу систему, тогда как знание именипервого экземпляра дает шанс войти в базу данных путем перебора изве-стных имен пользователей - SCOTT, DBSNMP, SYSTEM и SYS. Возмож-но, что какие-то из этих стандартных имен и паролей не менялись смомента создания базы данных.

Тем не менее стандарты именования имеют смысл, особенно приналичии множества баз данных. Нет ничего плохого в том, чтобы ввес-ти соглашения об именовании и следовать им, обеспечив тем самымсогласованность и облегчив клиентам доступ к базам данных. Однакопри этом вы должны учитывать, что соглашения об именовании могутоблегчить доступ к базам данных и злоумышленникам. Короче говоря,пользуйтесь стандартами именования, но не делайте их слишкомочевидными.

Page 189: Oracle 8i Networking 101

Планирование сети 171

Какие методы именования будут использоваться —локальное именование, именование по каталогу,именование Oracle, именование по хосту,внешнее именование!Казалось бы, этот вопрос похож на предыдущий, но это не так. Первыйвопрос касался формы записи имен, присваиваемых каждому элементусети. Сейчас речь идет о способе поддержки клиентских соединенийи разрешения имен сетевых служб в адреса серверов. Чтобы помочь вамв принятии решения, ниже кратко рассматривается каждый из перечис-ленных методов именования.

При использовании локального именования имена сетевых служб хра-нятся в локальном файле конфигурации tnsnames.ora на каждой из клиен-тских машин. Достоинство локального именования в том, что вы можетеконфигурировать каждый файл в соответствии с потребностями конкрет-ного клиента. Доступ к информации р соединениях в этом случае относи-тельно прост, а кроме того, можно разрешать имена сетевых служб вадреса, соответствующие различным протоколам. Недостатком, о кото-ром упоминалось в главе 4, является необходимость реконфигурирова-ния каждого файла при любом изменении в сети. Например, если выдобавляете новую базу данных, то должны модифицировать файл tnsna-mes.ora для каждого клиента, которому требуется получать к ней доступ.При удалении базы данных из системы следует удалить ссылки на нее извсех файлов tnsnames.ora. Локальное именование рекомендуется для про-стых распределенных сетей с небольшим количеством редко изменяемыхслужб и небольшим числом клиентских машин.

Для реализации именования по каталогу используется LDAP-совмести-мый qepsep каталога (протокол LDAP рассматривался в главе 5). Серверкаталога LDAP обеспечивает централизованное хранение сетевых имен иадресов, используемых для соединений, а это означает, что все измене-ния нужно выполнять только в одном месте, а не в потенциально огром-ном количестве файлов. Каталог может хранить имена разнородныхслужб, что позволяет устанавливать соединения по разным протоколам.Недостаток такого подхода к именованию заключается в том, чтоклиентам требуется обращаться к каталогу, а это может представлять по-тенциальную угрозу безопасности системы. Сервер каталога LDAP реко-мендуется использовать в больших сложных сетях с более чем 20 базамиданных, изменяющимися на регулярной основе.

При использовании сервера имен Oracle информация обо всех служ-бах Oracle заносится в централизованное хранилище, как было описано вглаве 4. Использование сервера имен упрощает администрирование сетиOracle, поскольку в отличие от локального именования все изменениявыполняются в одном месте. Даже при наличии нескольких серверовимен вам достаточно изменить информацию только на одном из них, по-сле чего изменения будут автоматически распространены по остальнымсерверам. Недостатком является то, что на серверах имен Oracle можнохранить имена и адреса только служб Oracle, а установка и начальное

Page 190: Oracle 8i Networking 101

172 Глава 6

конфигурирование серверов имен требуют определенных усилий свашей стороны. Подобно серверу каталога LDAP, сервер имен Oracleлучше всего подходит для больших сложных сетей с более чем 20 базамиданных, изменяющимися на регулярной основе.

В случае именования по хосту разрешение имен служб в IP-адреса мо-жет выполняться при помощи уже существующего механизма, например,службы имен доменов (DNS), сетевой информационной службы (NIS)или централизованно ведущегося файла со списком хостов TCP/IP. Та-кой подход требует минимального конфигурирования на стороне клиен-та (пользователю нужно указывать только имя хоста), но вместе с темнакладывает ряд ограничений, о которых необходимо знать. И клиент, исервер должны использовать TCP/IP, и при этом они не могут пользова-ться услугами менеджера соединений Oracle. Это означает, что вы не смо-жете соединяться с базами данных, отличными от Oracle. Именование похосту доступно в ограниченном числе сред.

Если в вашей среде уже сконфигурирована служба имен другого произ-водителя, то для разрешения имен служб Oracle можно использоватьвнешнее именование. У вас есть возможность загрузить информацию обименах во внешнюю службу, используя уже освоенные утилиты. Такойподход позволит избежать дополнительного конфигурирования.

Не существует "правильного" или "неправильного" метода именова-ния; вам и вашему руководству нужно решить, что лучше всего подходитдля вашей организации. Имейте в виду, что это решение не обязательнодолжно приниматься раз и навсегда. Через какое-то время вы можете об-наружить, что потребности в соединениях изменились, а вместе с нимидолжен измениться метод именования. В одной компании, где я работа-ла, все начиналось с локального именования. Когда масштабы системыизменились, мы поняли, что необходимо изменить и метод именования.В результате мы постепенно перешли на использование сервера именOracle. Если для доступа пользователей к их системам планируется испо-льзовать единый вход, то возможно, что именование на основе серверакаталога LDAP окажется более перспективным.

Кто уполномочен принимать решения, касающиеся сети!На первый взгляд этот вопрос кажется риторическим, но смею вас заве-рить, что это не так! Пока вы не разобрались, от кого зависит выделениесредств на реализацию тех или иных сетевых решений, составление пла-нов может оказаться пустой тратой времени. Если вы работаете в круп-ной компании, то не исключено, что перед построением сети Oracle вампотребуется получить согласие нескольких людей. Точно так же, как сете-вой трафик Oracle может оказать влияние на работу базовой сети, времявыполнения запросов к базам данных может непосредственно зависетьот остального сетевого трафика вашей системы.

Заранее выяснив, с кем нужно согласовывать планы, вы сможете избе-жать бесполезной работы, разочарований и огорчений.

Page 191: Oracle 8i Networking 101

Планирование сети 173

За кем будет последнее слово при выборе конфигурациии протоколов!Как и в предыдущем вопросе, речь идет об идентификации лица, к кото-рому предстоит обращаться в том случае, когда не удается получить согла-сие других участников процесса. Выяснив, кто принимает окончательноерешение, вы поймете, кого нужно обучать в первую очередь. Зачастую та-кие люди не слишком разбираются в технических деталях, и возможно,что вам потребуется провести "разъяснительную работу", чтобы получитьсогласие на реализацию самого эффективного решения.

Здесь уместно высказать одно предостережение. Я знаю, что это не-легко, но постарайтесь в процессе принятия решения не зацикливатьсяна одном подходе. Вы можете оказаться в неловком положении, если бу-дет предложен и принят другой вариант. Будьте гибче и постарайтесьрассмотреть вопрос со всех сторон, прежде чем предпочесть одно реше-ние всем остальным. Кроме того, не забудьте подобрать понятные и убе-дительные аргументы в пользу своего.выбора. Фразы: "Я думаю, что мыдолжны выбрать вариант А, поскольку он наиболее оправдан с коммерче-ской точки зрения" может оказаться недостаточно> чтобы ваше решениебыло одобрено. Имейте наготове несколько веских обоснований и убеди-тесь, что человек, которому принадлежит последнее слово, понимает все"за" и "против" каждого предлагаемого решения.

Будет ли самый дешевый вариант наилучшим?Этот вопрос можно сформулировать и так: "Как соотносятся финансовыезатраты, время администрирования и время простоя в предлагаемой се-тевой конфигурации?" При подготовке предложения для руководителейвысшего звена нужно учитывать, что эти люди не обязательно отдаютприоритет самым дешевым вариантам; их скорее заинтересует тот вари-ант, который обещает наибольшую отдачу.

Имейте в виду, что некоторые методы построения сети Oracle обхо-дятся дороже, чем другие. Возьмем, например, сервер имен Oracle в срав-нении с множеством локальных файлов tnsnames.ora. Как вы видели вглаве 4, служба ONames обычно размещается на отдельной машине, тогдакак для использования локальных файлов tnsnames.ora дополнительноеоборудование не нужно. Однако усилия по обновлению множества фай-лов, выраженные в денежном эквиваленте, вскоре превысят затраты насоздание серверов имен Oracle.

Смысл сказанного сводится к следующему: не старайтесь делать кон-фигурацию чересчур элегантной. Создавайте такую конфигурацию, кото-рая будет удовлетворять системным требованиям, но не выходите приэтом за рамки разумного.

Что делать, если во время разработки приложений выйдутновые или улучшенные версии продуктов Oracle?Недавно я получила по электронной почте письмо от одного человека,чья компания начинала процесс разработки под одной версией Oracle, aтеперь пересматривает свои решения, поскольку появилась новая, улуч-шенная (по рекламным заявлениям) версия. Мир Oracle устроен так, что

Page 192: Oracle 8i Networking 101

174 Глава 6

на горизонте почти всегда будет вырисовываться следующая, более со-вершенная версия программного обеспечения. Чтобы заранее решить,когда и как будет происходить переход на новую версию Oracle, нужнотщательно все обдумать и просчитать наперед.

Каждая новая версия приносит много новых привлекательных воз-можностей, основанных на старых, доступных функциях. На последнейконференции я услышала чью-то фразу: "Конечно, вам всегда следует ра-ботать с самым последним выпуском продуктов Oracle!" Но так ли это?Есть ли смысл автоматически переходить на только что выпущеннуюверсию РСУБД? Что нужно учесть перед тем, как принимать решение омиграции на новую версию продуктов Oracle?

Первый вопрос, который приходит в голову, таков: будет ли текущаяверсия операционной системы поддерживать новейшую версию Oracle?Когда компания, в которой я работала, решила обновить версию 7.1.5 до7.3.2.3.2 на машинах с Alpha OpenVMS, выяснилось, что нам придется об-новлять операционную систему с V6.2 до V7.1, а также производить миг-рацию приложения Oracle Financials с V9.4.2 на V10.6. Три обновлениясразу! Одновременно с этим нам пришлось бы внести несколько доволь-но тонких изменений в сетевую конфигурацию. В такой ситуации весьмавероятно возникновение непредвиденных проблем, причины которыхзачастую трудно определить.

Мы не решились на три одновременных обновления и пришли к мыс-ли о необходимости промежуточного решения. В результате начали с об-новления операционной системы, установив исправление (patch),которое решило проблему интероперабельности, а немного позже обно-вили РСУБД и приложения. Однако даже для использования исправле-ния нам пришлось пересмотреть подход к организации сети Oracle.Устранение проблем, возникших в ходе модернизации сети, привело кнекоторым задержкам и повлияло на общий график наших работ. Как вкартинке, разрезанной на куски, каждая часть системы зависит от другихчастей, и чтобы система эффективно функционировала, все они должныбыть правильно состыкованы. Модификация одного компонента можетзатрагивать несколько других, причем как незначительным, так и оченьсущественным образом.

Другой фактор, который нужно учесть, выбирая момент перехода нановую версию Oracle,— это стабильность новой версии. Я работаю спродуктами Oracle долгое время, но пока не видела основной версии, ко-торая была бы совершенно стабильной с самого начала. Даже промежу-точные версии могут создавать большие проблемы. При переходе натолько что вышедшую версию вы не знаете, с какими потенциальнымипроблемами можете столкнуться. Я предпочитаю звонить в службу под-держки Oracle и узнавать об известных ошибках, проблемах и пакетахисправлений, прежде чем начинать обновление.

Рассматривая возможность обновления или миграции, постарайтесьсовместно с разработчиками определить, без каких новых функций дей-ствительно нельзя обойтись. Оправдают ли предлагаемые усовершенст-вования тот риск, который связан с установкой новых программ?Работают ли вообще те новейшие функции, которые рекламируются?

Page 193: Oracle 8i Networking 101

Планирование сети 175

Достаточно ли они совершенны, чтобы принести пользу вашей организа-ции? Когда впервые появилась возможность делать моментальные сним-ки, команда разработчиков, с которой я взаимодействовала, сэнтузиазмом восприняла эту идею и долго билась над ее эффективной ре-ализацией. Если бы они немного подождали, то сэкономили бы немаловремени и сил, поскольку в следующей версии эта функция была серьезнодоработана. Такое бывает с любыми программными продуктами. Перваяпопытка реализовать новую функцию не' всегда Дает именно тот резуль-тат, которого ожидаете вы или ваши разработчики.

Ещё один момент, о котором следует подумать,— это возможность от-хода на исходную позицию в случае неудачи. Если вы переходите на но-вую версию операционной системы; чтобы обеспечить поддержку новойверсии Oracle, которая, в свою очередь, нужна для поддержки новой вер-сии приложения, то сможете ли вы вернуться к тому состоянию, котороебыло до начала первого изменения? Будет ли восстановление столь жепростым, как откат к предварительно сохраненной конфигурации, иливам потребуется заново перестраивав"У систему? Сколько времени систе-ма может оставаться недоступной в ходе обновления и восстановления?Как это повлияет на работу пользователей? Как именно вы собираетесьвыполнять миграцию/обновление? Возможно, следует выделить весь на-бор дисков тестовой системы для тренировки и несколько раз прогнатьвсю процедуру, замеряя время ее выполнения, чтобы при настоящем об-новлении не возникло никаких неожиданностей. Многие компании арен-дуют эквивалентную группу компьютеров для пробных прогонов передтем, как попытаться произвести обновление в производственной среде.

Имейте также в виду, что некоторые приложения используют проме-жуточный слой независимого производителя, например TransactionMonitor компании Elpina. Вы должны убедиться, что все независимыепрограммные продукты совместимы с версией Oracle, на которую пред-полагается перейти. Кроме того, код приложений часто содержит ссыл-ки на Net8 и другие библиотеки, и для таких приложений можетпотребоваться полная перекомпиляция. Учитывая, что некоторые систе-мы содержат сотни и даже тысячи программ, процесс перекомпиляциии связывания может растянуться на несколько дней.

Определение наиболее подходящей версии может стать нелегким де-лом. Допустим, вы решили, что предлагаемые в новой версии возможно-сти действительно необходимы. Сколько времени вам будет отпущено наустановку и тестирование версии перед ее переносом! в производствен-ную среду? Постарайтесь заранее определить, каким образом измененияповлияют на сеть. Чтобы обеспечить успешный запуск новых приложе-ний, нужно решить, как будет происходить работа с новыми или исправ-ленными версиями, пока команда разработчиков реализует и тестируетсвое приложение. Сможете ли вы продолжать обслуживание существую-щей системы и одновременно вносить изменения в новую? Потребуетсяли "заморозить" производственную среду, выполняя только неотложныеизменения? Если да, то на какое время?

Page 194: Oracle 8i Networking 101

176 Глава 6

Сетевые вопросыНаиболее очевидные вопросы, относящиеся к сети,— это "какой базовыйпротокол следует использовать?" и "справятся ли выбранные машины сожидаемым объемом сетевого трафика?"

Вероятно, вы не из тех людей, которые могут самостоятельно выбратьоборудование, соответствующее ожидаемой нагрузке на сеть. Если естьвозможность, обратитесь за помощью к системным и/или сетевымадминистраторам. Обычно они разбираются в этих вопросах и могутопределить, какое оборудование будет удовлетворять предъявляемымтребованиям.

В настоящее время большинство компаний имеют сеть того или иноговида, а следовательно, ответы на один или оба поставленных вопроса ужеданы. Однако при этом возникает другой вопрос: поддерживает ли Oracleсуществующий сетевой протокол? Если Oracle не поддерживает прото-кол, используемый в вашей компании, то возможно, что вам придется вы-бирать другой способ соединения машин.

Гораздо труднее ответил», на вопрос, сможет ли конкретная машинасправиться с ожидаемым объемом сетевого трафика. Здесь нужно прини-мать во внимание как вычислительную мощность машины, так и физиче-ские характеристики самой сети.

Давайте рассмотрим сетевые вопросы, на которые вам необходимоответить.

Какие сетевые протоколы поддерживает Oracle?В число протоколов, поддерживаемых Oracle, входят протокол локаль-ного обмена (bequeath), IPC (Inter-Process Communications), NamedPipes, LU6.2, SPX, TCP/IP и TCP/IP с SSL. Они были кратко описаны втаблице 2.6 главы 2.

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

Какой протокол (или протоколы) предполагаетсяиспользовать!Наряду с базовыми сетевыми протоколами вы должны выбрать протоко-лы Oracle. Если планируется разработка Java-приложений, то необходимопроследить, чтобы были установлены драйверы JDBC и интерфейс OCI,а также SQL], CORBA (Common Object Request Broker Architecture) и EJB

Page 195: Oracle 8i Networking 101

Планирование сети 177

(Enterprise Java Beans). Для нормальной работы всех этих компонентовнеобходима поддержка со стороны сети.

Как было сказано в главе 2, клиенты EJB и CORBA используют другиекоммуникационные стеки, нежели клиенты Net8. Следовательно, есливаши разработчики остановились на клиентах EJB и CORBA, для уровняпредставления данных должен быть выбран протокол GIOP. Подробнаяинформация об этих компонентах и предъявляемых ими требованияхприведена в документации Oracle. Здесь они упомянуты лишь потому, чтовы должны принять решение об их использовании до того, как приступи-те к конфигурированию сети Oracle.

Соответствует ли пропускная способность кабельной сетиожидаемой нагрузке!О пропускной способности говорилось в главе 1, но давайте еще раз по-вторим это определение. Каждый кабель может пропускать в единицувремени определенный объем трафика, поэтому скорость передачи дан-ных по сети зависит от возможностей самого "тонкого" кабеля. Вспомни-те, что скорость, с которой кабель может передавать данные, называетсяего пропускной способностью. Разные участки сети могут иметь разнуюпропускную способность.

Производительность сети напрямую зависит от того, какой трафикможет передаваться по самому узкому участку. Если где-то проложен пло-хой кабель, то пропускная способность всей сети будет такой же низкой,как в этом месте. Представьте, что вы едете по шестиполосной магистра-ли, которая внезапно сужается до двух полос из-за ремонтных работ. Доэтого места поток автомобилей мог двигаться очень быстро, но теперьдолжен замедлиться, чтобы шесть рядов могли слиться в два. Проехав уз-кий участок, вы можете снова набрать скорость, но время будет потеря-но. Из-за сужения дороги ваша средняя скорость окажется ниже, хотя вконце концов дорога снова расширилась.

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

Каково местонахождение (IP-адреса) серверов?Этот вопрос важен с разных точек зрения. Если в сети есть DNS-сервер,который обеспечивает трансляцию имен машин в IP-адреса, то задачуопределения местонахождения серверов можно возложить на него. Еслиже механизм трансляции на уровне сетевого протокола отсутствует, товы должны задать IP-адреса в таблицах сервера имен Oracle или в файлахсетевой конфигурации Oracle.

Заранее определив, какие IP-адреса имеют ваши машины и поддержи-вает ли сеть трансляцию имен в адреса, вы можете сэкономить время приконфигурировании и тестировании свой сети Oracle. Если базы данныхраспределены по нескольким серверам, полезно составить таблицу сIP-адресами и именами машин, а также именами баз данных, служб и эк-земпляров. Эта таблица станет частью документации на создаваемую сис-тему и послужит руководством при конфигурировании. В качествеобразца можно использовать таблицу 6.1.

7 Зак. 726

Page 196: Oracle 8i Networking 101

178 Глава 6

Таблица 6.1.Таблица соответствия между именами машин, IP-адресами, базами данных,экземплярами и службами

Имя машины

MYHOST01, " .

MYHOST02

MYHOST03

MYHOST04

IP-адрес

122.233.23.10 :

122.233.23.11

122.233.23.12

122.233.23.13

База данных

PRDFN1PRDAP1PRDHR1

TSTFN1TSTAP1TSTHR1

DEVFIN1DEVAP1DEVHR1DEVHR2

QA01

Имя экземпляра

PRDFN1PRDAP1PRDHR1

TSTFN1TSTAP1TSTHR1

DEVFIN1DEVAP1DEVHR1DEVHR2

QA01

Имя службы

MYPROD1MYPROD2MYPROD3

MYTST1MYTST2MYTST3,

MYDEV1MYDEV2MYDEV3MYDEV4

MYQA

Из таблицы 6.1 можно легко узнать имена и IP-адреса машин. Вы може-те быстро определить, какие имена баз данных, экземпляров и служб ас-социированы с каждой машиной. При использовании локальногоименования или сервера имен Oracle эта таблица поможет убедиться, чтопри конфигурировании не был пропущен ни один экземпляр.

Какие номера портов будут использоваться!При определении номера порта для экземпляра или службы первым де-лом нужно обратиться к текущим файлам сетевой конфигурации и по-смотреть, какие порты уже используются в системе. Как было показано втаблице 3.3 главы 3, корпорация Oracle зарегистрировала некоторыепорты как имеющие вполне определенное назначение. Вы должны убеди-ться, что порт, присваиваемый прослушивающему процессу, брокеруWeb-запросов и т.д., не присвоен другому процессу для иных целей.

Если вы балансируете нагрузку при помощи множественных прослу-шивающих процессов, то предварительное определение портов намногооблегчит конфигурирование. Заранее решив, какие номера портов будутиспользоваться, вы получите четкий план дальнейших действий, кото-рый станет частью сетевой документации. В таблицу 6.1 можно добавитьстолбец с номером порта. После этого ваша "карта" будет выглядеть так,как показано в таблице 6.2.

Как видно из таблицы 6.2, порты 1521 и 1526 используются одновре-менно на двух различных узлах. Так можно поступать, если прослушиваю-щие процессы находятся на разных машинах. Вы даже можете присвоитькаждому прослушивающему процессу несколько портов. Однако при на-личии на одной машине более чем одного прослушивающего процессаследует убедиться, что им присвоены разные номера портов, поскольку впротивном случае возможны конфликты.

Page 197: Oracle 8i Networking 101

Планирование сети 179

Таблица 6.2.Таблица соответствия имен и адресов с добавленными номерами портов

Имя машины

MYHOST01'.' •

MYHOST02

MYHOST03

MYHOST04

IP-адрес

122.233.23.10

122.233.23.11

122.233.23.12

122.233,23.13

Порт

1521

1521

1526

1526

База данных

PRDFN1PRDAP1PRDHR1

TSTFN1TSTAP1TSTHR1

DEVFIN1DEVAP1DEVHR1DEVHR2

QA01

Имя экземпляра

PRDFN1PRDAP1PRDHR1

TSTFN1TSTAP1TSTHR1

DEVFIN1DEVAP1DEVHR1DEVHR2

QA01

Имя службы

MYPROD1MYPROD2MYPROD3

MYTST1MYTST2MYTST3

MYDEV1MYDEV2MYDEV3MYDEV4

MYQA

Таблица 6.2 дает достаточно полное представление о сети Oracle. Длязавершенности следует указать для каждой машины метод именования(если используется более одного метода) и выбранный протокол (илипротоколы).

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

Предполагается ли использовать многопоточный сервер (MTS),выделенные серверы или предварительно созданныевыделенные серверы!Как вы знаете из главы 2, многопоточный сервер обеспечивает поддерж-ку множественных клиентских соединений через единственный про-цесс-диспетчер. Поскольку один диспетчер может принимать запросы отмногих пользователей, при использовании MTS значительно сокращает-ся расход системных ресурсов на установление соединений. Это особен-но актуально в сетях, где требуется поддерживать большое количествопользователей.

Если же вы запускаете огромные пакетные задания по загрузке инфор-мации в хранилище данных, устанавливающие только одно соединение,то более подходящими могут оказаться выделенные серверы. При этом увас есть две возможности: либо создавать (порождать) соединения зара-нее, до прихода запроса, либо порождать процесс выделенного серверапосле приема запроса. В первом случае соединение будет доступно немед-ленно, однако следует иметь в виду, что предварительно порожденныепроцессы остаются в памяти на протяжении всего времени жизнипрослушивающего процесса. Иными словами, если вы предварительно

Page 198: Oracle 8i Networking 101

180 Глава 6

создали десять выделенных соединений, а используете только два, тоостальные восемь лишь отнимают ресурсы. С другой стороны, если выде-ленные процессы будут создаваться только после прихода запроса, токлиентам придется ждать, пока процесс запустится. При отсоединенииклиента от выделенного сервера, который не был создан заранее, систем-ные ресурсы освобождаются. А если количество запросов на соединенияпревысит количество предварительно созданных процессов? Тогда Orac-le просто начнет создавать выделенные процессы для каждого следующе-го запроса, освобождая ресурсы при отсоединении клиента, покаколичество соединений не вернется к прежней величине.

Таким образом, вы можете либо поддерживать большое количествоклиентов через несколько соединений многопоточного сервера, либоподдерживать меньшее количество клиентов через соединения выделен-ных серверов. Однако при использовании MTS не так легко сказать, с ка-ким процессом операционной системы соединен каждый клиент.С другой стороны, при использовании соединений выделенного сервератребуется решить, создавать ли процессы заранее, и, возможно, смирить-ся с неэффективным расходом ресурсов.

ВниманиеДля каждого сетевого протокола, который будетиспользоваться клиентами базы данных для соединенийчерез MTS, должен быть сконфигурирован и запущенкак минимум один процесс-диспетчер.

Будут ли разрешены выделенные соединенияпри использовании MTSIПредположим, что вы остановились на конфигурации с многопоточнымсервером. Всегда ли соединения должны устанавливаться через диспет-чер? Не обязательно. Давайте вернемся к ситуации с загрузкой огромногоколичества информации в хранилище данных. Почему для этой работыбольше подходит выделенное соединение?

Чтобы ответить на этот вопрос, нужно вспомнить принцип работыдиспетчера MTS. Поддержка множества пользователей возможна за счеттого, что каждый пользователь делает паузу между запросами. Этопозволяет обрабатывать запросы по очереди. Теперь представьте, что за-гружается большой массив данных. Никаких пауз здесь нет — идет непре-рывный поток вставок, обновлений или удалений. Следовательно, дляэтой задачи есть смысл использовать выделенный сервер.

Чтобы определить, нужно ли разрешать создание выделенных соеди-нений параллельно с MTS, необходимо узнать, какие типы транзакцийпредполагается выполнять в системе. Возможно, следует запланироватьзагрузку данных на то время, когда пользователей меньше всего, и вруч-ную запускать выделенные процессы для поддержки этих операций. По-мните, что запуск и останов прослушивающих процессов не приводит кразрыву существующих соединений. Таким образом, в зависимости оттребований, предъявляемых конкретной задачей, вы можете в какой-то

Page 199: Oracle 8i Networking 101

Планирование сети 181

момент останавливать процессы MTS и запускать выделенные процессыдля резервного копирования и пакетной загрузки больших объемов дан-ных. Но не будут ли соединения, установленные через MTS, разрыватьсяпри остановке MTS? Чтобы дать ответ на этот вопрос, попробуем разо-браться, что происходит при использовании MTSv

Работа через многопоточный сервер происходит следующим образом:• Клиент запрашивает соединение.• Прослушивающий процесс принимает запрос и возвращает

адрес наименее загруженного диспетчера.• Клиент напрямую соединяется с диспетчером.• Диспетчер помещает запрос в очередь входящих запросов,

которая размещена в SGA.• Свободный процесс разделяемого сервера извлекает запрос

из очереди и обрабатывает его.• Когда разделяемый процесс завершает свою работу, результат

помещается в очередь исходящих ответов.• Диспетчер считывает результат из очереди ответов

и возвращает его клиенту.Конструкция alter system set... в сочетании с параметрами mts_ser-

vers и mts_dispatchers позволяет добавлять процессы разделяемыхсерверов или диспетчеров. Эта же конструкция позволяет останавливатьсуществующий процесс разделяемого сервера после обработки текущегозапроса, а также останавливать процесс диспетчера для заданногопротокола после отсоединения текущих пользовательских процессов отэкземпляра.

Следовательно, установленные через MTS соединения не будут разры-ваться при останове процесса MTS, поскольку его фактический остановпроисходит лишь после завершения текущих транзакций. Конечно, про-цесс MTS можно уничтожить средствами операционной системы, но якатегорически не рекомендую это делать.

Предполагается ли поддержка множественныхпрослушивающих процессов!Работа прослушивающего процесса состоит в приеме запросов на соеди-нение и передаче их диспетчеру или процессу выделенного сервера. Дляобработки каждого запроса требуется определенное количество ресур-сов. Иными словами, каждый запрос отнимает часть процессорного вре-мени. Если прослушивающий процесс один, а запросов много, то деломожет кончиться перегрузкой прослушивающего процесса, накоплениемневыполненных запросов и задержками в выполнении всех запросов. Ра-зумеется, увеличение времени отклика будет вызывать недовольство по-льзователей. Чтобы обойти это узкое место и ускорить установлениесоединений, можно создать дополнительные прослушивающие процессыи разрешить объединение соединений и/или балансировку нагрузки. Обобъединении соединений и балансировке нагрузки мы подробнее погово-рим в следующем разделе, "Вопросы соединений", а сейчас посмотрим,

Page 200: Oracle 8i Networking 101

182 Глава 6

какие действия следует предпринять для создания более чем одного про-слушивающего процесса.

Когда в главе 3 вы пробовали менять параметры файла listener, ога сцелью создания второго прослушивающего процесса, вы фактически учи-лись выполнять одну из задач конфигурирования. Прежде всего необхо-димо выбрать порт, отличный от того, который используется текущимпрослушивающим процессом. В сильно загруженной системе можно вы-делить целый диапазон портов специально для создания дополнительныхпрослушивающих процессов. Затем потребуется выбрать подходящееимя. Определившись с именем и портом, вы должны отредактироватьфайл listen.er.ora, чтобы добавить в конфигурацию новый прослушиваю-щий процесс. В заключение вам нужно решить, сколько баз данных иликлиентов будет обслуживать каждый прослушивающий процесс. Опреде-лив, какие базы данных будут присвоены каждому прослушивающемупроцессу, вы можете отредактировать файл(ы) tnsnames.ora или конфи-гурацию сервера имен, чтобы изменить назначение портов в соответст-вии со своим планом. Помните, что имена новых прослушивающихпроцессов должны быть включены во все командные процедуры, исполь-зуемые для запуска и останова прослушивающих процессов, и что всепрослушивающие процессы должны запускаться и останавливаться поимени.

Существует много различных подходов к организации соединений клиен-тов с базой данных. При небольшом количестве клиентов можно остано-виться на выделенных соединениях через один прослушивающийпроцесс. Однако в случае Web-сайта или другой системы с очень интен-сивным трафиком стоит воспользоваться более элегантными решения-ми, предлагаемыми Oracle — например, объединением соединений.

Далее приводятся некоторые вопросы, относящиеся к областисоединений.

Следует ли предусмотреть увеличение размера очередипрослушивающего процесса?При планировании сети может выясниться, что ожидаемый объем тра-фика довольно велик. В этом случае одним из пунктов вашего плана мо-жет стать выбор размера очереди прослушивающего процесса. Еслипредполагается, что прослушивающий процесс будет принимать большоечисло запросов на соединения, можно разрешить постановку запросов вочередь. Это позволит прослушивающему процессу обрабатывать запро-сы, поступающие одновременно. Чтобы активизировать очередь, необ-ходимо указать ее размер, присвоив целое значение параметру queuesize.При планировании сети вы можете выбирать, использовать или неиспользовать очередь, и определять, какого размера ее делать.

В настоящее время очередь прослушивающего процесса поддержива-ется только для протоколов TCP/IP и DECnet. Размер очереди, принима-емый по умолчанию, зависит от операционной системы. Для Solaris иWindows NT 4.0 Workstation это 5, тогда как для Windows NT Server — 20.Когда и как следует использовать очередь и на что влияет ее размер?

Page 201: Oracle 8i Networking 101

Планирование сети 183

Запросы на соединения, получаемые прослушивающим процессом,почти сразу же обрабатываются. Если прослушивающий процесс одно-временно получит, скажем, десять запросов, то они будут поставлены вочередь. Эта очередь организована по принципу FIFO (first-in-first-out,"первым пришел — первым ушел"). Максимальное количество записейв очереди определяется параметром queuesize. Если очередь заполнена,то при попытке установить соединение клиент получит сообщение обошибке ORA-12451: No Listener.

В системах, где возможно одновременное поступление большого чис-ла запросов, увеличение размера очереди позволит накапливать большенеобработанных запросов и избежать сообщений ORA-12451.

Будет ли использоваться объединение соединений!Представьте, что вы читаете увлекательную книгу, а в это время звониттелефон. Вы снимаете трубку и слышите голос своего друга, который хо-чет узнать, как ваши дела, и заехать в гости. Во время разговора ваш друг,у которого заказана услуга "call waiting" ("ожидание вызова"), слышит сиг-нал, извещающий о поступлении другого звонка, и просит вас подождать,пока он проверит, кто звонит. Вы возвращаетесь к чтению, а когда вашсобеседник освобождается, продолжаете разговор. Ваш друг мог вестидва разных разговора по одной телефонной линии. Подобно этому объе-динение соединений позволяет процессу диспетчера одновременно об-служивать несколько клиентских соединений. Давайте выясним, что жетакое объединение соединений и как оно работает.

Если вы будете использовать многопоточный сервер, то должны при-нять решение, разрешать или нет объединение соединений. Объедине-ние соединений, подобно ожиданию вызова, позволяет разделять всемножество соединений диспетчера между несколькими клиентскими про-цессами. В результате максимизируется количество физических сетевыхсоединений с многопоточным сервером. За счет чего это становится воз-можным? Oracle использует механизм тайм-аута для временного освобож-дения транспортных соединений, если они остаются неактивными втечение заданного промежутка времени. Временно освобожденное физи-ческое соединение становится доступным для другого входящего вызова.Логическое соединение с неактивным процессом не освобождается, икогда процесс возобновляет работу, физическое соединение с диспетче-ром восстанавливается, подобно тому, как вы продолжаете разговорпосле возврата вашего друга на линию.

Будет ли использоваться балансировка нагрузкина уровне клиента?Если у вас есть дети, то вы наверняка знаете, как важно сбалансированнораспределить между ними коробку конфет. Если об этом не позаботить-ся, то каждый ребенок начнет жаловаться, что его обделили. Включаябалансировку соединений на уровне клиента, вы обеспечиваете равно-мерное распределение запросов на соединения между доступными про-слушивающими процессами, как если бы вы делили поровну конфетымежду своими детьми.

Page 202: Oracle 8i Networking 101

184 Глава 6

Для объединения соединений необходимо сконфигурировать и задей-ствовать MTS, тогда как балансировка нагрузки на уровне клиента требу-ет наличия нескольких прослушивающих процессов. После того как высконфигурируете несколько прослушивающих процессов и включите ба-лансировку нагрузки, установив значение ON для параметра load_balan-се в файле tnsnames.ora, клиентские запросы будут случайным образомраспределяться между прослушивающими процессами, чтобы ни один изних не был загружен больше, чем другие.

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

Будет ли использоваться отсоединение по таймеру, и если да,то сколько времени процесс может оставаться неактивным!В ранних версиях сетевых продуктов Oracle соединение могло разрыва-ться на стороне клиента, но сохраняться на стороне сервера. Инымисловами, сетевой процесс Oracle не уведомлял сервер Oracle о своем от-соединении. Такая ситуация часто возникала при перезагрузке клиент-ского ПК. Для клиента соединение разрывалось, но сервер об этом неподозревал. В результате отсоединенные процессы продолжали исполь-зовать ресурсы, причем эти процессы порой было очень трудно удалитьбез останова и перезапуска базы данных или всей операционнойсистемы.

В последующих версиях стало возможным отсоединение по таймеру,то есть обнаружение нерабочих соединений. Если клиент аварийнозавершает свою работу, то спустя некоторое время Net8 идентифи-цирует соединение как "зависшее", после чего инициирует откат не-завершенных транзакций и освобождение всех блокировок, удерживав-шихся клиентом.

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

Чтобы разрешить отсоединение по таймеру, необходимо добавить вфайл sqlnet.ora параметр sqlnet.expire_time, указав значение в минутах.Обнаружение нерабочих соединений невозможно при использованиипротокола локального обмена.

Если вы решите использовать отсоединение по таймеру, имейте ввиду:

• Генерация пробных пакетов увеличивает сетевой трафик,что может привести к снижению производительности сети.

Page 203: Oracle 8i Networking 101

Планирование сети 185

• В некоторых операционных системах может потребоваться до-полнительная обработка, чтобы прослушивающий процесс мог от-личить события, связанные с проверкой соединения, от другихсобытий, происходящих при нормальной работе системы. Этадополнительная обработка также может привести к снижениюпроизводительности сети.

Вопросы копирования и восстановленияНезависимо от того, насколько вы предусмотрительны и аккуратны в об-ращении с машинами и сетевым оборудованием, рано или поздно прои-зойдет событие, в результате которого нормальная работа с, системойстанет невозможной. К таким событиям относятся сбои аппаратуры ипрограмм, человеческие ошибки, а также стихийные бедствия — ураганы,наводнения, пожары.

В любом хорошем плане должны быть расписаны действия на случайчрезвычайных обстоятельств. Давайте рассмотрим вопросы, на которыеследует ответить при планировании сети.

Что делать, если нет доступа к компьютерной комнате!Я предпочитаю начинать с худших сценариев, поэтому давайте рассмот-рим самую ужасную ситуацию, которую только можно представить. Обе-зумевший пилот бомбардировщика выбрал в качестве мишени зданиевашей компании и сбросил на него серию бомб. Вам сказано, что к остат-кам здания нельзя будет подходить как минимум неделю, а все находивше-еся в нем оборудование полностью уничтожено. Конечно, большинствокатастроф не приводят к столь плачевным последствиям, но вам нужнопредставить самую невероятную ситуацию и разработать план, которыйпозволит восстановить сеть и данные даже в этом случае.

Если взять только что описанный сценарий, то вы должны продумать,как воссоздать вычислительный центр в другом месте. Для этого потребу-ется заменить все оборудование, заново построить сеть и восстановитьприложения. Вы должны определить, какая информация необходимадля организации эффективной сетевой работы на новом месте, а такжеобеспечить хранение и своевременное обновление копий прикладных исистемных программ вне вычислительного центра.

Насколько эффективна принятая стратегия резервногокопирования и восстановления!Возможность восстановления сети и базы данных полностью определяет-ся выбранными стратегиями резервного копирования и восстановления.Большинство людей тратят массу времени на обдумывание и реализациюпроцедур резервного копирования базы данных, забывая при этом о фай-лах сетевой конфигурации, без которых быстрое восстановление сетиневозможно.

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

Page 204: Oracle 8i Networking 101

186 Глава 6

доступном оборудовании. Вам следует протестировать все реализован-ные стратегии резервного копирования, чтобы убедиться в возможностииспользования резервных копий. Один мой знакомый администратор пе-риодически имитировал потерю одного-двух файлов, перенося их в дру-гой каталог, чтобы проверить, насколько быстро и эффективно персоналвычислительного центра сможет выполнить восстановление.

Имейте в виду, что магнитные головки ленточного накопителя, на ко-тором записывалась лента, могут быть разъюстированы. Чтобы такаялента читалась, головки должны находиться по отношению к ней в томже самом неправильном положении.

Какие еще сетевые связи необходимо воссоздать!Создавая план восстановления компьютерной системы, вы должныопределить, какие внешние связи потребуется продублировать. Напри-мер, если ваша сеть напрямую связана с сетью другой компании (подобнотому, как банк связан с федеральной резервной системой), как вы будетевоссоздавать эту связь на запасном сайте? Иными словами, вы должныпредусмотреть восстановление не только жизненно важных, но и всехостальных соединений, необходимых для продолжения работы в обыч-ном режиме.

Как будут распределяться IP-адреса в аварийной ситуации!Чтобы обеспечить быстрое восстановление в случае аварии, ваша компа-ния может держать наготове дублирующую систему, представляющуюсобой непрерывно обновляемую копию основной системы. В этом случаевы должны решить, как и когда будет выполняться переключение надублирующий сайт, и составить план замены IP-адресов.

Кроме того, вы должны составить все возможные схемы соединений,которые могут быть реализованы в аварийных ситуациях. Пусть, напри-мер, центром вашей сетевой "вселенной" является центр данных. Пред-ставьте себе все входящие и исходящие соединения этого центра в виделучей звезды. Поместите себя в середину и нарисуйте схему соединений.Теперь подумайте, какие IP-адреса придется изменить, если центр дан-ных переместится из середины в одну из конечных точек.

В наши дни Интернет позволяет с легкостью перемещаться из одногоместа в другое, но это не избавляет вас от необходимости иметь картувоссоздания сайта.

Page 205: Oracle 8i Networking 101
Page 206: Oracle 8i Networking 101
Page 207: Oracle 8i Networking 101

Nets Assistantопции Local

Page 208: Oracle 8i Networking 101

190 Глава 7

главе 6 мы с вами планировали сад. Для подготовки почвы мнепришлось использовать маленький ручной инструмент — догадайтесь, по-чему? Дело в том, что на нашем участке очень тяжелая глинистая почва,перемешанная с камнями. Мой обычный садовый инвентарь здесь прак-тически не поможет. Боюсь, что потребуется культиватор и много меш-ков торфа, перегноя и удобрений. Придется пойти в магазин садовыхпринадлежностей и купить все необходимое для дальнейшей работы. Несомневаюсь, что это облегчит работу.

Когда под рукой есть подходящие инструменты, жизнь становится на-много проще. Только представьте, насколько легче будет перекопать уча-сток при наличии механического роторного культиватора. Держу пари,что в этом случае мы не успеем оглянуться, как работа будет закончена.Конечно, мы можем сделать то же самое лопатами и мотыгами, но этозаймет намного больше времени и потребует гораздо больших усилий.Любую стоящую перед вами задачу всегда можно решить несколькимиспособами. Однако наличие подходящих инструментов поможет выпол-нить работу быстрее и эффективнее.

В следующих четырех главах вы познакомитесь с тремя различнымиинструментами, бесплатно поставляемыми корпорацией Oracle вместе сбазой данных. Все три инструмента имеют графический интерфейс поль-зователя (GUI) и могут работать как в среде Windows NT, так и в средеUNIX. Чтобы вызвать Net8 Assistant в UNIX, нужно ввести команду netasstв любом окне UNIX. При этом переменная среды DISPLAY должна указы-вать на рабочую станцию, поддерживающую приложения XI I/motif.Кроме того, на UNIX-хосте должны быть установлены библиотеки XII иJava. Для установки значения DISPLAY нужно добавить ":0.0" к IP-адресумашины. Например, IP-адресу 196.123.45.178 будет соответствовать зна-чение 196.123.45.178:0.0. IP-адрес рабочей станции должен быть зарегист-рирован на той машине, где находится выполняемый файл netasst.Обычно это делается с помощью команды xhost.

Итак, речь пойдет о следующих инструментах:

• Net8 Assistant (рассматривается в этой главе и в главе 8)• Net8 Configuration Assistant (изучается в главе 9)

• Connection Manager (описывается в главе 10)Эти три инструмента вместе с утилитой Listener Control, описанной

в главе 3, и утилитой Oracle Names Control, описанной в главе 4, со-ставляют инструментальный набор Oracle для управления сетевойконфигурацией.

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

Page 209: Oracle 8i Networking 101

Nets Assistant — опции Local 191

Базовые сведения о Net8 AssistantВ главе 4 говорилось, что NetS Assistant используется для централизован-ного конфигурирования сетевых компонентов и управления ими. Вы мо-жете работать с ним как на клиентской машине, так и на сервере. NetSAssistant позволяет определять и конфигурировать:

' » Прослушивающие процессы.• Простые имена и идентификаторы соединений, которые будут ото-

бражаться в дескрипторы соединений. Отображения простых имени идентификаторов соединений в дескрипторы соединений могутхраниться в файлах tnsnames.ora, в централизованном LDAP-совмес-тимом каталоге или на сервере имен Oracle.

» Методы именования, определяющие, каким образом будет выпол-няться разрешение идентификаторов соединений в дескрипторысоединений.

Кроме того, NetS Assistant можно использовать для запуска, останова инастройки предварительно сконфигурированных серверов имен Oracle,а также для сбора статистики по этим серверам.

Однако перед выполнением любой из этих задач инструмент необхо-димо запустить. Посмотрим, как это делается.

В системе UNIX инструмент NetS Assistant запускается из каталога$ORACLE_HOME/bin следующей командой:

.Q netasst

Когда вы устанавливаете OracleSi, Release 2 в системе Windows NT,универсальный установщик (Universal Installer) по умолчанию выбираетдиск с наибольшим доступным пространством. В моем случае установщиквыбрал диск D: и предложил создать каталог D:\Oracle\Ora81. Я согласи-лась с установками по умолчанию, поэтому в моей системе переменнаяORACLE_HOME получила значение OracleOraSl. Поскольку я просиласоздать демонстрационную базу данных, мне было предложено ввести ееимя. Недолго думая, я выбрала ORCL.

Я делюсь всей этой информацией для того, чтобы вы поняли, какоесоглашение об именовании используется Oracle в пунктах меню Start >•Programs. В моей системе пункт для доступа к Oracle обозначен какOracle-OraHomeSl. Он имеет множество подпунктов, в число которыхвходит Network Administration. Таким образом, для запуска NetS Assistantиз Windows NT мне нужно выбрать

Start >• Programs >• Oracle-OraHomeSl >• Network Administration >•NetS Assistant

Если вы установите Oracle в другой каталог, то соответствующийпункт меню Start >• Programs будет называться по-другому.

После запуска NetS Assistant вы увидите начальный экран, показанныйна рис. 7.1.

Page 210: Oracle 8i Networking 101

192 Глава 7

Рис. 7.1. Начальный экран Net8 Assistant

Размеры окна Net8 Assistant можно менять. Например, увеличениеокна позволит читать справочную информацию без прокрутки.

Внимательно рассмотрим начальный экран Net8 Assistant и обсудимразличные возможности, которые предоставляет этот инструмент.

Базовые возможностиВойдя в Net8 Assistant, вы увидите в самой верхней части окна названиеинструмента и текущий каталог. Если путь к каталогу отсутствует, не бес-покойтесь. Это означает, что он еще не был указан.

Прямо под заголовком окна находится набор раскрывающихся меню:File, Edit, Command и Help. Давайте "прогуляемся" по ним и посмотрим,какие опции доступны.

Обратите внимание, что первые буквы в словах File и Help подчеркну-ты. Означает ли это, что для доступа к этим меню можно нажать соответ-ствующую клавишу? Попробуем нажать F. Нет, ничего не происходит.А если перед F нажать ALT? Сработало! Как видите, при нажатии клави-ши ALT курсор перемещается к самому левому меню, в нашем случае —File. Последующее нажатие F приводит к раскрытию меню и выделениюпервого пункта. Теперь вы можете перемещаться по пунктам меню, испо-льзуя мышь или клавиши со стрелками. Выбрав нужный пункт, щелкнителевой кнопкой мыши или нажмите Enter для его активизации. Если однаиз букв в названии пункта подчеркнута, то можно нажать соответствую-щую клавишу.

Page 211: Oracle 8i Networking 101

Nets Assistant — опции Local 193

Если пункт меню недоступен, то он будет выделен темно-серым цве-том (затенен). Доступные пункты показаны черным. Их можно выбиратьс помощью мыши или клавиш со стрелками.

Как и любое другое окно Windows, окно Net8 Assistant имеет в верхнемправом углу три кнопки:

• Кнопка с символом подчеркивания сворачивает окно без выходаиз инструмента или текущего режима.

• Кнопка с символом экрана разворачивает окно на весь экран.• Кнопка с символом X закрывает окно с выходом из инструмента

или текущего режима.

Пункты раскрывающихся менюРаскрывающееся меню File содержит следующие пункты:

• Open Network Configuration... (Открыть сетевую конфигурацию)• Save Network Configuration (Сохранить сетевую конфигурацию)• Save As... (Сохранить как)• Revert to Saved Configuration (Вернуться к сохраненной

конфигурации)• Exit (Выход) Alt+F4

Буква х в слове Exit подчеркнута. Это означает, что для выхода можнопоследовательно нажать клавиши ALT, F и X. Сочетание клавиш ALT+F4используется для закрытия окна и немедленного выхода из программы.Знак плюса говорит о том, что при нажатии второй клавиши первая дол-жна удерживаться.

Два пункта в меню File оканчиваются многоточием. Многоточие озна-чает, что выбор данного пункта сопряжен с дополнительными действия-ми. При выборе пункта Open Network Configuration вам потребуетсяуказать каталог, в котором находится файл сетевой конфигурации. Ана-логичные действия нужно будет выполнить при выборе пункта Save As.

В раскрывающемся меню Edit предлагаются следующие пункты:

• Create... (Создать)« Delete (Удалить)• Rename... (Переименовать)

Первоначально эти пункты затенены, поскольку вы еще не выбралиничего, что могло бы их активизировать.

Раскрывающееся меню Command содержит такие пункты:

• Test Service... (Протестировать службу)• Discover Oracle Names Server (Обнаружить сервер имен Oracle)• Reload All Names Servers (Заново загрузить все серверы имен)

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

В раскрывающееся меню Help входят следующие пункты:

• Contents (Содержание)• Search for help on... (Поиск справки по...)

Page 212: Oracle 8i Networking 101

194 Глава 7

• About Net8 Assistant (О программе NetS Assistant)

Пункты этого меню доступны сразу же после запуска NetS Assistant.Рассмотрим их более подробно.

Пункты меню HelpЕсли выбрать пункт Contents, то появится окно справочного навигатора(Help Navigator). Первоначально оно будет выглядеть так, как показанона рис. 7.2.

.. • - . • • • i • ; . ) .< • '

кун iu;r>,f,«j.

. . -, • • • •

SX^NetAssistaritHelp

Рис. 7.2. Начальный экран справочного навигатора

Подобно окну Net8 Assistant окно справочного навигатора имеет на-бор раскрывающихся меню: File, View, Tools и Help. Меню File содержитследующие пункты:

• Display (Показать) — первоначально затенен• Display to New Window (Показать в новом окне) —

первоначально затенен• Print Tree (Печать дерева) Ctrl+R• Print Topics (Печать тем) Ctrl+T• Close (Закрыть)

'••• Exit (Выход) Ctrl+X

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

• Contents (Содержание)р Index (Индекс)• Search (Поиск)• Expand (Раскрыть) — первоначально затенен

Page 213: Oracle 8i Networking 101

Nets Assistant — опции Local 195

• Collapse (Свернуть) — первоначально затенен• Expand All (Раскрыть все) — первоначально затенен• Collapse All (Свернуть все) — первоначально затененПри выборе пункта Tools открывается окно настроек справочной сис-

темы (Help Preferences), показанное на рис. 7.3. В нем можно изменитьгруппу языков (Language Group) с западноевропейской (Western Europe-an), установленной по умолчанию, на любую из 11 других. Кроме того, выможете изменить кодировку символов HTML с западноевропейской ISO8859-1 на латинскую для Мае, западноевропейскую для Windows или дляPC. В нижней части окна находится флажок, позволяющий сделать вашвыбор установкой по умолчанию. После того как вы сделали нужныеизменения, можете нажать кнопку ОК. Если вы ничего не меняли или нехотите сохранять изменения, нажмите Cancel, чтобы закрыть окно.

gg Help Preferences

Language Group

Western European

HTML Character Encoding

I? Make Default

OK I Cancel)

Рис. 7.З. Окно настроек справочной системы

Последнее раскрывающееся меню Help содержит следующие пункты:• Help on Help... (Справка по справке)• About... (О программе)Исследуйте эти пункты самостоятельно.

Пиктограммы и вкладки справочного навигатораПод строкой меню в окне справочного навигатора находятся две пиктог-раммы, изображающие страницы текста, и три вкладки. Сразу послеоткрытия окна навигатора пиктограммы недоступны. Если навести указа-тель мыши на первую из них, то появится надпись Display (Показать),а при наведении указателя на вторую пиктограмму появляется надписьDisplay in New Window (Показать в новом окне).

По умолчанию в окне навигатора будет выбрана вкладка Contents(Содержание). Вы видите здесь пиктограмму в виде книги, рядом с кото-рой написано NetAssistant Help. Книга закрыта, но слева от нее есть знакплюса (+). Он показывает, что данный раздел справки содержит подраз-делы. Щелкнем на нем. Как видите, теперь пиктограмма приобрела видоткрытой книги, а ниже появились семь других книг. Рядом с ними такжеприсутствуют знаки плюса. Вам доступны следующие разделы:

Page 214: Oracle 8i Networking 101

196 Глава 7

• Net8 Assistant Overview (Обзор NetS Assistant)• Net8 Assistant Environment (Среда NetS Assistant)• Directory (Каталог)• Local (Локальные опции)• Oracle Advanced Security (Усовершенствованные средства

безопасности Oracle)• Oracle Names Servers (Серверы имен Oracle)• Glossary (Глоссарий)He будем рассматривать здесь всю справочную документацию. Изучи-

те ее самостоятельно. Обратите внимание, что после выделения разделаNetAssistant Help вам станут доступны пункты Expand и Expand All в менюHelp. После раскрытия любой из ветвей справочного дерева вы сможететакже выбирать пункты Collapse (Свернуть) и Collapse All (Свернуть все).

Выбрав вкладку Index (Индекс), вы увидите три области. Первая изних содержит указание "Type the first few letters of a word" ("Введите неско-лько первых букв слова") и поле для ввода. Вторая область содержит спи-сок ключевых слов, а третья — указание "Select a topic and click Open"("Выберите тему и щелкните на кнопке Open"), пустое окно и кнопкуOpen.

Когда вы начинаете вводить буквы в верхнем поле вкладки Index,в расположенном ниже окне появляются слова и словосочетания, начи-нающиеся на>эти буквы. Соответствующие темы выводятся в нижнемокне. На рис. 7.4 показано, какие темы будут доступны после ввода слова"listener".

КЩНе1р Navigator

File View Tools Help

Index

Type the first few letters of a word

(listener.

link qualifier

link qualifier configuration

link qualifiers

Links tab for Oracle Names servers

I

General Parameters: Logging & Tracing

Рис. 7.4. Вкладка Index с введенным словом

Page 215: Oracle 8i Networking 101

Nets Assistant — опции Local 197

Найдя нужную тему, щелкните на ее названии в нижнем окне. Еслищелкнуть дважды или нажать кнопку Open, откроется другое окно, со-держащее справочную информацию. После выбора темы станут доступ-ны пиктограммы Display и Display in New Window. Все способы выводасодержимого документа — двойной щелчок на названии темы, щелчокна кнопке Open, щелчок на пиктограмме Display и щелчок на пиктограм-ме Display in New Window — дают одинаковый результат: информацияотображается в новом окне.

Третья вкладка называется Search (Поиск). В верхней ее части содер-жится указание "Type the words for which you want to search" ("Введите сло-ва, по которым вы хотите выполнить поиск"), поле для ввода слов икнопка Search. Чтобы при поиске учитывался регистр символов, нужноустановить флажок Case-sensitive. Под этим флажком находится переклю-чатель "Search for", позволяющий задать следующие режимы поиска:

• All of these words (Все слова)• Any of these words (Любое из слов)• This Boolean expression (Булево выражение)

В нижней части вкладки находится окно результатов с заголовком"Results: Select a topic and click Open" ("Результаты: выберите тему и щелк-ните на кнопке Open"). На рис. 7.5 показана вкладка Search с результата-ми поиска по слову "Listener". В самом ее низу написано, что всего былонайдено 68 тем.

El Help Navigator

fie View Tools Help

mmts

Type the words for which you want to search

| Listener

Г Case-sensitive

Search for

* All of these words

f Any of these words

f This Boolean expression

Results: Select a topic and click Open

Rank I Topic Title

Configure Listener Addresses NeWssi... Ж

Listener Configuration Overview NetAssi... •

Choose Listener Name dialog box NetAssi... W

Found 68 topics

Рис. 7.5. Вкладка Search с результатами поиска

Page 216: Oracle 8i Networking 101

198 Глава 7

ВниманиеПри работе с любым из инструментов Oracleследует просматривать все содержимое экрана.За пределами отображаемой области можетнаходиться дополнительная информация.

- : ' - < ••

Чтобы выйти из справочного навигатора, можно выбрать пункт меню• File >• Close или File >• Exit, нажать одновременно клавиши CTRL и X или

: ; просто щелкнуть на кнопке X в верхнем правом углу окна.

Навигатор Net8 AssistantЗакончив обзор раскрывающихся меню, перейдем к изучению остальныхэлементов окна Net8 Assistant. На левом краю окна находятся четыре пик-тограммы: большой знак плюса (+), большой знак X, маленький диск сразъемом и галочкой над ним, а также знак вопроса (?). Когда доступнакоманда Create, знак плюса меняет цвет с серого на зеленый. Когда ваместь что удалить (например, службу или прослушивающий процесс), знакX из серого становится красным, показывая, что объект может быть уда-лен. Если навести указатель мыши на значок диска, то появится надписьTest Service... (Протестировать службу), а если указать на знак вопроса, тоон увеличится и появится слово Help.

Правее пиктограмм расположено дерево навигатора с деревом конфи-гурации Net8. Рядом с надписью Net8 Configuration находится знак плю-са, показывающий, что под высшим уровнем есть другие элементы. Мыраскроем дерево навигатора чуть позже, а пока обратите внимание направую часть окна. Она содержит приветственное сообщение и короткийпояснительный текст, из которого следует, что Net8 Assistant можно ис-пользовать для конфигурирования имен, методов именования и прослу-шивающих процессов. В нижней части окна расположена область, кудабудут выводиться сообщения о состоянии.

Когда вы раскроете дерево навигатора и начнете выбирать опции, вправой части экрана будут появляться их описания. Итак, давайте раскро-ем навигационное дерево. Для этого можно дважды щелкнуть на словахNet8 Configuration или щелкнуть один раз на знаке плюса, находящемсяслева от пиктограммы, изображающей сеть. Раскрыв дерево, вы увидитеследующие опции:

• Local• Oracle Names ServersРядом с ними также находятся знаки плюса, говорящие о наличии оп-

ций следующего уровня. В этой главе рассказано о локальных опциях, а вглаве 8 — об опциях, относящихся к серверам имен Oracle.

Щелкнув один раз на опции Local, вы увидите текст, информирующийо том, что данная опция позволяет конфигурировать элементы сети вфайлах конфигурации, находящихся в каталоге ORACLE_HOME/network/admin. Каталог можно изменить, выбрав пункт Open NetworkConfiguration в раскрывающемся меню File. Во втором абзаце объясняет-

, : ся, что опция Profile предназначена для конфигурирования локального

Page 217: Oracle 8i Networking 101

Nets Assistant — опции Local 199

профиля, определяющего работу ядра Net8. Этот профиль хранится вфайле sqlnet.ora. Следующее, что вы можете делать,— это конфигуриро-вать простые имена в локальном файле конфигурации tnsnames.ora.Простые имена отображаются в дескрипторы соединений, идентифици-рующие службу и определяющие ее местонахождение. Наконец, вы може-те конфигурировать прослушивающие процессы на текущем хосте.Информация об их конфигурации заносится в файл listener.ora.

Раскрыв раздел Local, вы увидите три опции: Profile, Service Naming иListeners. Пояснительный текст справа при этом не изменится. РазделProfile дальше раскрыть нельзя, но рядом с двумя другими опциями вмоей системе показаны знаки плюса. Рассказывая в главе 4 о загрузкефайла tnsnames.ora в Net8 Assistant, я выполнила все эти действия, и те-перь в мою версию Net8 Assistant загружена информация об именах. Потой же причине мы увидим уже сконфигурированный сервер имен, когдабудем рассматривать опцию Oracle Names Servers. Я сконфигурировалаего, описывая процедуру создания сервера имен в главе 4. Взгляните нарис. 7.6, где показана часть навигационного дерева, раскрытая к этомумоменту.

Listeners

Ц? LISTENER

ёь'-ilOracle Names Servers

Рис. 7.6. Раскрытая ветвь Local навигационного дерева Net8 Assistant

После щелчка на опции Oracle Names Servers справа появится поясни-тельный текст. Он сообщает, что конфигурирование серверов именOracle служит альтернативой созданию файлов tnsnames.ora на каждойклиентской машине, и объясняет, как выполнить поиск всех существую-щих серверов имен Oracle в фиксированных местах сети и как

Page 218: Oracle 8i Networking 101

200 Глава 7

Рис. 7.7. Полностью раскрытое навигационное дерево Net8 Assistant

активизировать процедуру создания нового сервера имен. На рис. 7.7 по-казано полностью раскрытое навигационное дерево с информацией ослужбе имен Oracle.

Теперь, когда мы рассмотрели базовую структуру инструмента Net8Assistant, вернемся к разделу Local и посмотрим, как используется каждаяиз его опций.

Опции локальной конфигурацииНачнем изучение опций Net8 Assistant с самой верхней в разделе Local ипостепенно рассмотрим все опции в каждом из разделов. Раскрыв разделLocal, вы увидите, что на первом месте стоит опция Profile. Что же такоепрофиль и для чего он используется?

Мой друг недавно купил новый дом. В этом ему очень помог агент по тор-говле недвижимостью. Агенты, к которым можно обращаться в нашейместности, делятся на три категории: брокеры-продавцы, представляю-щие людей, которые продают недвилсимость; брокеры-покупатели, рабо-тающие только с лицами, желающими приобрести недвижимость; идвойные брокеры, которые представляют продавцов и одновременно ра-ботают с покупателями. Мой друг обратился к брокеру-покупателю, кото-рый предложил ему заполнить форму с перечислением требований кбудущему дому (так называемый профиль), а затем помог выбрать подхо-дящий вариант.

Page 219: Oracle 8i Networking 101

Nets Assistant — опции Local 201

Подобно брокеру, использующему профили для учета пожеланий кли-ентов, Oracle сохраняет в профиле те настройки Net8, которые вы пред-почитаете использовать на клиентских машинах и серверах своей сети.

Файл, содержащий информацию профиля, называется sqlnet.ora.В приложении А приведены все возможные параметры конфигурацииNet8. С помощью этих параметров вы можете указать, например,следующее:

• Домен по умолчанию, который будет добавляться к клиентскойстроке соединения, когда клиент не указывает домен.

• Последовательность, в которой Net8 будет пытаться получитьинформацию для разрешения имени. Например, вы можете указать,что сначала нужно обратиться к файлу tnsnames.ora, затем — к серве-ру имен Oracle и т.д.

• Будут ли задействованы средства протоколирования и трассировкидля выявления и разрешения проблем.

• Как должно быть сконфигурировано внешнее именование.• Предпочтительный путь для маршрутизации соединений.• Конфигурацию усовершенствованных средств безопасности Oracle

(Oracle Advanced Security).Теперь вы имеете представление о том, какую информацию может со-

держать профиль. Посмотрим, каким образом его можно настраивать.Когда вы щелкнете на опции Profile, в правой части окна Net8 Assistant

появится раскрывающийся список и несколько вкладок. Список содер-жит следующие пункты:

• Naming (Именование)• General (Общий)• Preferred Oracle Names Server

(Предпочтительный сервер имен Oracle)• Oracle Advanced Security

(Усовершенствованные средства безопасности Oracle)Внизу находится кнопка Help, при помощи которой можно получить

дополнительную информацию об опциях каждой вкладки. Рекомендуюпросматривать справку по каждой опции, которую вы будете изучать. Тамсодержится много полезной информации, помогающей более эффектив-но конфигурировать систему.

Профиль именованияВ раздел Naming входят три вкладки: Methods (Методы именования),Oracle Names (Служба имен Oracle) и External (Внешнее именование).Как видно из рис. 7.8, на вкладке Methods находятся два списка. В первомиз них перечислены доступные методы именования (Available Methods), aво втором — выбранные методы (Selected Methods). Второй список одно-временно задает последовательность использования методов. Обратитевнимание на четыре управляющие кнопки. Первая кнопка, со знаком "бо-льше, чем" (>), используется для перемещения доступного метода в спи-сок выбранных методов. Следующая кнопка, со знаком "меньше, чем" (<),

Page 220: Oracle 8i Networking 101

202 Глава 7

позволяет удалить метод из списка выбранных методов. Кнопки Promote(Повысить) и Demote (Понизить) предназначены для изменения порядкарасположения методов в списке, а тем самым и последовательности, в ко-торой Net8 будет пытаться разрешить имя. При том расположении мето-дов, которое показано на рисунке, Net8 сначала обратится к файлуtnsnames.ora, затем к серверу имен Oracle и в завершение попытается ис-пользовать метод именования по хосту. Если имя не удастся разрешитьпосле обращения ко всем этим методам, будет выдано сообщение обошибке.

Рис. 7.8. Выбор методов именования

Вторая вкладка раздела Naming называется Oracle Names (рис. 7.9).Здесь можно задать имя домена по умолчанию, которое будет использова-ться, когда домен не указан. Можно также указать интервал между после-довательными попытками разрешения имени (Maximum Wait EachAttempt) и количество этих попыток (Attempts Per Names Server). Значе-ние Maximum Wait Each Attempt — это число секунд от 1 до 600. Оно опре-деляет, сколько времени Net8 будет ждать перед посылкой запросаследующему серверу имен Oracle. Attempts Per Names Server — это числоот 1 до 5, определяющее, сколько попыток разрешения имени будет пред-принято перед выдачей сообщения об ошибке.

Последняя область этой вкладки относится к производительности.Здесь можно указать максимальное число открытых соединений (Maxi-mum Open Connections), которые может иметь клиент (от 3 до 64, поумолчанию — 3). Другой параметр (Initial Preallocation Requests) использу-ется для предварительного выделения начального количества сообщений

Page 221: Oracle 8i Networking 101

NetS Assistant — опции Local 203

в пуле сообщений клиента. Он может иметь значение от 3 до 256, по умол-чанию — 10. Пока сервер имен не начнет испытывать сильную перегруз-ку, значение по умолчанию изменять не следует.

о nflguration

Localняиз Naming

SH' Listeners

ri S Oracle Names Servers

Maximum Wait Each Attempt: |15

Attempts Per Names Server: ГГ"

Performance —

Maximum Open Connections: |3

nilial Reallocated Requests: [lfj

Рис. 7.9. Конфигурирование службы имен Oracle

Последняя вкладка раздела Naming называется External (рис. 7.10).Она позволяет определить, с помощью каких служб будет выполнятьсяразрешение имен в случае внешнего именования. Возможные варианты:сотовая служба каталога (Cell Directory Service, CDS), используемая в сре-де распределенных вычислений (Distributed Computing Environment,DCE); служба каталога NetWare (NetWare Directory Service, NDS), называе-мая также службой каталога Novell; и сетевая информационная служба(Network Information Services, NIS) компании Sun Microsystems, работаю-щая по так называемому протоколу "желтых страниц" (Yellow Pages proto-col). Каждая из этих служб предназначена для распространенияконфигурационной информации между компьютерами сети.

В поле Cell Name указывается действующее имя соты DCE (префикс).В данном примере было введено

[_| /. ./subsys/oracle/nairies

При использовании службы каталога NetWare вы можете указатьконтекст имен (Name Context), определяющий местонахождение объектабазы данных. От способа указания контекста имен зависит, какое имяслужбы — полное или частичное — потребуется вводить в строке со-

, единения. Предположим, что объекту базы данных присвоено имя

Page 222: Oracle 8i Networking 101

204 Глава 7

Рис. 7.10. Конфигурирование внешнего именования

SKDL.US.XYZCORP.COM, как в главе 4, где рассматривались глобальныеимена и глобальные связи баз данных. Если вы используете службу ката-лога NetWare, то можете ввести в поле Name Context значениеUS.XYZCORP.COM, и тогда клиенту останется указать только имя SKDL.

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

Общий профильДля настройки общего профиля предназначены четыре вкладки: Tracing(Трассировка), Logging (Протоколирование), Routing (Маршрутизация)и Advanced (Дополнительно). Перед тем как переходить к их изучению,стоит остановиться на одном моменте, который может быть неочевиден.Все перечисленные настройки относятся к той машине, которую выконфигурируете в данный момент. Следовательно, если вы соединились смашиной MARLENES-PC и выполняете настройку параметров, объеди-ненных под названием General, то создаете профиль конфигурации,предназначенный именно для машины MARLENES-PC. Теперь рассмот-рим каждую из опций подробнее.

На вкладке Tracing можно настраивать трассировку клиента (областьClient Information) и трассировку сервера (область Server Information).Трассировку следует включать только в том случае, когда возникла проб-лема с сетью и вы пытаетесь определить ее источник. Трассировка клиен-та используется для отслеживания действий, которые выполнялиськлиентом на протяжении сетевого сеанса. Трассировка сервера позволя-ет зафиксировать действия, которые выполнялись сервером.

Page 223: Oracle 8i Networking 101

Nets Assistant — опции Local 205

В обоих случаях параметр Trace Level (Уровень трассировки) можетпринимать следующие значения:

• OFF: трассировка выключена (устанавливается по умолчанию)» USER: трассировка для выявления ошибок, связанных

с действиями пользователя» ADMIN: трассировка для выявления системных проблем• SUPPORT: трассировка, ориентированная на службу

поддержки OracleНа каждом следующем уровне генерируется все более подробная

информация, позволяющая выявлять сетевые проблемы на сторонеклиента и/или сервера.

Чтобы включить трассировку клиента и/или сервера, нужно выбратьодин из уровней трассировки, указать каталог, в котором будет сохраненфайл с трассировочной информацией, и задать имя этого файла. Нарис. 7.11 показано, что для трассировки клиентской информации уста-новлен уровень ADMIN, а местонахождение каталога задано строкойD:\Oracle\Ora81\Network\trace. Введено также имя файла трассировки.Установка флажка Unique Trace File Name указывает, что оно должносохраняться уникальным. По умолчанию файлы трассировки помещают-ся в каталог $ORACLE_HOME/network/trace (в UNIX) или ORACLE_HOME\network\trace (в Windows NT), поэтому вводить показанный нарис. 7.11 путь на самом деле не требуется. По умолчанию файлы трасси-ровки называются sqlnet.trc для клиента и svr_<pid>.trc для сервера. Есливас устраивают эти имена и каталог по умолчанию, то для включениятрассировки достаточно выбрать ее уровень.

E>i-9Serv'c9 Naming

e x » Listeners

racle Names Servers •- Client Information --*** * -• —*-

I Trace Level: [ADMIN

i Trace Directory: ID'toracleiOraSHNetw

I Trace File: IcIienTji'ace.trc

Unique Trace File Name: K?

Server Information

Trace Level: [OFF

Trace Directory: \

Trace File: ' !

Рис. 7.11. Конфигурирование трассировки

Page 224: Oracle 8i Networking 101

206 Глава 7

Когда и зачем нужно включать протоколирование на стороне клиентаили сервера? Прежде всего, протоколирование позволяет отслеживатьошибки, возникающие при работе Net8, и сохранять информацию о нихдля последующего анализа. Кроме того, вы можете собирать различнуюстатистику (например, по работе служб) с целью определения структурытрафика. В отличие от трассировки, которая дает подробную информа-цию о выполняемых действиях, протоколирование предоставляет общиесведения об удачных или неудачных соединениях процессов.

Вкладка Logging, показанная на рис. 7.12, используется для указаниякаталога журнала (Log Directory) и файла журнала (Log File). По умолча-нию для регистрации используются каталоги $ORACLE_HOME/network/log (в UNIX) или ORACLE_HOME\network\log (в Windows NT). Клиен-тский файл журнала по умолчанию называется sqlnet.log. Для сервераможно задать только каталог, а файл всегда имеет стандартное имя.

Рис. 7.12. Конфигурирование протоколирования

, ,-..-•;,:[ г.. . • • : •.

Как видно из рис. 7.13, на вкладке Routing находятся два флажка. Уста-навливая какой-либо из этих флажков, вы сообщаете Net8, что все запро-сы данной машины должны всегда маршрутизироваться указаннымспособом.

Первая возможность заключается в создании выделенного серверадля каждого сетевого сеанса данного клиента. Вспомните, что процессвыделенного сервера обслуживает только один сеанс и существует навсем его протяжении. Эта установка перекроет любые установки много-поточного сервера, поскольку параметр server=DEDICATED будет пере-даваться в дескрипторе соединения. К каким последствиям приведет

Page 225: Oracle 8i Networking 101

Nets Assistant — опции Local 207

Always Use Dedicated Servsr Г

Prefer Connection Manager Routing Г

Рис. 7.13. Конфигурирование маршрутизации

установка флажка Always Use Dedicated Server? Соединение данного кли-ента будет быстрее, но выделенные соединения могут замедлить работусервера. Эта установка подходит при выполнении крупных транзакций сочень небольшими периодами простоя, как в случае загрузки большихмассивов данных в пакетном задании.

Второй флажок, Prefer Connection Manager Routing, указывает Net8 нанеобходимость связываться с менеджером соединений Oracle, когда этовозможно. Концентрация соединений, мультипротокольная поддержка иуправление доступом на уровне Net8 — вот лишь некоторые из возможно-стей, предоставляемых менеджером соединений. Сетевая конфигурацияклиента, который устанавливает соединения через менеджер соедине-ний, отмечается специальным образом. Чтобы эти специальные соедине-ния получили приоритет над всеми остальными, вы должны установитьфлажок Prefer Connection Manager Routing. О менеджере соединенийOracle будет подробнее рассказано в главе 10.

На рис. 7.14 показана вкладка Advanced раздела General. Параметрыэтой вкладки позволяют дополнительно настроить профиль для клиент-ской или серверной машины. Как и при установке параметров на другихвкладках раздела General, настройки будут относиться к той машине, накоторой вы работаете.

Вы когда-нибудь засыпали перед телевизором? Представьте: вы спите,а телевизор работает, хотя его никто не смотрит. А сколько раз вы уходи-ли из комнаты, забыв выключить телевизор? Согласитесь — неплохо"сконфигурировать" телевизор так, чтобы он периодически проверял,спите вы или нет, находитесь в комнате или вышли, и при необходимо-сти автоматически отключался. Конечно, за одну ночь мы не сэкономим

Page 226: Oracle 8i Networking 101

208 Глава 7

TNSTime Outvalue:

Client Registration ID:

Turn OffUNIX Signal Handling: Г

Disable Out-of-Band Break Г

Рис. 7.14. Конфигурирование дополнительных параметров профиля

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

К сожалению, сейчас нет такой технологии, которая позволяла бы те-левизору определять ваше состояние и реагировать соответствующим об-разом. Однако в мире сетей Oracle вы можете использовать параметрTNS Time Out, показанный на рис. 7.14, чтобы задать период посылкипробных пакетов, позволяющих проверить, активно ли соединение кли-ент-сервер. Этот параметр можно использовать только на сервере. Есликлиент аварийно завершил свою работу или соединение больше не испо-льзуется, но продолжает оставаться открытым, то посылка пробного па-кета вызовет ошибку. В этом случае сервер закроет соединение иосвободит ресурсы, чтобы их могли использовать другие соединения.

Регистрационный идентификатор клиента (Client Registration ID) —это строка длиной до 128 символов, однозначно идентифицирующая дан-ного клиента. Прослушивающий процесс включает этот идентификаторв свой файл журнала. Таким способом вы можете идентифицировать каж-дого клиента Oracle в своей сети, чтобы следить за сетевой активностью.

Два последних элемента вкладки Advanced — это флажки. Первый изних обозначен как Turn Off UNIX Signal Handling (Выключить обработкусигналов UNIX). Чтобы лучше понять его назначение, представьте себеребенка, играющего с мелками, который в процессе создания своей кар-тины изрисовал все вокруг. Потом либо сам ребенок, либо его родителидолжны навести порядок. Однако в процессе стирания мела со стола,стен и потолка взрослый сам окажется перепачкан, и ему тоже придетсячиститься.

Page 227: Oracle 8i Networking 101

NetS Assistant — опции Local 209

Какое отношение это имеет к обработке сигналов? Дело в том, чтоклиентское приложение может породить серверный процесс изнутрибазы данных, через протокол локального обмена. В этом случае приложе-ние отвечает за наведение порядка после завершения порожденного импроцесса. Иными словами, кто-то должен убрать за ребенком, когда тотзакончит рисовать. Процесс, обеспечивавший очистку, становится не-нужным после выполнения своей задачи. Тот, кто убирался, теперь сампокрыт мелом. За уничтожение таких процессов отвечают обработчикисигналов (signal handlers). Они должны завершать процедуру очистки.

Установив флажок Turn Off UNIX Signal Handling, вы указываетеNetS, что очистка после завершения порожденного процесса должна вы-полняться инициализирующим процессом UNIX, а не обработчикамисигналов. Разберемся, как это происходит.

Инициализирующий процесс UNIX всегда имеет идентификаторпроцесса (PID), равный 1, и выполняет следующие задачи:

• Будучи вызван ядром UNIX после завершения процедуры началь-ной загрузки, считывает системные файлы инициализации, такие,как /etc/re*, и переводит систему в заданное состояние.

• Становится родительским процессом для любого "висящего" порож-денного процесса. Например, когда родительский процесс заверша-ется, не дожидаясь завершения порожденных им процессов,последние становятся "висящими" и наследуются инициализирую-щим процессом.

Все это описано в стандарте UNIX SVR4. Для завершения процесса мо-гут с равным успехом использоваться пользовательские обработчики вы-хода, сконфигурированные при помощи UNIX-функции atexit(O). Выможете разрешить выполнение очистки либо инициализирующему, либородительскому процессу. Для успешной очистки родительский процессдолжен иметь возможность обрабатывать все прерывания по сигналам за-вершения, что требует написания дополнительного кода. Если вы устано-вите флажок Turn Off UNIX Signal Handling, то обработка сигналазавершения процесса будет выполняться инициализирующим процессомUNIX. Если не устанавливать этот флажок, то за обработку будет отве-чать родительский процесс. В большинстве случаев лучше предоставитьобработку таких ситуаций инициализирующему процессу. В конце кон-цов, это одна из тех задач, для которых он создавался.

Второй флажок обозначен как Disable Out-of-Band Break (Запретитьвнеполосные прерывания). Если он установлен, клиент может отменитьоперацию во время ее выполнения. В противном случае все посланныезапросы будут обрабатываться до конца. Обычно этот флажок устанавли-вается в том случае, когда базовый транспортный протокол, используе-мый клиентом, не поддерживает внеполосные прерывания.

Профиль предпочтительных серверов имен OracleЧтобы клиентские машины могли получать информацию от серверовимен Oracle, необходимо определить их местонахождение в сети. После-довательность перечисления серверов имен будет определять, с каким из

8 Зак. 726

Page 228: Oracle 8i Networking 101

210 Глава 7

них клиент попытается установить связь в первую очередь. Вспомните,что раскрывающееся меню Command содержало команду Discover OracleNames Servers (Обнаружить серверы имен Oracle). По этой командесоставляется список серверов имен, упорядоченный по времени их от-клика — от меньшего к большему. На платформе UNIX элементы этогосписка хранятся в файле .sdns.ora, а на платформе Windows NT — в файлеsdns.ora. Имейте в виду, что порядок перечисления серверов в спискепредпочтительных серверов замещает порядок, в котором они перечис-лены в списке обнаруженных серверов. Если вы решите использоватькоманду обнаружения после ввода значений в разделе Preferred OracleNames Servers, то вам следует удалить все записи из профиля предпочти-тельных серверов.

Как видно из рис. 7.15, раздел Preferred Oracle Names Servers содержитвсего одну вкладку. Если бы заранее не был сконфигурирован серверимен Oracle, то вкладок вообще бы не было, поскольку для выбора пред-почтительного сервера имен нужно иметь как минимум один такойсервер.

Semes Naming> Listeners

&4jOracle Names Sewers

Рис. 7.15. Конфигурирование предпочтительных серверов имен

Этот экран отличается от предыдущих тем, что кроме кнопки Helpздесь присутствуют кнопки New и Delete. Полагаю, что они не нуждаютсяв объяснении.

На вкладке расположен раскрывающийся список протоколов. Длякаждого из них требуется указывать определенные параметры. Протоко-лы и связанные с ними параметры перечислены в таблице 7.1, взятой не-посредственно со справочного экрана Net8 Assistant. В некоторых

Page 229: Oracle 8i Networking 101

Net8 Assistant — опции Local 211

случаях требуется более одного параметра, и тогда вы увидите несколькополей ввода. Поскольку TCP/IP и TCP/IP с SSL требуют одинаковыхпараметров, в таблице они объединены.

Таблица 7.1.Протоколы и требуемые параметры

Протокол

IPC

Named Pipes

Named Pipes

Параметр

. key

server

pipe

Описание

Способ идентификации сервера. Корпорация Oracle ре-комендует использовать имя службы.

Имя базы данных OracleSi.

Имя канала, используемого для соединения с сервером(то же самое ключевое слово PIPE, которое указываетсяна сервере, использующем протокол Named Pipes). Этоимя может быть любым.

SPX service Имя сетевого приложения, основанного на TNS.

TCP/IP и TCP/IP host Имя хоста, присвоенное серверу.cSSL

TCP/IP и TCP/IP port Номер порта прослушивающего процесса.cSSL

В данном примере я выбрала протокол TCP/IP, указав имя своеймашины (MARLENES-PC) и порт 1575.

Профиль усовершенствованных средствбезопасности OracleВ OracleSi, Release 2 предусмотрена поддержка многих адаптеров аутен-тификации, разработанных независимыми производителями. Но что та-кое адаптер аутентификации? Чтобы ответить на этот вопрос, неслишком вдаваясь в подробности, подумаем о том, каким образом можнодоказать, что вы — это действительно вы. Когда вы подходите к кому-ни-будь на вечеринке, обычно говорите: "Привет, меня зовут ..." и называетесвое имя. Как правило, этого бывает достаточно, и ваш собеседник не за-дает дополнительных вопросов. Но если вы первый раз получаете води-тельское удостоверение, то потребуются более веские доказательства,что вы действительно тот, за кого себя выдаете. Одних слов здесь недо-статочно. Необходимо показать свидетельство о рождении или другойдокумент, удостоверяющий личность. Получив водительское удостовере-ние, вы сможете использовать его в качестве такого документа, хотя и нево всех случаях. Чтобы поехать в другую страну, вам нужно взять свидете-льство о рождении, две фотографии и подать заявление на получениепаспорта. При наличии паспорта вы можете путешествовать по всемумиру. Паспорт служит доказательством, что вы — это вы.

Но как вы удостоверите свою личность в разговоре по телефону? Какправило, для этого вам потребуется сообщить специфическую информа-цию, например девичью фамилию матери или свой номер социального

8* .

Page 230: Oracle 8i Networking 101

212 Глава 7

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

Когда вам нужно аутентифицировать себя при работе на компьютере,ситуация усложняется. Для решения этой задачи используется ряд про-граммных продуктов, называемых в Net8 методами. К ним относятсяKerberos, CyberSafe, SecurlD, RADIUS, Identix и NTS. Эти конкретныепродукты перечислены здесь, поскольку они поддерживаются Oracle имогут конфигурироваться в разделе профиля, обозначенном как OracleAdvanced Security.

К разделу Oracle Advanced Security относятся вкладки Authentication(Аутентификация), Other Params (Прочие параметры), Integrity (Целост-ность), Encryption (Шифрование) и SSL. На рис. 7.16 показана первая изних, Authentication.

eJService Naming

3p Listeners

jl Oracle Names Servers

Рис. 7.16. Выбор методов аутентификации

Всего доступно пять продуктов, один из которых выбран. Каждый про-дукт, или метод, имеет свой набор параметров. Все они перечислены вприложении А. Между списками доступных и выбранных методов распо-ложены четыре управляющие кнопки: Add (>), Remove (<), Promote иDemote. Используя эти кнопки, вы можете добавлять методы и изменятьпорядок их расположения в списке. После выбора методов, соответству-ющих установленным в вашей системе продуктам, нулсно перейти ко вто-рой вкладке, Other Params, чтобы ввести необходимые параметры. Нарис. 7.17 показаны параметры службы аутентификации Kerberos(V5).

Page 231: Oracle 8i Networking 101

Nets Assistant — опции Local 213

onfiguration

Local

H»&Service Naming

Listeners

l±>-- ^Oracle Names Servers

Advanced Seuinly

Other Params

Authentication Service: KERBEROSfVS)

Service: • '

Credential Cache File: pjnpu«5cache

Configuration File:

Realm Translation File: c:>krb5y<rb.realms

KeyTaole:

Clock Skew:

Рис. 7.17. Конфигурирование служб аутентификации

Службы Kerberos и RADIUS требуют нескольких параметров, службамNTS и SecurelD параметры не нужны, a Identix и CyberSafe требуют поодному параметру. Изучите их самостоятельно. Помните, что кнопкаHelp позволяет получить справку по каждому из параметров, а при необ-ходимости вы всегда можете обратиться к документации, поставляемой сэтими продуктами.

Вкладка Integrity, показанная на рис. 7.18, содержит два флажка, Serverи Client, рядом с которыми находятся раскрывающиеся списки ChecksumLevel (Уровень контрольной суммы). Для чего они используются? Как вызнаете из глав 1 и 2, все пересылаемые по сети сообщения разбиваютсяна фрагменты, помещаемые в пронумерованные пакеты. Заголовок каж-дого пакета содержит контрольную сумму, которая позволяет проверить,не было ли содержимое пакета искажено во время передачи. На вкладкеIntegrity вы можете указать, каким образом будет использоваться криптог-рафическое контрольное суммирование, обеспечивающее дополнитель-ный контроль целостности данных с целью защиты от подмены.Возможные значения параметра Checksum Level и их описания приведе-ны в таблице 7.2.

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

Page 232: Oracle 8i Networking 101

214 Глава 7

Service Naming

Listeners

eM%Oracle Names Servers

Рис. 7.18. Конфигурирование средств контроля целостности данных

Таблица 7.2.Возможные значения параметра Checksum Level для клиента и сервера

Значение Описание

Required Использовать службу безопасности или не устанавливать соединение.

Requested Использовать службу безопасности, если это разрешено другой стороной.

Accepted Использовать службу безопасности, если этого желает другая сторона.

Rejected Не использовать службу безопасности, даже если этого желает другая сторона.

Во всех сценариях предполагается, что я хочу установить соединениес вашей машиной. Если у меня установлено значение Required (Требует-ся), а у вас — Accepted (Допускается), то соединение не будет установле-но, поскольку я не просто желаю вычислять контрольную сумму, а требуюэтого. Если я установлю значение Requested (Запрашивается), то соеди-нение будет установлено, если у вас стоит значение Accepted, Requestedили Required. Устанавливая у себя значение Accepted, я заявляю, что мнене нужна служба безопасности, но я буду ее использовать, если на вашейстороне установлено значение Required или Requested и наши алгорит-мы совпадают. Интересно, что значение Rejected (Отклоняется) работа-ет не совсем так, как можно ожидать. Устанавливая значение Rejected,я заявляю, что не хочу использовать службу безопасности, но, несмотряна это, мне нужно установить соединение. Если вы укажете значениеRequired, то соединение не будет установлено. Но если вы укажете

Page 233: Oracle 8i Networking 101

Nets Assistant — опции Local 215

значения Requested, Accepted или Rejected, то соединение будет нормаль-но установлено без использования службы безопасности. В главе 13 этизначения рассматриваются более подробно.

Следующая вкладка раздела Oracle Advanced Security — Encryption. Рас-крывающийся список Encryption содержит два пункта: Client и Server. Нарис. 7.19 выбран вариант Server. Параметр Encryption Type (Тип шифро-вания) может принимать те же значения, что и параметр Checksum Levelна вкладке Integrity, а именно: accepted, rejected, required и requested.Ключ шифрования (Encryption Seed) представляет собой случайно вы-бранный набор символов, на котором основано шифрование. Всего до-ступно пять методов шифрования. На рис. 7.19 ни один из них не выбран.

uration

Local

NN•1S>Q Service Naming

e J» Listeners

ЕЫ%Oracle Names Servers

Рис. 7.19. Конфигурирование средств шифрования

Последняя вкладка раздела Oracle Advanced Security относится к про-токолу SSL (Secure Socket Layer). Этот протокол, представляющий собойпромышленный стандарт, обеспечивает аутентификацию, шифрование иконтроль целостности данных для клиентов и серверов. Вкладка SSL по-казана на рис. 7.20. По ее виду можно заключить, что достаточно выбратьодну из опций, и дело сделано. Но это не так.

После щелчка на опции Client или Server экран примет вид, показан-ный на рис. 7.21, и вам потребуется ввести дополнительную информа-цию. В данном случае щелчок произведен на опции Server.

Page 234: Oracle 8i Networking 101

216 Глава 7

Рис. 7.20. Вкладка SSL

- Configure SSL for r blient * Server

Wallet.Directy

Holt: In order to им SSLfof server o6nn«etloru, you must chthe protocol, TCP/IP with SSL. when oonfigurinn the Listen*

Рис. 7.21. Конфигурирование SSL для сервера

Page 235: Oracle 8i Networking 101

Nets Assistant — опции Local 217

Набор клиентских опций будет отличаться только отсутствием нижне-го флажка, который показывает, требуется ли аутентификация клиента.В первую очередь необходимо указать каталог, в котором будет хранить-ся ваш электронный бумажник (security wallet). По умолчанию устанавли-ваются шесть семейств шифров (sipher suites), которые будут показаныпосле щелчка на кнопке Add (см. рис. 7.22). Если установить флажок ShowUS Domestic Cipher Suites (Показать семейства шифров, доступные натерритории США), то число вариантов увеличится до 13.

f Select в Ciphei Suite to enable • XI

AuthenticationRSA_EXPORT

RSA_EXPORT

RSA

RSA

DH_anonDH_anon

! EncryptionDES40_CBC

RC4_40

NULL

NULL

RC4_40

DES40.CBC

I Data IntegritySHAMD5SHAMD5

MD5

SHA

~ Show US Domestic Cipher Suites

JJkj Cancel [

Рис. 7.22. Окно выбора комплекта шифров

Раскрывающийся список Require SSL Version (Требуемая версия SSL)содержит два пункта: Any (Любая) и 3.0. Замечание, приведенное прямонад кнопкой Help, напоминает о том, что если вы собираетесь использо-вать SSL, то при конфигурировании прослушивающего процесса необхо-димо указать протокол TCP/IP с SSL.

Конфигурирование имен службВ районе, где я живу, до продуктового магазина можно добраться неско-лькими разными путями. Можно пробираться по главным улицам, частопереполненным людьми, а можно пойти в обход, свернув в боковые пере-улки. В часы пик я предпочитаю обходной маршрут, хотя он длиннее поч-ти на четверть мили. Я убедилась, что это позволяет попасть в нужноеместо гораздо быстрее.

Признаюсь, я довольно ленива и при выполнении какой-либо задачипредпочитаю вводить как можно меньше слов. Когда мне нужно соедини-ться с базой данных или службой, я пользуюсь псевдонимами. Мой методлокального именования сконфигурирован так, чтобы я могла вводитьпростые имена сетевых служб, которые затем транслируются в необходи-мую строку соединения. Вместо полной строки соединения, например

Q connect NELSON/[email protected]

Page 236: Oracle 8i Networking 101

218 Глава 7

я предпочла бы ввести

Q connect NELSON/NELPW@SKDL

и предоставить системе самой разрешить простое имя в информацию,требуемую для установления запрошенного соединения.

В этом разделе рассказано о том, как настроить метод локального име-нования для разрешения простых имен в дескрипторы соединений. Заме-тим, что если вы пользовались какой-либо версией инструмента Net8 EasyConfig, поставлявшегося с более ранними версиями Oracle, то обнаружи-те, что теперь этот инструмент вошел в состав Net8 Assistant под видомопции Service Naming. Если вы знаете, как работать с Net8 Easy Config, томожете лишь бегло просмотреть данный раздел.

На рис. 7.23 показано, как выглядит экран после выбора опции ServiceNaming. В правой части окна приведена довольно полезная вводная ин-формация. Когда вы щелкаете на опции Service Naming в навигационномдереве, большой знак плюса (+) в крайней левой части окна становитсязеленым, показывая, что теперь можно создавать имена сетевых служб.Одновременно становится доступным пункт Create в раскрывающемсяменю Edit.

Рис. 7.23. Начальный экран Service Naming

После щелчка на знаке плюса или выбора пункта меню Edit >• Createпоявится окно мастера имен сетевых служб (Net Service Name Wizard), по-казанное на рис. 7.24. Как видите, имя сетевой службы в поле Net ServiceName уже введено.

Page 237: Oracle 8i Networking 101

Nets Assistant — опции Local 219

To access an Oracle database, or other service, across the networkyou use a net service name. This wizard will help you create a netservice name.

Enter the name you want to use to access the database or service. Itcan be any name you choose.

Net Service Name:

Back

Рис. 7.24. Начальный экран мастера имен сетевых служб

На следующем экране вам будет предложено выбрать подходящий се-тевой протокол для соединения с базой данных. Как показано нарис. 7.25, в число возможных вариантов входят TCP/IP, TCP/IP с SSL,SPX, Named Pipes и IPC. Здесь выбран TCP/IP.

То communicate with the database across a network, a network protocolis used. Select the protocol usedforthe database you want to access.

ТСРЛР with SSL (Secure Internet ProtocoDISPX (NetWare Networking)Named Pipes (Microsoft Networking)

[iPC (Local Database) i

Рис. 7.25. Экран выбора протокола

На третьем экране нужно ввести параметры выбранного ранее прото-кола. Если вы внимательно посмотрите на рис. 7.26, то увидите, что тамзапрашивается информация, характерная для TCP/IP: имя компьютера,на котором находится база данных, и порт прослушивающего процесса.Выбрав другой протокол, вы получили бы приглашение на ввод информа-ции о конфигурации именно этого протокола. Например, для протокола

Page 238: Oracle 8i Networking 101

220 Глава 7

Cancel

То communicate with the database using the TCP/IP protocol, thedatabase computer's host name is required, Enter the TCP/IP hostname for the computer where the database is located.

IMARLENES-PC

A TCP/IP port number is also required. The port number for Oracledatabases \s usually 1621. You should not normally need to specify adifferent port number.

Port Number: 1521

Рис. 7.26. Экран настройки протокола

SPX нужно вводить имя службы SPX, для протокола Named Pipes — имясервера и имя канала, а для протокола IPC — значение ключа.

Заполнив все предлагаемые поля и щелкнув на кнопке Next, вы увиди-те экран, показанный на рис. 7.27. В поле Service Name уже введено имяслужбы для своей базы данных. Обратите внимание, что здесь нужновводить полное доменное имя, а не только псевдоним. Параметр OracleSiConnection Type (тип соединения OracleSi) может принимать значенияDatabase Default, Shared Server и Dedicated Server. В данном случаевыбран вариант Database Default.

Net Service Name wizard, page 4 of 5: Seivice

To identify the database or service you must provide either its servicename, for OracleSi, or system identifer (SID), for OracleS or previousdatabase versions. The service name for an OracleSi database isnormally its global database name.

e (OracleBi) Service Name: JSKDLXVZCORP US^COMJ

<~ (OracleS or Previous) SID:

Optionally, you can choose if you want a shared or dedicated OracleBidatabase connection. The default Is to let the database decide.

OracleSi Connection Type: [Database Default

<i Back

Рис. 7.27. Экран выбора имени сетевой службы

Page 239: Oracle 8i Networking 101

Nets Assistant — опции Local 221

Указав все значения, требуемые на этом экране, и щелкнув на кноп-ке Next, вы увидите экран, показанный на рис. 7.28. Здесь вам даетсявозможность проверить соединение с указанной службой. Выполнивтест, вы убедитесь, что новое имя сетевой службы сконфигурированоправильно.

Press Test if you would like to verily that the database can bereached using the information provided.

When you are finished, or if you want to skip testing, press Finish tocreate the net service name or, If enabled, Next to continue.

Test...

iack tjext Г- } [ Finish

Рис. 7.28. Экран тестирования сетевой службы

В случае успешного завершения теста вы увидите результаты, показан-ные на рис. 7.29. Кнопка Change Login позволяет изменить учетнуюзапись, используемую для тестирования.

Expect connecting to the database to take from one to several seconds to complete. If it takes longer,please wait; the reason for any failure will be displayed. To change the userid and password used for thetest press Change Login.

When finished testing press Close. / ' :

Initializing first test to use userid: scott, password: tigerAttempting to connect using userid: scottThe connection test was successful.

Change Login... [ Test] Close |

Рис. 7.29. Сообщение об успешном завершении тестирования

Page 240: Oracle 8i Networking 101

222 Глава 7

ta Configuration

ф-'-t, Local

Profile

Service Naming

j-4$extproc_connection_data

h$orcl.wortij

Рис. 7.30. Экран Service Naming с информацией о службе SKDL

Если результаты тестирования вас удовлетворяют, можете закрытьокно Connection Test и щелкнуть на кнопке Finish. Новая служба немед-ленно появится в навигационном дереве, и вы увидите информацию о па-раметрах, показанную на рис. 7.30. На этом экране представлены всезначения, которые вводились при создании имени сетевой службы.

Если щелкнуть на кнопке Advanced в разделе Service Identification,то появится другое окно, в котором можно ввести дополнительнуюинформацию о службе. Это окно показано на рис. 7.31.

•Additional Service Settlnjs —;

Instance Name:

Session Date Unit: [

Г use for Heterogeneous Services

Oracle Rdb Settings

Rdn Database: f"

Type of Service:

Рис. 7.31. Окно дополнительных параметров службы

Page 241: Oracle 8i Networking 101

Nets Assistant — опции Local 223

Окно Advanced Service Options позволяет ввести информацию о базеданных Oracle Rdb, а также указать, что вы хотите обращаться к даннойслужбе через службу неоднородности.

Конфигурирование прослушивающих процессовКак и в случае с опцией Service Naming, после щелчка на опции Listenersв навигационном дереве Net8 Assistant вы увидите экран с общей инфор-мацией, а большой знак плюса станет зеленым. Начальный экранListeners показан на рис. 7.32. Рассмотрим процедуру создания прослуши-вающего процесса.

Рис. 7.32. Начальный экран Listeners

Прослушиваемые адресаЩелчок на зеленом знаке плюса или выбор пункта меню Edit >• Createприведет к появлению окна выбора имени прослушивающего процесса(Choose Listener Name), показанного на рис. 7.33. Я ввела здесь имяLIST1.

Listener Name: |UST1

OK| Cancel) ^Help']

Рис. 7.33. Окно выбора имени прослушивающего процесса

Page 242: Oracle 8i Networking 101

224 Глава 7

Когда вы щелкнете на кнопке ОК, новый прослушивающий процессбудет помещен в раздел Listeners навигационного дерева, а справа поя-вятся различные опции, позволяющие продолжать процесс конфигури-рования. Начальный экран для нового прослушивающего процессапоказан на рис. 7.34.

Рис. 7.34. Начальный экран прослушивающего процесса LIST1

Справа вверху находится раскрывающийся список с выбранным пунк-том Listening Locations (Прослушиваемые адреса). Другие пункты этогосписка — General Parameters (Общие параметры), Database Services (Служ-бы баз данных) и Other Services (Прочие службы). В центре экрана сооб-щается, что пока не сконфигурирован ни один прослушиваемый адрес, ипредлагается нажать кнопку Add Address (Добавить адрес), расположен-ную внизу. Рядом с ней находятся также кнопки Help и Remove Address(Удалить адрес).

После щелчка на кнопке Add Address появится вкладка Addressl, пока-занная на рис. 7.35. Она содержит информацию, которая была введенапри создании стандартного прослушивающего процесса LISTENER вовремя установки системы.

Если вы щелкнете на кнопке Add Address еще раз, то будет создана вто-рая вкладка, содержащая ту же информацию, что и вкладка Addressl, нобез номера порта. Список Protocols позволяет выбирать такие же прото-колы, как и при конфигурировании имени службы. Если вы укажете порт,который уже используется другим прослушивающим процессом, то припереходе к разделу General Options будет выдано сообщение об ошибке,и для продолжения конфигурирования вам придется изменить номерпорта. В данном случае номер порта LIST1 изменен на 1526.

Page 243: Oracle 8i Networking 101

Nets Assistant — опции Local 225

г Network Address

i Protocol: (тСРЛР

Host jmarlenas-pc

Рис. 7.35. Адресная информация для прослушивающего процесса LIST1

Общие параметрыРаздел General Parameters содержит три вкладки: General (Общие), Log-ging & Tracing (Протоколирование и трассировка) и Authentication(Аутентификация). На рис. 7.36 показано, какие параметры нового про-слушивающего процесса можно задать на вкладке General.

Поле Listener Name серого цвета, поскольку имя прослушивающегопроцесса уже выбрано. Чтобы его изменить, необходимо удалить и зано-во создать прослушивающий процесс. Другие параметры, кроме RegisterServices with Oracle Names (Зарегистрировать службы на серверах именOracle) и SNMP Contact Information (Контактная, информация SNMP),объяснялись в главе 3.

Если установить флажок Register Services with Oracle Names, то при за-пуске прослушивающий процесс будет регистрировать информацию ослужбах на серверах имен Oracle.

Информация, введенная в поле SNMP Contact Information, записыва-ется в файл snmp.ora. Она используется Oracle Enterprise Manager иможет быть любой. Обычно здесь указывается имя пользователя, работа-ющего с данным клиентом, и/или имя администратора.

Вкладка Logging & Tracing (рис. 7.37), как следует из названия, пред-назначена для конфигурирования средств протоколирования и трасси-ровки нового прослушивающего процесса.

Если протоколирование разрешено, то по умолчанию файл журналаразмещается в каталоге $ORACLE_HOME/network/log (на платформеUNIX) или ORACLE_HOME\network\log (на платформе Windows NT) иназывается по имени прослушивающего процесса с добавлением расши-рения .log.

Page 244: Oracle 8i Networking 101

226 Глава 7

Profile

Service Naming

^ Listeners

t-v?» LISTENER

i Г Register Services with Oracle Names

i-• • SNMP Contact Information - - -

Рис. 7.36. Конфигурирование общих параметровпрослушивающего процесса

f" Logging Disabled

. * Logging Enabled'

i Log F!le.fD;\oracielO™ennetworKilog\LiSTl .log

* Tracing Disabled

r" Tracing Enabled" —

Trace Levetjj.i»,,

Basic information useful forsolving a site related problem

Trace File: j,- . ; i.nejworWtre

Рис. 7.37. Конфигурирование протоколирования и трассировкидля прослушивающего процесса

Page 245: Oracle 8i Networking 101

NetS Assistant — опции Local 227

Если вы включите трассировку, то по умолчанию файл трассировкибудет помещен в каталог $ORACLE_HOME/network/trace (на платформеUNIX) или ORACLE_HOME\network\trace (на платформе Windows NT)и будет назван по имени прослушивающего процесса с добавлением рас-ширения .trc.

Вкладка Authentication, показанная на рис. 7.38, позволяет задать па-роль для нового прослушивающего процесса. Вы можете выбрать любойпароль или вообще не защищать прослушивающий процесс паролем.

Э-1Й Neffi Configuration

Local

Profile

Service Naming

^Listeners

LISTENER

kfi Oracle Names Servers

* Oo Not Require a Password for Listener Operations

<~ Require a Password for Listener Operations -

Password:

Рис. 7.38. Конфигурирование аутентификации для прослушивающегопроцесса

ВниманиеВ версии 8.1.6 информация, введенная на вкладкеLogging & Tracing, не сохраняется по команде SaveNetwork Configuration, поэтому для включениярегистрации и трассировки требуется вручнуюредактировать файл listener.ora. В версии 8.1.7эта ошибка исправлена.

Службы баз данныхПерейдя к разделу Database Services в первый раз, вы увидите сообщение,в котором говорится, что для данного прослушивающего процесса небыли явно сконфигурированы службы баз данных. Как видно из рис. 7.39,здесь также сообщается, что базы данных OracleSi сами регистрируются впрослушивающем процессе при запуске. Тем не менее вы можете вруч-ную указать информацию о базах данных, работающих под управлениемболее ранних версий Oracle.

Page 246: Oracle 8i Networking 101

228 Глава 7

Рис. 7.39. Параметры прослушивающего процесса базы данных

Чтобы вы знали, какую информацию предстоит вводить при необхо-димости ручного конфигурирования служб баз данных, на рис. 7.40 пока-зано, как будет выглядеть экран после щелчка на кнопке Add Database.

&SJNetS Configuration

Local

Profile

SaiService Naming

Listeners

LISTENERGlobal Database Name:

Oracle Home Directory:

SID:6>^jiOracle Names Servers

* Do Not Use Prespawned Dedicated Servers

rr Use Prespawned Dedicated Servers -

Add Database В Remove DataBase | Help

Рис. 7.40. Конфигурирование службы базы данных

Page 247: Oracle 8i Networking 101

Nets Assistant — опции Local 229

Прочие службыПоследний раздел конфигурации прослушивающего процесса называетсяOther Services. Как видно из рис. 7.41, для данного прослушивающегопроцесса не были явно сконфигурированы какие-либо другие службы.Однако службы могут регистрироваться в прослушивающем процессединамически.

Рис. 7.41. Начальный экран конфигурирования прочих служб

Здесь вы можете указать службы, не являющиеся службами Oracle, ноот которых ваш прослушивающий процесс должен принимать запросы насоединения. Примерами могут служить внешние процедуры, а такжеслужбы, соединения с которыми устанавливаются через службу неодно-родности. На рис. 7.42 показано, какие параметры нужно задать для кон-фигурирования службы.

Page 248: Oracle 8i Networking 101

230 Глава 7

Global Service Name;

Program Name:

Program Argument Zero:

Program Arguments:

Environment:

SID:

Oracle Home Directory:

Рис. 7.42. Конфигурирование службы, относящейся к категории"прочие"

Page 249: Oracle 8i Networking 101

Nets Assistant —опции Oracle NamesServers

Page 250: Oracle 8i Networking 101

232 Глава 8

О) главе 4 было очень подробно рассказано о том, для чего и как созда-ется сервер имен Oracle. Там же описывалась процедура создания глоба-льной связи базы данных. Сейчас посмотрим, как выглядят экраны Net8Assistant, относящиеся к серверам имен Oracle, чтобы вы могли сопоста-вить их с описанием из главы 4. Итак, начнем.

Создание и конфигурированиесерверов имен Oracle

Щелкнув первый раз на опции Oracle Names Servers в навигационном де-реве Net8 Assistant, вы увидите вводную информацию. Одновременнознак плюса в левой части окна изменит цвет с серого на зеленый, указы-вая на возможность создания сервера имен Oracle. Начальный экран по-казан на рис. 8.1.

Рис. 8.1. Начальный экран Oracle Names Servers

На этом экране кратко объясняется, что такое служба имен Oracle, исообщается, что для поиска серверов имен Oracle во всех фиксирован-ных местах сети нужно выбрать пункт Discover Oracle Names Servers в рас-крывающемся меню Command. Еще здесь говорится о том, что выможете создать новые серверы имен Oracle, либо щелкнув на большомзнаке плюса в левой части окна, либо выбрав пункт меню Edit >- Create.

Page 251: Oracle 8i Networking 101

Nets Assistant — опции Oracle Names Servers 233

Рассказывая в главе 4 о создании сервера имен Oracle, мы проверяли каж-дый шаг, выполняя описанные действия. В результате был создан серверимен Oracle. Net8 Assistant не позволяет его удалить. Но сделать это мож-но, если воспользоваться описанной ниже процедурой (она примениматолько к Windows NT). Я проверяла ее только для сервера имен корнево-го региона и полагаю, что в других случаях могут возникнуть осложне-ния. Удаление корневого сервера имен на машине с Windows NTвыполняется следующим образом:

1. Удалите или переименуйте файл ORACLE_HOME\network\admin\names.ora.

2. С помощью regedit удалите из реестра NT Service, а также ключ\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<cyщecтвyющee_имя_cepвepa_NTNAMES>.

3. Если сервер имен Oracle хранил информацию о конфигурации вбазе данных, удалите из этой базы данных следующие таблицы:NMO_MASTER, ONRS_SERIAL, ONRS_REGION и ONRS_CONFIG.

4. Повторно запустите сценарий ORACLE_HOME\Network\Names\namesini.sql.

5. Перезагрузите машину.

Теперь, удалив сервер имен Oracle, давайте вспомним, как он созда-вался. Перечисленные ниже шаги взяты из главы 4, поэтому не удивляй-тесь, если они покажутся вам знакомыми.

Учтите: далее предполагается, что в вашей среде еще не создавалисьсерверы имен Oracle. В противном случае экраны будут выглядеть по-дру-гому. Итак, запустите инструмент Net8 Assistant и выполните следующиеоперации:

1. Выберите опцию Oracle Names Servers в панели навигатора.

2. Выберите пункт Create в раскрывающемся меню Edit или щелкнитена кнопке с большим зеленым плюсом (+), которая находится в верх-ней левой части окна Net8 Assistant. Запустится мастер имен (NamesWizard).

3. Мастер имен предложит указать:• Уникальное имя сервера имен Oracle.• Адрес протокола для нового сервера имен. (В случае TCP/IP

корпорация Oracle рекомендует использовать стандартныйпорт 1575.)

« Будет ли информация об именах храниться в базе данных или ти-ражироваться между серверами имен. Для создания сервера, хра-нящего информацию в базе данных, выберите "Use a regiondatabase" ("Использовать региональную базу данных"). Таблицыэтой базы данных должны быть созданы до запуска мастераимен. Определите, в какой из ваших баз данных будет храниться

Page 252: Oracle 8i Networking 101

234 Глава 8

информация сервера имен, и создайте нового пользователя,который будет владельцем таблиц. Затем войдите в базу дан-ных под именем этого пользователя и запустите сценарийORACLE_HOME\Network\Names.ini, чтобы создать необходи-мые таблицы.

• Адрес протокола для прослушивающего процесса базы данных.(В случае TCP/IP корпорация Oracle рекомендует использоватьстандартный порт 1521.)

• Имя пользователя и пароль учетной записи, которая будет испо-льзоваться для заполнения таблиц сервера имен, а также имяслужбы или SID базы данных. В данном примере выбрано имяNAMES и пароль NAMESPW, а для SID указано значение ORCL

• Будет ли данный сервер имен Oracle принадлежать к корневомуадминистративному региону.

4. Если вы обозначили создаваемый сервер как корневой, мастер имензавершит свою работу. В противном случае мастер решит, что сер-вер принадлежит к делегированному административному региону, идополнительно предложит ввести имя домена локального админист-ративного региона и адрес сервера имен корневого региона.

5. Выберите пункт меню File >• Save Network Configuration.

ВниманиеNet8 Assistant не поддерживает создание более одногосервера имен Oracle на одной машине.

Управление серверомТеперь, когда у нас есть сервер имен Oracle, с которым можно работать,выясним, какие опции доступны и как их использовать.

Управляющие командыЕсли раскрыть раздел Oracle Names Servers в навигационном дереве ищелкнуть на созданном сервере имен, то по умолчанию будет показанагруппа вкладок Manage Server (Управление сервером) с выбранной вклад-кой Control (Управляющие команды) (рис. 8.2). Тем самым предполагает-ся, что вы хотите запустить, остановить или перезапустить выбранныйсервер имен.

Помимо Manage Server раскрывающийся список содержит пункты Ma-nage Data (Управление данными) и Configure Server (Конфигурированиесервера).

Вкладка Control позволяет напрямую взаимодействовать с серверомимен Oracle. Выбрав команду Start (Запустить), вы должны щелкнуть накнопке Apply (Применить) в нижней части окна. В случае успешного запу-ска появится небольшое окно с сообщением "Server started successfully"("Сервер успешно запущен"). Чтобы подтвердить прочтение сообщения,нужно щелкнуть на кнопке ОК.

Page 253: Oracle 8i Networking 101

Nets Assistant — опции Oracle Names Servers 235

Рис. 8.2. Вкладка Control раздела Manage Server

После запуска сервера становятся доступными другие команды. На-пример, можно остановить текущий сервер имен или собрать по немустатистику. После щелчка на опции Statistics Operation (Операции состатистикой) вы получите доступ к командам Write Statisitcs to Log(Записать статистику в журнал) и Reset Statistics (Сбросить статистику).Две опции под общим заголовком Perform Operation (Выполнить опера-цию) позволяют указать, должна ли выбранная операция выполнятьсянемедленно (Immediately) или с отсрочкой (Wait). Время ожиданиязадается в секундах.

Если вы не вводили имя файла журнала на вкладке Logging, то поумолчанию статистика записывается в файл names.log, расположенный пкаталоге $ORACLE_HOME/network/log (на платформе UNIX) илиORACLE_HOME\network\log (на платформе Windows NT). После завер-шения записи появляется окно с сообщением "Server saved statistics to thelog file" ("Сервер сохранил статистику в файле журнала"). Чтобы подтвер-дить прочтение сообщения, нужно щелкнуть на кнопке ОК.

Обратите внимание, что помимо кнопок Apply и Help в нижней частиокна находятся еще две кнопки — Check Status (Проверить состояние) иSet Password (Установить пароль). В первой версии OracleSi, Release 2щелчок на кнопке Check Status не дает никакого результата. Если вы ужезадали пароль для своего сервера имен, то кнопка Set Password позволитего ввести. Не указав этот пароль, вы не сможете взаимодействовать ссервером.

Page 254: Oracle 8i Networking 101

236 Глава 8

МониторингВкладка Monitor (Мониторинг), показанная на рис. 8.3, предназначенадля получения информации о сервере имен Oracle. С ее помощью можнооперативно просмотреть статистику. Кнопка Refresh (Регенерировать)позволяет увидеть самую свежую статистику. Информация, доступнаяпри экранном мониторинге, совпадает с той, что сохраняется в файлежурнала. Единственное отличие состоит в том, что экранная информа-ция разделена на небольшие изолированные группы, тогда как в файлежурнала она представлена единым массивом.

Рис. 8.3. Вкладка Monitor раздела Manage Server

Если щелкнуть на опции Statistics в группе Information About, то будетпоказана следующая информация: Request Received (Полученные запро-сы), Request Forwarded (Перенаправленные запросы), Foreign Data ItemsCached (Кэшированные внешние элементы данных) и Region Data ReloadCheck Failures (Сбои при проверке необходимости перезагрузки региона-льных данных). Опция Schedule of Operations for (График выполненияопераций) позволяет увидеть, когда будет выполнена следующая опера-ция по управлению работой сервера (Server), сбором статистики (Statis-tics) или кэшированием (Cache). Фраза "not set" говорит о том, чтовыполнение операций не запланировано.

НастройкаВкладка Tuning (Настройка) используется для настройки некоторых па-раметров работающего в данный момент сервера имен Oracle. Выполнен-ные установки будут действовать только на протяжении текущего сеанса.

Page 255: Oracle 8i Networking 101

Nets Assistant — опции Oracle Names Servers 237

Рис. 8.4. Вкладка Tuning раздела Manage Server

Иными словами, после остановки и повторного запуска сервера имен всеизмененные в последнем сеансе параметры снова получат значения поумолчанию. Вкладка Tuning показана на рис. 8.4.

Параметр Cache Checkpoint Interval определяет, с какой периодично-стью сервер имен Oracle будет записывать копию кэшированной инфор-мации в дисковый файл контрольной точки. По умолчанию этот файлназывается ckpcch.ora. Минимальное значение — 10 секунд, максималь-ное — 3 дня.

Параметр Statistics Reset Interval определяет, в течение какого вре-мени сервер имен Oracle будет накапливать статистику. Минимальноезначение — 10 секунд, максимальное — 3 дня.

Параметр Statistics Log Interval определяет период выгрузки статисти-ки в файл журнала. Минимальное время — 10 секунд, максимальное неопределено. Этот параметр должен быть меньше, чем Statistics Reset Inter-val, иначе статистика никогда не будет записана. По умолчанию файлужурнала присваивается имя names.log.

Параметр Auto Refresh Retry Interval определяет, через какое времясервер имен Oracle будет повторять неудавшуюся попытку автоматиче-ской регенерации. Минимальное значение — 1 минута, максимальное —1 час. Auto Refresh Expiration Period — это время ожидания перед попыт-кой получить адресную информацию от сервера имен Oracle удаленногорегиона. Значение по умолчанию, которое одновременно является мини-мальным,— 60 секунд.

Внизу находится кнопка Help, а также кнопки Apply, Revert (Вернуть)и Set Password.

Page 256: Oracle 8i Networking 101

238 Глава 8

ПротоколированиеВкладка Logging (Протоколирование), показанная на рис. 8.5, позволяетзадавать каталог и имя файла журнала и файла трассировки сервера именOracle, а также включать трассировку и выбирать ее уровень. Включениепротоколирования происходит автоматически. Вам доступны три уровнятрассировки: User, Admin и Dev. Трассировка на уровне пользователя(User) позволяет выявлять ошибки, вызванные действиями пользовате-ля, трассировка на уровне администратора (Admin) выявляет системныепроблемы, а уровень Dev (сокращение от "developers") определяет уро-вень разработчиков.

Рис. 8.5. Вкладка Tuning раздела Manage Server

КэшированиеВкладка Cache (Кэш) позволяет выполнять различные операции с кэшемкак немедленно, так и с указанной задержкой (в секундах). Как показанона рис. 8.6, это следующие операции:

• Flush Foreign Region Data: вытеснение всех данных удаленных реги-онов из локального файла контрольной точки кэша.

• Reload From Region Database: немедленная проверка наличия изме-нений информации в региональных базах данных и, если измене-ния произошли, перезагрузка всей информации в региональныйфайл контрольной точки.

Page 257: Oracle 8i Networking 101

Net8 Assistant — опции Oracle Names Servers 239

• Checkpoint Cache: принудительная запись информации из кэшав файл контрольной точки. Для этой операции необходимо указы-вать время ожидания, поскольку ее немедленное выполнениеневозможно.

• Dump Cache to Trace File: принудительная выгрузка информации изкэша в файл трассировки. Для этой операции необходимо указы-вать время ожидания, поскольку ее немедленное выполнение невоз-можно.

В нижней части окна расположены кнопки Apply (Применить), SetPassword и Help.

АО wait!

:-Cache Qperations -r Flush Foreign Region Dais

; *~ Reload From Region DatabaSE

l:r Checkpblntcacbe

Ir Dump Cache to,Trace File

Рис. 8.6. Вкладка Cache раздела Manage Server

Дополнительные параметрыПоследняя вкладка раздела Manage Server называется Adv. (сокращениеот "Advanced" — Дополнительно). Она показана на рис. 8.7. Сервер именOracle не только получает информацию от других серверов имен, но иретранслирует информацию другим серверам. Эта вкладка позволяетуказать, каким образом сервер имен Oracle должен реагировать на запро-сы других серверов имен из удаленных административных регионов.Параметры и их описания приведены в таблице 8.1.

Внизу расположены уже знакомые вам кнопки Apply, Revert, SetPassword и Help.

Page 258: Oracle 8i Networking 101

240 Глава 8

g^Nete Configuration

Local

Manage Server

oriitQr ;;t Control T'J-

Г Authority Required

Г" Default Forwarders onty

Forwarding Desired

^ Forwarding Available

!V Modify Requests

Maximum Reforwards: 12

Revert В Set Password 1 Help

Рис. 8.7. Вкладка Adv. раздела Manage Server

Таблица 8.1.Параметры вкладки Adv. раздела Manage Server

Параметр Описание

Authority Required

Default ForwardersOnly

Forwarding Desired

Forwarding Available

Modify Requests

Maximum Reforwards

Разрешает текущему серверу имен получать информацию с удаленногосервера имен Oracle. Если этот режим выключен, то текущий серверимен не будет перенаправлять клиентский запрос серверу именудаленного региона.

Разрешает перенаправлять запросы только тем серверам имен Oracle,которые перечислены в списке ретрансляторов по умолчанию (defaultforwarders).

Разрешает серверу имен передавать клиентам адреса удаленных серве-ров имен Oracle. Если этот режим выключен, то вместо перенаправленияклиента к подходящему серверу имен текущий сервер имен будет самсоединяться с удаленным сервером имен от лица клиента.

Разрешает серверу имен перенаправлять клиентские запросык подходящему удаленному серверу имен Oracle. Если этот режимвыключен, а у клиента нет доступа к сети за пределами локальногодомена, то клиент не сможет разрешать имена.

Запрещает выполнение любых операций, модифицирующих данныев регионе текущего сервера имен Oracle.

Задает максимальное количество попыток перенаправленияклиентского запроса к удаленному серверу имен Oracle. Возможныезначения — от 1 до 5, по умолчанию — 2.

Page 259: Oracle 8i Networking 101

Nets Assistant — опции Oracle Names Servers 241

В разделе Manage Data собраны пять вкладок: Net Service Names (Именасетевых служб), Aliases (псевдонимы), Links (Связи), Topology (Тополо-гия) и Adv. (Дополнительно). Начнем с обзора вкладки Net Service Names.

Имена сетевых службНа рис. 8.8 показан начальный экран Manage Data с выбранной вкладкойNet Service Names.

Рис. 8.8. Вкладка Net Service Names раздела Manage Data

Вкладки раздела Manage Data отличаются от всех остальных вкладок,рассмотренных нами ранее. На каждой из них вам предлагается выпол-нить одно из действий, перечисленных в группе Action. На вкладке NetService Names доступны следующие действия: Query (Запросить), Add(Добавить), Remove (Удалить) и Load (Загрузить). Эта вкладка предназна-чена для загрузки информации из файла tnsnames.ora на сервер именOracle. Поскольку это действие уже выполнено, просмотрим загружен-ную информацию, выбрав пункт Query и нажав кнопку Execute. Ничегоне вышло: получено сообщение об ошибке, в котором говорится, что сна-чала необходимо указать правильное имя службы. Введем имя службы иповторим попытку. Теперь все в порядке. Результаты запроса показанына рис. 8.9.

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

9 Зак. 726

Page 260: Oracle 8i Networking 101

242 Глава 8

"Data • :• - ."

'ServiceName: iKDLXYZCORP.US.CoS

(ADDRESS = (PROTOCOL = TCP)(HOST = marlenes-pc)(PORT= 1

Рис. 8.9. Результаты операции Query

Набор требуемых параметров частично зависит от выбранного протоко-ла. На рис. 8.10 показано, какую информацию нужно ввести для добавле-ния имени сетевой службы, использующей протокол TCP/IP.

( 58 Nets Configuration

Local

Profile

Service Naming

Listeners

racle Names ServersL

Рис. 8.10. Добавление имени сетевой службы, использующейпротокол TCP/IP

Page 261: Oracle 8i Networking 101

Nets Assistant — опции Oracle Names Servers 243

Кнопка Advanced в нижней правой части вкладки открывает то жесамое окно, которое было показано на рис. 7.31 главы 7.

Опция Remove предназначена для удаления имени сетевой службы,а опция Load позволяет загрузить файл tnsnames.ora из выбранногокаталога.

ПсевдонимыНа вкладке Aliases доступны действия Query, Add и Remove, выполняе-мые, как,и прежде, после нажатия кнопки Execute. На рис. 8.11 эта вклад-ка показана с выбранной опцией Add.

Рис. 8.11. Вкладка Aliases раздела Manage Data

Некоторое недоумение вызывает параметр Canonical Name (Канони-ческое имя). Обратимся к справке. Оказывается, в этом поле вводитсяимя сетевой службы, имя службы базы данных или связь базы данных.Конечно, справочный экран не объясняет, что такое каноническое имя,но теперь мы хотя бы знаем, какая информация от нас ожидается. В полеAlias Name нужно ввести псевдоним, который вы хотите использовать(например, SKDL), а в поле Canonical Name — полное имя, определяющееместонахождение (например, SKDL.XYZCORP.US.COM).

Связи баз данныхПараметры, которые устанавливаются на вкладке Links, рассматривалисьв главе 4 при обсуждении глобальных связей баз данных, поэтому я небуду на них останавливаться. На рис. 8.12 эта вкладка показана с выбран-ной опцией Add.

Page 262: Oracle 8i Networking 101

244 Глава 8

_uration

Local

Profile

[^Service Naming

Listeners

Oracle Names Server

Query or update database link names with or withoutdatabase Qualifiers.

Рис. 8.12. Вкладка Links раздела Manage Data.

Обратите внимание на кнопку DB Qualifiers в нижней части вкладки.Она предназначена для добавления квалификаторов глобальной связибазы данных, о которых говорилось в главе 4.

ТопологияВкладка Topology, показанная на рис. 8.13, позволяет делегировать доме-ны или определять их указания. Делегируя домены в регионе сервераимен Oracle, вы создаете иерархию серверов имен, которые смогут обслу-живать свои административные регионы с большей эффективностью.

Давайте ненадолго прервемся и посмотрим, какие действия выполня-ются по умолчанию в том случае, когда клиент запрашивает соединение судаленным объектом в удаленном регионе. Клиентский запрос поступаетна локальный сервер имен Oracle, который перенаправляет его любомуиз известных удаленных серверов имен. Сервер, принявший запрос, пе-ренаправляет его корневому серверу имен своего региона. Корневой сер-вер, в свою очередь, перенаправляет запрос тому серверу имен, которыйимеет информацию о домене, указанном в запросе. Согласитесь, немалаяработа! А теперь представьте, что будет при выполнении многих запро-сов к одному и тому же удаленному региону. Если у вас есть удаленный ре-гион, к которому интенсивно обращаются локальные клиенты, то можносконфигурировать указание домена (domain hint). Оно содержит имя до-мена и адрес как минимум одного сервера имен Oracle из этого домена.Теперь при поступлении запроса локальный сервер имен сможет сразунайти удаленный сервер имен, содержащий требуемую информацию.

Page 263: Oracle 8i Networking 101

NetS Assistant — опции Oracle Names Servers 245

«Data

Aliases , i-inks .",: Topology I Ad

&- [Net8 Configuration

Frame

Service Naming

Listeners

Names Servers

Modify the Oracle Names network topology by delegatingdomains or by providing domain hints

Action -••

* Delegate Domain с Domain Hint Execui

Name Server Name:

Names Server Address

Рис. 8.13. Вкладка Topology раздела Manage Data

Для вкладки Topology в нижней части экрана доступна единственнаякнопка — Help.

Дополнительные действияВкладка Adv., показанная на рис. 8.14, позволяет опрашивать, добавлятьили удалять записи, содержащие информацию о сетевых объектах. В сис-теме может существовать несколько различных типов записей. Они пере-числены в таблице 8.2.

Таблица 8.2.Типы записей, указываемые на вкладке Ad v

Тип записи Описание

-A.SMD

-CNAME.SMD

-DLRDBMS.OMO

-DLCR.RDBMS.OMD

-NS.SMD

-V1ADD.NPO.OMD

Сетевые адреса, в том числе адреса служб баз данных и имена сетевыхслужб

• . • • i ' • • • • •Псевдонимы любого сетевого объекта

Глобальные связи баз данных

Квалификаторы связей

Серверы имен Oracle и их адреса

Строка соединения SQL*Net версии 1 _

Page 264: Oracle 8i Networking 101

246 Глава 8

Рис. 8.14. Вкладка Adv. раздела Manage Data

Конфигурирование сервераРаздел Configure Server содержит пять вкладок: General (Общие парамет-ры), Address (Адрес), Domains (Домены), Database (База данных) и Adv.(Дополнительно). Посмотрим, что предлагает каждая из них.

Общие параметрыВкладка General раздела Configure Server, показанная на рис. 8.15, позво-ляет установить или изменить пароль сервера имен Oracle. Если вы уста-навливали пароль ранее, то здесь будет отражен лишь факт его наличия.Само значение не показывается. Учтите также, что пароль шифруется.

Зачем нужно устанавливать пароль для сервера имен Oracle? Да про-сто затем, чтобы никто не смог выполнить привилегированную опера-цию, например, запуск или останов сервера, воспользовавшисьинструментом Net8 Assistant или утилитой Names Control (namesctl).

АдресаСервер имен Oracle, как и прослушивающий процесс, прослушивает одинили несколько назначенных ему портов, ожидая клиентских запросов.Вкладка Address позволяет назначать или изменять эти порты. Если длясоздания сервера имен Oracle использовался мастер имен, то при выбореэтой вкладки будет показан введенный ранее адрес. Поскольку в данномслучае сервер имен создан именно таким образом, вкладка Address, пока-занная на рис. 8.16, уже содержит адресную информацию.

Page 265: Oracle 8i Networking 101

Nets Assistant — опции Oracle Names Servers 247

Рис. 8.15. Вкладка General раздела Configure Server

Как и на других вкладках, требующих указания протокола, набор ото-бражаемых или запрашиваемых параметров зависит от выбранного прото-кола. Значения параметров можно добавлять (Add), удалять (Remove) илиизменять (Change). Все изменения в адресной информации отражаются врасположенном ниже окне. В самом низу экрана находится кнопка Help.

Рис. 8.16. Вкладка Address раздела Configure Server

Page 266: Oracle 8i Networking 101

248 Глава 8

ДоменыВкладка Domains используется для изменения информации о доменах,входящих в локальный административный регион сервера имен Oracle.Изменение возможно только в том случае, если домен не принадлежит ккорневому региону. На рис. 8.17 показана вкладка Domains с информа-цией, относящейся к текущему серверу имен Oracle.

Domain Name: j

Minimum TIL;

1 • Davs fo Hours in Minutes id Seconds

Рис. 8.17. Вкладка Domains раздела Configure Server

Вам нужно ввести имя домена, для которого предстоит изменить пара-метр Minimum TTL, и указать значение этого параметра. Параметр Mini-mum TTL сообщает другим серверам имен Oracle, в течение какоговремени данный сервер будет считать достоверной информацию, полу-ченную из указанного домена. Значение по умолчанию — 1 день. В файлеконфигурации этот параметр выражается в секундах, поэтому, несмотряна то что вам предлагается ввести дни, часы и минуты, в списке введен-ных значений будут указаны только секунды. Для добавления начального,а также второго, третьего и последующих значений нужно просто ввестиинтервал времени и щелкнуть на кнопке Add. Чтобы изменить показан-ное в списке значение, нужно щелкнуть на нем, а затем ввести любой дру-гой интервал времени и щелкнуть на кнопке Change. Чтобы полностьюудалить показанное значение, нужно щелкнуть сначала на нем, а потом —на кнопке Remove. В нижней части экрана присутствует кнопка Help.

Page 267: Oracle 8i Networking 101

Nets Assistant — опции Oracle Names Servers 249

База данныхВ главе 4 мы говорили о том, что информация сервера имен Oracle можетхраниться либо в его собственном локальном кэше, либо в региональнойбазе данных. Вкладка Database позволяет указать способ и место хране-ния информации конфигурируемого сервера. Как видно из рис. 8.18, ре-шено хранить информацию сервера имен в региональной базе данных.

S?Nel8 Assistant - D:\OiacleVOia81\NETWaRK\AOMIN4

8 Server

" No Region Database * Region Database

^-Database

Address 1 ;

"Database" Щ

SID: JORCL

Connection Type 5 Database Default

Рис. 8.18. Вкладка Database раздела Configure Server

Если выбрать опцию No Region Database, то информация об именахбудет непрерывно тиражироваться между серверами имен Oracle. Привыборе опции Region Database потребуется указать местонахождениебазы данных. Если вы использовали для создания сервера мастер имен,то адресная информация (протокол с соответствующими параметрами)уже будет указана; в противном случае вам придется ввести ее самостояте-льно. В центре вкладки находятся кнопки для добавления (+) и удаления(X) адреса, а также для изменения последовательности адресов (< и >).Первоначально активна только кнопка добавления. После щелчка на нейпоявится еще одна вкладка Address и активизируются три другие кнопки.Кнопка Advanced открывает окно Address List Options (Опции списка ад-ресов), в котором можно определить правила управления маршрутиза-цией от источника, обходом ошибок соединения и балансировкойнагрузки на уровне клиента.

Page 268: Oracle 8i Networking 101

250 Глава 8

Если конфигурируемый сервер имен Oracle должен соединяться сбазой данных версии 8.1, укажите имя службы. Если используется болеестарая версия Oracle, введите системный идентификатор (SID). Располо-женная рядом кнопка Advanced открывает окно Advanced Service Options(Дополнительные настройки службы), показанное на рис. 8.19. Здесьможно ввести дополнительную информацию, требуемую для взаимодей-ствия с базами данных других производителей, и указать, должна ли испо-льзоваться служба неоднородности (heterogeneous services). Здесь же выможете указать параметры базы данных Oracle Rdb.

Advanced Service Options

Additional Service Settings

Instance Name:

Session Data Unit:

Г" Use for Heterogeneous Services

- Oracle Rdb Settings -•

Rdb Database:

Type of Service:

Global Database Name:

Help)

Г

;ОК] Cancel''Jllf -inff ' U—-1-UlrLIJ-L-TIII Ul-

Рис. 8.19. Дополнительные настройки службы

В раскрывающемся списке Connection Type (Тип соединения), пока-занном на рис. 8.18, можно указать, как следует устанавливать соединенияпо данному адресу: через выделенный сервер, многопоточный серверили тем способом, который используется в базе данных по умолчанию.Флажок Use OracleSi Release 8.0 Compatible Identification устанавливаетрежим идентификации, совместимый с версией 8.0. В этом случае вы дол-жны ввести значение SID.

На этом экране также задаются имя пользователя и пароль, используе-мые для соединения с репозиторием сервера имен Oracle. Обратитевнимание на кнопку Optional рядом с полями Username и Password.Она открывает отдельное окно, в котором можно задать параметрырегенерации:

• Refresh from Database: период регенерации региональнойбазы данных

Page 269: Oracle 8i Networking 101

Nets Assistant — опции Oracle Names Servers 251

• Retry Interval: длительность ожидания отклика базы данных

• Retry Expiration: интервал, по истечении которого будутпрекращены попытки установить соединение с базой данных

Дополнительные параметрыСервер имен Oracle использует три файла контрольных точек: файл кон-трольной точки кэша (cache checkpoint file), файл контрольной точкиконфигурации (config checkpoint file) и файл контрольной точки региона(region checkpoint file). Вкладка Adv. (рис. 8.20) позволяет указать место-нахождение всех этих файлов. Кроме того, вы можете указать каталог иимя для файла журнала и файла трассировки.

Cache Checkpoint File:

i Config Checkpoint File:

Region Checkpoint File

Рис. 8.20. Вкладка Adv. раздела Configure Server

В системе UNIX все файлы контрольных точек по умолчанию разме-щаются в каталоге $ORACLE_HOME/network/names, а в системеWindows NT — в каталоге ORACLE_HOME\network\names. Файл контро-льной точки кэша используется для хранения кэшированных имен и адре-сов как из локального административного региона, так и из удаленныхрегионов. Файл контрольной точки конфигурации содержит информа-цию о конфигурации, аналогичную той, что хранится в файле names.ora.Этот файл используется при перезапуске сервера имен Oracle после не-предвиденного останова. Файл контрольной точки региона представляетсобой локальную копию информации административного региона.

О каталогах и именах файлов журналов и трассировки мы уже неодно-кратно говорили, поэтому остановимся только на опции Make Trace File

Page 270: Oracle 8i Networking 101

252 Глава 8

Unique (Обеспечить уникальность файлов трассировки). Если устано-вить этот флажок, то имя каждого файла трассировки будет дополнятьсяидентификатором процесса, что позволяет хранить несколько файлов.Используйте эту опцию в том случае, если вам требуется отслеживать раз-личия между файлами.

Кнопка Miscellaneous (Различные настройки) позволяет задать такиепараметры, как Max Open Connections (максимальное число открытыхсоединений, по умолчанию — 10), Message Pool Start Size (начальный раз-мер пула сообщений, по умолчанию — 10), Auto Refresh Expiration Period(период автоматической регенерации, по умолчанию — 3 дня) и AutoRefresh Retry Interval (интервал между попытками регенерации, по умол-чанию — 3 минуты).

В нижней части экрана находится традиционная кнопка Help.

Page 271: Oracle 8i Networking 101

Nets ConfigurationAssistant

Page 272: Oracle 8i Networking 101

254 Глава 9

/ы замечали, что люди часто решают одну и ту же задачу разными спо-собами? Например, когда я мою посуду, то сначала вставляю пробкув сливное отверстие раковины, выдавливаю в раковину немного моюще-го средства, наливаю горячей воды и предварительно замачиваю тарелкив получившемся растворе. Потом я их мою, вытираю насухо и убираюв шкаф. Мне всегда кажется, что тарелок не настолько много, чтобы запу-скать посудомоечную машину.

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

Корпорация Oracle снабжает нас инструментами, позволяющимирешать одни и те же задачи разными способами. В главе 7 говорилось отом, как использовать NetS Assistant для конфигурирования прослушива-ющего процесса, методов именования и локальных имен сетевых служб.Сейчас я намерена показать, каким образом можно выполнять те же са-мые задачи с помощью NetS Configuration Assistant.

Некоторые из действий, рассмотренных нами в главах по NetSAssistant, включали в себя конфигурирование доступа к службе каталога.В Net8 Configuration Assistant это конфигурирование можно выполнитьзначительно проще, поскольку оно вынесено в отдельную процедуру.

Если какой-либо экран (или набор экранов) начнет повторяться в раз-ных процедурах конфигурирования, он будет показан только один раз, азатем будут следовать ссылки на соответствующий рисунок. С цельюэкономии места здесь не приводятся те экраны, которые можно легкоописать словами.

Обзор Nets Configuration AssistantПомните, как мы первый раз вызывали NetS Assistant в главе 7? После ак-тивизации инструмента все опции отображались на одном экране, и вымогли переходить к любой из них, используя панель навигатора. Взаимо-действие с NetS Configuration Assistant происходит иначе. Этот инстру-мент рассчитан только на использование мастеров. После выборанужной опции мастер будет вести вас через процесс конфигурирования,отображая экраны с приглашениями на ввод требуемой информации.Вид следующего экрана часто зависит от введенной информации. Напри-мер, если вы запустите мастер конфигурирования прослушивающего про-цесса и укажете, что прослушивающий процесс должен использоватьпротокол TCP/IP, то вам будет предложено ввести номер порта. Но есливы укажете в качестве протокола SPX, то увидите приглашение на вводстандартного имени службы SPX. Более подробно о различных опцияхбудет рассказано ниже, на примерах конкретных экранов мастеров.

Page 273: Oracle 8i Networking 101

NetS Configuration Assistant 255

Cancel Help

Welcome lo the Nets Configuration Assistant.This tool takes you through the followingcommon configuration steps:

Choose the configuration you would like to do:

* Listener configuration

: <~ Naming Methods configuration

(~ Local Net Service Name configuration

(~ Directory Service Access configuration

Back

Рис. 9.1. Начальный экран NetS Configuration Assistant

На рис. 9.1 показан начальный экран NetS Configuration Assistant. Haнем приведен список опций, перед каждой из которых расположен пере-ключатель. Переключатели используются для того, чтобы вы могли вы-брать только одну опцию.

Вам доступны следующие четыре опции:••- Listener configuration (Конфигурирование прослушивающего про-

цесса). Создание, модификация или переименование прослушиваю-щего процесса.

• Naming Methods configuration (Конфигурирование методов имено-вания). Создание, удаление или модификация следующих методов:локальное именование (LOCAL), именование по каталогу (LDAP),служба имен Oracle (ONAMES), именование по хосту (HOST), служ-ба каталога Novell (NDS), сетевая информационная служба (SunNIS) или сотовая служба каталога (ВСЕ CDS) — на сервере и, еслитребуется, в клиентском файле tnsnames.ora.

• Local Net Service Name configuration (Конфигурирование локаль-ных имен сетевых служб). Создание, удаление и модификация лока-льных имен сетевых служб в файле tnsnames.ora с возможностьютестирования соединений.

• Directory Service Access configuration (Конфигурирование доступа кслужбе каталога). Создание структуры LDAP-совместимого серверакаталога для поддержки именования по каталогу с использованиемцентрализованно администрируемых идентификаторов соедине-ний или для поддержки корпоративной системы безопасности, реа-лизованной на основе усовершенствованных средств безопасностиOracle (Oracle Advanced Security).

Page 274: Oracle 8i Networking 101

256 Глава 9

Как и при описании Net8 Assistant, мы будем последовательно выби-рать эти опции и рассматривать все возможные варианты действий.

Конфигурирование прослушивающего процессаКак уже отмечалось, у вас есть возможность добавлять, модифицировать,удалять или переименовывать прослушивающие процессы. Выбрав на на-чальном экране опцию Listener configuration, вы увидите экран конфигу-рирования прослушивающего процесса, показанный на рис. 9.2. Давайтепосмотрим, с какими экранами предстоит работать при выполнении каж-дого из перечисленных здесь действий и какая информация ожидается отвас на каждом шаге. Начнем с добавления прослушивающего процесса(опция Add).

Cancel Help

For remote connections to be made to your Oracledatabase,you must configure a Nete listener. The NetsConfiguration Assistant allows you to add, modify, renameor delete a listener.

Select what you want to do:

;*Add

<" Modify

г Delete

, <~ Rename

Back

Рис. 9.2. Выбор действия по конфигурированию прослушивающегопроцесса

Добавление прослушивающего процессаПри создании нового прослушивающего процесса логично с самого нача-ла знать его имя. Оно запрашивается на первом экране, показанном нарис. 9.3. Я выбрала для нашего прослушивающего процесса имя LIST1.

После ввода имени вам предлагается выбрать один или несколько про-токолов. Здесь выбран TCP/IP, но с тем же успехом можно было выбратьлюбой другой (или все) из перечисленных протоколов. КорпорацияOracle рекомендует использовать только необходимые протоколы, чтобымаксимально упростить конфигурацию. Экран выбора протокола показанна рис. 9.4.

Вид следующего экрана зависит от того, какой протокол был указан напредыдущем шаге. Поскольку выбран TCP/IP, у нас запрашивается номер

Page 275: Oracle 8i Networking 101

Nets Configuration Assistant 257

Neltl Configuration Assistant: Listener Configuration, Listener Name

For remote connections to be made to your Oracledatabase you must have at least one Nets listener.Enter the name of the listener you want to create:

Listener name: JLIST1|

Cancel j Help )

Рис. 9.З. Ввод имени нового прослушивающего процесса

Netti Configuration Assistant: Listener Configuration, Select Protocols

You can configure the listener to accept connections over oneor more protocols. Select which protocols you want toconfigure fbrthis listener. Keep your configuration as simpleas possible byconflguring onlythe protocols you heed.

' Available Protocols

TOPSIPCNMPSPX

Selected Protocols

i ITCP

Рис. 9.4. Выбор протоколов прослушивающего процесса

порта. Можно использовать стандартный порт 1521 или ввести другойномер. Порт 1521 уже занят текущим прослушивающим процессом состандартным именем LISTENER, поэтому изменим номер на 1526, как по-казано на рис. 9.5.

Page 276: Oracle 8i Networking 101

258 Глава 9

Nel8 Configuration Assistant: Lislenei Configuration, TCP/IP Protocol

Which TCP/IP port number should the listener use? Theport number selected should not be used by any othersoftware on this computer.

:r Use the standard port number of 1521

* Use another port number: |1526

•Help I §acl<

Рис. 9.5. Настройка протокола TCP/IP

Теперь вернемся назад и посмотрим, какие параметры необходимо за-давать при выборе других протоколов. Список протоколов и соответству-ющих им параметров приведен в таблице 9.1. Где возможно, указанозначение по умолчанию.

Таблица 9.1.Протоколы прослушивающего процесса

Протокол Требуемые параметры

TCP/IP Номер порта (по умолчанию —1521)

IPC Значение ключа IPC для базы данных, к которой предстоит обращаться

TCP/IP with SSL Номер порта (по умолчанию - 2484)

NMP Стандартное имя канала (по умолчанию — ORAPIPE)

SPX Стандартное имя службы SPX (по умолчанию — имя хоста! с добавлением Jsnr).

После ввода значения параметра вам будет предоставлена возмож-ность сконфигурировать другой прослушивающий процесс (рис. 9.6).

После ответа No на вопрос о конфигурировании другого прослушива-ющего процесса предлагается выбрать процесс для запуска. Как видно изрис. 9.7, можно запустить любой из двух прослушивающих процессов:стандартный (LISTENER) или только что созданный (LIST1).

После запуска выбранного прослушивающего процесса появляется за-ключительный экран с сообщением "Listener configuration complete!"("Конфигурирование прослушивающего процесса завершено!"). КнопкаNext возвращает к начальному экрану Net8 Configuration Assistant.

Page 277: Oracle 8i Networking 101

Nets Configuration Assistant 259

Net» Configuration Assistant: Listener Configuration, More Listeners?

Would you 1!кв to configure another listener?

* No

г Yes :

Cancel ) Help gack I jpxT j>")

Рис. 9.6. Запрос на конфигурирование другого прослушивающегопроцесса

select a listener you want to Stan

1Ш!LIST1

Рис. 9.7. Выбор прослушивающего процесса для запуска

Page 278: Oracle 8i Networking 101

260 Глава 9

Модификация прослушивающего процессаСледующее действие, которое мы рассмотрим,— это Modify (Модифици-ровать). Наша задача будет заключаться в изменении номера порта дляпрослушивающего процесса LIST1 с 1526 на 1525 — просто для примера.

Как и следовало ожидать, на первом экране предлагается выбрать имямодифицируемого прослушивающего процесса. В соответствии с нашимпланом выберем новый прослушивающий процесс LIST1. Экран выборапрослушивающего процесса показан на рис. 9.8.

alion Assistant Listenei Configuration^ Select Listenei

Select a listener v i modify

lusn

Cancel Help Back гNext

Рис. 9.8. Выбор прослушивающего процесса для модификации

После указания прослушивающего процесса появляется экран выборапротокола, показанный на рис. 9.4. Как и прежде, по умолчанию выбранTCP. Текущий протокол модифицируемого прослушивающего процессаздесь не показывается. При перемещении по экранам Modify вы должныпомнить исходные настройки, чтобы изменения имели смысл. Сейчаснам не нужно добавлять или удалять протоколы, поэтому просто щелкнемна кнопке Next для перехода к следующему экрану.

Теперь мы видим тот же экран, что и на рис. 9.5, с тем же самым пор-том 1521, выбранным по умолчанию. Текущий порт прослушивающегопроцесса LIST1, выбранный при его создании, не показан. После измене-ния номера порта с 1521 на 1525, как и было задумано, появляется экран спредложением сконфигурировать другой прослушивающий процесс.Этот экран был показан на рис. 9.6. Если вы случайно укажете порт, испо-льзуемый другим прослушивающим процессом, или начнете модифици-ровать выполняющийся процесс, то получите предупреждение, подобноетому, которое показано на рис. 9.9, вместе с вопросом о продолженииили отмене конфигурирования. Решив не продолжать, вы вернетесь к

Page 279: Oracle 8i Networking 101

NetS Configuration Assistant 261

экрану выбора протокола. В противном случае изменения будут выполне-ны, но не вступят в силу до останова и перезапуска прослушивающегопроцесса. Если указанный порт используется другим прослушивающимпроцессом, следует либо выбрать другой порт, либо изменить порт у дру-гого прослушивающего процесса, предварительно его остановив. Дело втом, что два прослушивающих процесса не могут одновременно прослу-шивать один и тот же порт. Только представьте, к какой путанице этомогло бы привести!

ЕГ2 Net8 Configuration Assistant

The information provided for the tcp protocol is currently Inuse by another listener. You can proceed with theconfiguration as it is, but it will not be possible to start thisllsteneruntil the conflict is resolved. Would you like tocontinue with the configuration anyway?

Рис. 9.9. Окно с предупреждающим сообщением

После завершения конфигурирования появляется экран с уведомляю-щим сообщением. Для возврата к начальном экрану NetS ConfigurationAssistant нужно щелкнуть на кнопке Next.

Переименование прослушивающего процессаХотя после опции Modify на экране конфигурирования прослушивающе-го процесса показана опция Delete (Удалить), рассмотрим сначала опциюRename, чтобы продолжить работу с нашим новым прослушивающимпроцессом и не трогать работающий процесс LISTENER. Нам предстоитизменить имя LIST1 на LIST2.

После выбора опции Rename (Переименовать) появится экран выбо-ра прослушивающего процесса, аналогичный показанному на рис. 9.8.Единственное отличие состоит в том, что инструкция "Select a listener youwant to modify" ("Выберите прослушивающий процесс, который нужномодифицировать") заменена на инструкцию "Select a listener you want torename" ("Выберите прослушивающий процесс, который нужно переиме-новать"). После выбора процесса LIST1 будет выдано приглашение на из-менение имени, показанное на рис. 9.10. Как видите, имя LIST1 ужеизменено на LIST2.

Учтите, что пока вы не остановите и не перезапустите прослушиваю-щий процесс, утилита Listener Control будет показывать старое имя.

После щелчка на кнопке Next появится подтверждающий экран с со-общением "Listener was renamed to LIST2" ("Прослушивающий процессбыл переименован в LIST2"). Еще раз щелкнув на кнопке Next, вы увидитесообщение о завершении конфигурирования, а следующий щелчок наNext вернет вас к начальному экрану NetS Configuration Assistant.

Page 280: Oracle 8i Networking 101

262 Глава 9

NelB Configuration AssisMnl: Litlenei Configuration, Rename Listener

Please, enter a new listener name forLIST!

Listener name:

Cancel Help Back [Jext

Рис. 9.10. Переименование прослушивающего процесса

Удаление прослушивающего процессаПоследнее, что можно сделать на экране конфигурирования прослушива-ющего процесса,— это удалить прослушивающий процесс. Мы удалим тотпроцесс, который сейчас называется LIST2.

Как и следовало ожидать, после выбора опции Delete (Удалить) появ-ляется экран выбора прослушивающего процесса с указанием "Select alistener you want to delete" ("Выберите прослушивающий процесс, кото-рый нужно удалить") и раскрывающимся списком, содержащим именаLISTENER и LIST2. Сразу после выбора имени будет запрошено подтвер-ждение на удаление прослушивающего процесса LIST2 (рис. 9.11).

К? NfitB Configuration Assistant

Are you sure you want to delete listener LIST2?

Рис. 9.11. Подтверждение удаления прослушивающего процесса

Мой технический рецензент Ян Фиклинг сделал следующее замеча-ние. Когда вы удаляете прослушивающий процесс в Windows NT, оностается в списке служб. Если удалять запущенный прослушивающий про-цесс, то окно служб NT показывает, что служба все еще функционирует.

Page 281: Oracle 8i Networking 101

Nets Configuration Assistant 263

Чтобы убрать все следы прослушивающего процесса в Windows NT, необ-ходимо сделать следующее:

1. Остановить соответствующую службу NT, выбрав Start >• Settings >•Control Panel >~ Services и щелкнув на нужном имени, а затем накнопке Stop.

2. Открыть Net8 Assistant и выбрать прослушивающий процесс, кото-рый предстоит удалить.

3. Выбрать опцию Delete, либо щелкнув на большой красной букве X вправом верхнем углу окна, либо воспользовавшись раскрывающимсяменю Edit.

4. С помощью regedit удалить следующий ключ реестра:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<имя_службы_Огас!е>.

Теперь можно без проблем добавлять новый прослушивающий про-цесс с тем же именем, которое было присвоено ранее удаленному.

Перед тем как будут выполнены какие-либо другие действия, вы дол-жны подтвердить свое решение об удалении прослушивающего процесса,щелкнув на кнопке "Yes". После этого появится экран с сообщением"Listener LIST2 was deleted" ("Прослушивающий процесс LIST2 удален").Как и при использовании мастеров модификации и переименования, по-следующий щелчок на кнопке Next приведет к выводу сообщения"Listener configuration complete!", а заключительный щелчок на кнопкеNext вернет вас к начальному экрану Net8 Configuration Assistant.

Конфигурирование методов именованияЗначительная часть работы по конфигурированию Net8 состоит в опре-делении того, каким образом сетевые компоненты Oracle должны разре-шать имена сетевых служб в информацию, необходимую для соединенияс базами данных Oracle или другими службами. В предыдущих главах мырассмотрели несколько различных подходов к организации именования.

Выбрав опцию Naming Methods Configuration на начальном экранеNet8 Configuration Assistant, вы увидите экран, показанный на рис. 9.12.В пояснительном тексте говорится, что рекомендуемые методы именова-ния были предварительно выбраны за вас, но, как видно по снимкуэкрана, список выбранных методов пуст.

ВниманиеПосле выбора и первоначального конфигурированияметодов именования изменение их параметров возможнотолько через Nets Assistant.

В таблице 9.2 перечислены доступные методы именования с требуемы-ми параметрами или комментариями, которые дает NetS ConfigurationAssistant.

Page 282: Oracle 8i Networking 101

264 Глава 9

Net8 Confiquialion Assistant: Naming Methods Configuration. Select Naming Methods

When connecting to a remote database or other service you specifya net service name. This name is resolved using one or morenaming methods into the information necessary to locate andconnecttothe database orservice,

Select the naming methods you want to use for resolving netservice names and the order in which you want them used. Keepyour configuration as simple as possible by configuring only thenaming methods you need.

Recommended naming methods have been preselected for you.

AvailableNarnincj Metho., Selected Naming Methods

LocalOracle NamesHost Name

nc

Cancel I Help Back j Next' §> J

Рис. 9.12. Выбор методов именования

Таблица 9.2.Методы именования с требуемыми параметрами или комментариями

Метод именования Параметры или комментарий

Локальные имена (Local)

Служба имен Oracle (Oracle Names)

Имя хоста (Host Name)

Служба каталога Novell (NDS)

Сетевая информационнаяслужба Sun (NIS)

Сотовая служба каталога средыраспределенных вычислений(DCE CDS)

Дополнительные параметры не требуются

Дополнительные параметры не требуются

Для каждой добавляемой службы базы данныхнеобходимо создавать отдельную запись в системеразрешения имен хостов TCP/IP

Контекст имен NDS, используемый для разрешенияимен служб, в форме<имя_службы_или_базы_данных>.<домен>илисп=<имя_службы>.ои=<домен.<е1с>

Имя специального файла, содержащегометаотображения имен служб баз данных

Сотовое имя, используемое при разрешении именсетевых служб

После выбора одного или нескольких методов именования и ввода не-обходимых параметров вы увидите экран с сообщением "Naming Methodsconfiguration complete!" ("Конфигурирование методов именования завер-шено!"). Еще один щелчок на кнопке Next вернет вас к начальному экрануNet8 Configuration Assistant.

Page 283: Oracle 8i Networking 101

Nef8 Configuration Assistant 265

Если вы работали с предыдущими версиями NetS, то знаете о таком инст-рументе, как Net8 Easy Config, который позволял создавать, модифициро-вать, удалять и тестировать имена сетевых служб. Каждая из этихопераций приводила к изменению файла tnsnames.ora на той машине, гдевы работали. Для вызова Easy Config предназначался отдельный пункт вменю Start >• Programs >• Oracle Networking.

Как мы видели в главе 7, NetS Easy Config теперь входит в состав NetSAssistant. Одновременно с этим он входит в состав NetS ConfigurationAssistant. Хотя вы уже рассматривали соответствующие экраны в главе 7,для полноты картины обратимся к ним еще раз.

Выбрав опцию Local Net Service Name configuration на начальном эк-ране Net8 Configuration Assistant, вы увидите начальный экран конфигу-рирования имени сетевой службы, показанный на рис. 9.13.

NetS Configuration Assistant Net Seivice Name Configuration

To access art Oracle database, or other service, across thenetwork you use a net service name. Tfie Nets ConfigurationAssistant allows you to work with net service names resolvedusing local naming.

Selectwhatyouwantto do:

• Add

<~ Modify

• ... . С Delete

f" Rename

rtest

.£ Back I NNext

Рис. 9.13. Начальный экран конфигурирования имени сетевой службы

Как видно из рис. 9.13, к доступным действиям относятся Add, Modify,Delete, Rename и Test. Давайте подробно рассмотрим каждое из них.

Добавление имени сетевой службыПосле выбора опции Add у вас будет запрошена версия базы данных, с ко-торой предстоит соединяться. Как показано на рис. 9.14, по умолчаниювыбирается база данных или служба OracleSi.

После щелчка на кнопке Next вам будет предложено ввести имя базыданных или службы OracleSi. В пояснительном тексте говорится, что этозначение обычно представляет собой глобальное имя базы данных. Нарис. 9.15 введено глобальное имя базы данных SKWL.

Page 284: Oracle 8i Networking 101

266 Глава 9

ihl'ITTllll'lirill'liriTHnrill

What version of Oracle database or service do youwant to access?

• OracleSi database or service

r OracleS release 8.0 or Oracle? database or service

Рис. 9.14. Выбор версии базы данных

Netit Lonriguialiori Assistant: Net Seivice Name Configuration, Selecl Pmtorols

Cancel j Help

To communicate with the database across a network, anetwork protocol is used. Select the protocol used for thedatabase you want to access.

Рис. 9.15. Ввод имени службы

На следующем экране нужно выбрать сетевой протокол, который бу-дет использоваться для соединений с данной службой. На рис. 9.16 пока-заны четыре из пяти доступных вариантов. Единственный протокол,который там не виден,— это SPX.

Page 285: Oracle 8i Networking 101

NetS Configuration Assistant 267-

Netlt Configuration Assistant: Net Service Name Configuration, Select Protocols

To communicate with tha database across a network, anetwork protocol Is used. Select tog protocol used for thedatabase you wantto access.

TOPSIPCNMP

Cancel j Help

Рис. 9.16. Выбор протокола сетевой службы

В таблице 9.3 показано, какие параметры потребуется вводить в зави-симости от выбранного протокола.

Таблица 9.3.Параметры протоколов сетевой службы

Протокол Параметры

TCP

TCPS

IPC

NMP

SPX

Имя хоста, номер порта (по умолчанию —1521)

Имя хоста, номер порта (по умолчанию — 2484)

Значение ключа IPC

Имя компьютера (по умолчанию — имя текущей машины)

Имя службы SPX (по умолчанию — <имя_текущей_машины>_1зпг)

Поскольку на рис. 9.16 был выбран протокол TCP/IP, на следующемшаге запрашивается имя хоста, на котором находится база данных, и но-мер порта прослушивающего процесса, который будет принимать запро-сы на соединение. Соответствующий экран показан на рис. 9.17.В данном случае указано имя машины (MARLENES-PC) и порт прослуши-вающего процесса (1521).

После ввода всей требуемой информации о сетевой службе вам будетпредложено протестировать соединение. Как следует из рис. 9.18, поумолчанию тест не выполняется.

Page 286: Oracle 8i Networking 101

268 Глава 9

Met8 Configuiation Assistant: Net Service Name Configuration. TCP/IP Protocol

To communicate with the database using the TCP/IPprotocol, the database computer's host name is required.Ehterthe host name for the computer where the databaseis located.

Cancel; I Help

HostName JMARLENES-PC

, АТСРЛР port number is also required. In most cases thestandard port number should be used.

* Use the standard port number of 1521.

<~ Use another port number: (1531

•4 Back I tie

Рис. 9.17. Ввод информации для протокола TCP/IP

You can verify that an Oracle database can be reached,using the information provided, by performing a connectiontest. '

Would you like to test that a connection can be made to thedatabase?

* No, do not test

<~ Yes, perform a tsst

Cancel j H jlp j ^ BackJ Next D IРис. 9.18. Запрос на тестирование соединения

Если вы решите протестировать сетевую службу, то появится экран синформацией о тесте и его результатах. При неудачном завершении тес-та можно либо вернуться назад с помощью кнопки Back, чтобы внести ис-правления, либо продолжить конфигурирование, нажав кнопку Next.В случае продолжения у вас будет запрошено имя сетевой службы(рис. 9.19). По умолчанию это имя совпадает с введенным ранее именемслужбы базы данных.

Page 287: Oracle 8i Networking 101

Nets Configuration Assistant 269

Nets ConKguiation Assistant: Net Service Name Configuiation. Net Seivice Name

Choose a name for this net service name. The NetsConfiguration Assistant has defaulted the net servicename to be the same as the service name youentered earlier, but you can change it to be any nameyou choose.

Net Service Name:

Рис. 9.19. Ввод имени сетевой службы

На следующем экране спрашивается, нужно ли конфигурировать дру-гое имя сетевой службы. Если выбрать ответ No, то появится заключите-льный экран с сообщением "Net service name Configuration Complete!"("Конфигурирование имени сетевой службы завершено!"). Щелчок накнопке Next вернет вас к начальному экрану Net8 Configuration Assistant.

Модификация имени сетевой службыПервое, что вам потребуется сделать после выбора опции Modify на нача-льном экране конфигурирования имени сетевой службы,— это выбратьимя, которое предстоит изменить. На рис. 9.20 показано, какие имена до-ступны в данной конфигурации. Решено модифицировать имя SKWL.

На следующем экране запрашивается версия базы данных или службы,к которой предстоит обращаться. Этот экран был показан на рис. 9.14. За-тем вам будет предложено выбрать имя службы, (рис. 9.15). В данном слу-чае введено имя базы данных SKWL вместо использовавшегося ранееSKDL. Как и при модификации прослушивающего процесса, текущие зна-чения не отображаются, поэтому вам нужно их помнить, чтобы вноситькорректные изменения.

После ввода нужного имени службы потребуется выбрать протокол изадать его параметры. Далее будут заданы вопросы о тестировании служ-бы и конфигурировании Другого имени, а в заключение появится экран ссообщением о завершении конфигурирования. После этого вы сможетевернуться к начальному экрану Net8 Configuration Assistant.

Page 288: Oracle 8i Networking 101

270 Глава 9

Nol8 Confraufation Assistant Net Seivico Name Configuration.. Select Net Seivice Name

Select a net service name you want tomoflliy:

• EXTPROC_CONNECTION_DATA'SKWL

Рис. 9.20. Выбор имени сетевой службы, подлежащего модификации

Переименование имени сетевой службыКак и при конфигурировании прослушивающего процесса, рассмотримопцию Rename раньше, чем Delete, чтобы продолжить работу с уже скон-фигурированным именем.

При выборе опции Rename вам будет предложено ввести имя сетевойслужбы, которое нужно изменить. Переименуем службу SKWL обратно вSKDL — только для того, чтобы показать, как это делается. После выборатекущего имени сетевой службы у вас будет запрошено новое имя, как по-казано на рис. 9.21. На этом рисунке изменения еще не были внесены.

После ввода нового имени и щелчка на кнопке Next появится экранс сообщением "The net service name was renamed to SKDL" ("Имя сетевойслужбы было изменено на SKDL"). Следующий щелчок на кнопке Nextприведет к выдаче сообщения о завершении конфигурирования, послечего вы сможете вернуться к начальному экрану Net8 ConfigurationAssistant.

Тестирование имени сетевой службыПри выборе опции Test в первую очередь запрашивается имя сетевойслужбы, которую нужно протестировать. Я выбрала SKDL. Разумеется,для выполнения теста необходимо, чтобы служба или база данных, с ко-торой предстоит соединиться, была запущена и доступна. На рис. 9.22показано, как будет выглядеть экран после успешного завершения теста.По умолчанию для тестирования соединений используется учетная за-пись SCOTT с паролем TIGER. Если служба или база данных не имееттакой учетной записи, вы можете изменить имя пользователя и пароль,щелкнув на кнопке Change Login.

Page 289: Oracle 8i Networking 101

NetS Configuration Assistant 271

NelM Configuration Assistant; Net Service Name Configuration. Rename Net Seivice Name

Cancel I Help )

Please, enter a new net service name forSKWL, . . , ; '

Net Service Name; (SKWL

4 Back | Nfft $•)

Рис. 9.21. Переименование сетевой службы

Как и при выполнении других действий, после щелчка на кнопке Nextпоявится экран с сообщением о завершении конфигурирования.

Net» Configuration Assistant: Net Service Name Configuration, Connecting

Walt while the Nets Configuration Assistant tries toconnect to the database using the Information youprovided...

Details:

Connecting...Test successful.

Cancel I Help

Change Login

ч{ ВасК Next

Рис. 9.22. Тестирование соединения с базой данных

Page 290: Oracle 8i Networking 101

272 Глава 9

Удаление имени сетевой службыПоследняя операция — Delete — также начинается с выбора имени сете-вой службы. Затем вам предлагается подтвердить удаление выбранногоимени. Соответствующий экран содержит вопрос "Are you sure youwant to delete net service name <имя_сетевой_службы>?" ("Вы действи-тельно хотите удалить имя сетевой службы <имя_сетевой_службы>?") икнопки Yes и No. После щелчка на кнопке Yes вы увидите экран с сооб-щением "The net service name <имя_сетевой_службы> was deleted"("Имя сетевой службы <имя_сетевой_службы> удалено"). В заверше-ние, как всегда, появится экран с сообщением о завершении конфигу-рирования. Щелчок на кнопке Next вернет вас к начальному экрануNet8 Configuration Assistant.

Конфигурирование доступа к службе каталогаВ главе 5 мы рассматривали упрощенный протокол доступа к каталогу(LDAP), используемый в Интернет-каталоге Oracle. В этом разделе рас-смотрим опции Net8 Configuration Assistant, предназначенные для конфи-гурирования доступа к службам каталога.

После выбора опции Directory Service Access configuration на началь-ном экране NetS Configuration Assistant вы увидите экран, показанныйна рис. 9.23. Обратите внимание, что две опции первоначальнонедоступны.

Net8 Configuration Assistant: Oiiecloiy Service Access

Cancel I Help

Choose the directory service operation you want to. complete;

* Perform directory access configuration for a client

£*" Perform directory access configuration for a server

<"" Change the default administrative context

f Create or Update Oracle Schema

f.Create a new Oracle Cbntext

Рис. 9.23. Начальный экран конфигурирования доступак службе каталога

Page 291: Oracle 8i Networking 101

Nets Configuration Assistant 273

Конфигурирование доступа к каталогу для клиентаПервая опция на начальном экране конфигурирования доступа к каталогу(Perform directory access configuration for a client) позволяет разрешитьклиенту поиск записей в каталоге, но не их модификацию или добавле-ние. После выбора этой опции вам будет предложено указать тип катало-га. Необходимо заметить, что для успешного конфигурированияклиентского доступа вы должны предварительно установить схемуOracle, определяющую записи и атрибуты каталога.

На рис. 9.24 показан экран со списком возможных типов каталога.К ним относятся Интернет-каталог Oracle, служба каталога Novell илиMicrosoft Active Directory. В первой версии OracleSi, Release 2 службакаталога Novell не поддерживается, несмотря на ее присутствие в списке.

Net8 Configuration Assistant: Directory Access. Directory Type

To assist with directory service access conflagration the NetsConfiguration Assistant needs to know the type of directory serviceyou use. Select the directory service type.

Directory Type: i

Cancel Help

: Novell Directory Service; Microsoft Active Directory

Back

Рис. 9.24. Выбор типа каталога

В этом примере выбран Интернет-каталог Oracle. На рис. 9.25 показанследующий экран, где запрашиваются имя хоста (Hostname), порт TCP(Port) и порт SSL (Port SSL). По умолчанию для параметра Port выбранозначение 389, а для параметра SSL Port — значение 636.

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

Для службы каталога Novell предлагается вводить те же параметры,что и для Интернет-каталога Oracle, хотя, как было сказано выше, этаслужба не поддерживается в первой версии OracleSi, Release 2. Для Micro-soft Active Directoty требуется указать только имя хоста.

10 Зак. 726

Page 292: Oracle 8i Networking 101

274 Глава 9

NelS Confiduiahon Assistant: Diicctory Access, Directory Location

Where is your directory service located?

Hostname: |MARLENES-PC

Port: ' J389

SSL Port: 636

Back | rjaxl 3>)

Рис. 9.25. Определение местонахождения каталога

Nt-tH Configuration Assistant

Could not connect to the directory for tha followingreason:

Directory Service Error

Verily that the Information you provided Is correctorcontact your directory service administrator forassistance.

Рис. 9.26. Сообщение об ошибке

В случае успешного установления соединения у вас будут запрошенытип каталога, используемого клиентом, местонахождение каталога и ад-министративный контекст, в котором данный клиент может выполнятьпоиск идентификаторов соединений.

Конфигурирование доступа к каталогу для сервераВторая опция на начальном экране конфигурирования доступа к каталогу(Perform directory access configuration for a server) позволяет разрешитьсерверу доступ к каталогу для добавления, модификации и поиска запи-сей. В первую очередь необходимо ввести информацию, необходимуюдля установления соединения, как было показано на рис. 9.24 и 9.25.После установления соединения потребуется указать тип каталога, его

Page 293: Oracle 8i Networking 101

Nets Configuration Assistant 275

местонахождение и административный контекст, в котором сервер мо-жет считывать и создавать записи. Если в каталоге отсутствует контекстOracle, вам будет предложено его создать. Контекст Oracle (cn=Oracle-Context) — это корень поддерева каталога, в котором хранится вся ин-формация, относящаяся к программному обеспечению Oracle.

Net8 Configuration Assistant проверяет, создана ли в каталоге схемаOracle. Если она отсутствует или имеет устаревшую версию, вам будетпредложено ее создать. В случае успешного создания контекста Oracleаутентифицированный пользователь может быть включен в одну из трехгрупп:

• Создатели баз данных Oracle(cn=OracleDBCreators,cn=OracleContext)

• Администраторы сети Oracle(cn=OracleNetAdmins,cn=OracleContext)

• Администраторы безопасности Oracle(cn=OracleSecurityAdmins, cn=OracleContext)

Пользователи из групп OracleDBCreators и OracleNetAdmins могут ис-пользовать Oracle Database Configuration Assistant для создания служб базданных и Net8 Assistant для создания имен сетевых служб или модифика-ции атрибутов NetS, относящихся к службам баз данных и именам сете-вых служб. Администратор каталога может добавлять в эти группы другихпользователей. Для создания в каталоге записей о сетевых службах выдолжны быть членом группы OracleNetAdmins. По умолчанию в эту груп-пу включается аутентифицированный пользователь, создавший контекстOracle в процессе обращения к каталогу на сервере.

Опция Create or Update Oracle Schema, присутствующая на начальномэкране конфигурирования доступа к каталогу, позволяет создавать илиобновлять схему Oracle, созданную в каталоге.

Создав имя сетевой службы для сервера каталога, вы должны сделатьLDAP первым методом именования. Для этого можно отредактироватьфайл sqlnet.ora, указав names.directory_path=LDAP, или настроить соот-ветствующим образом профиль методов именования в NetS Assistant.

10*

Page 294: Oracle 8i Networking 101
Page 295: Oracle 8i Networking 101

Менеджерсоединений

Page 296: Oracle 8i Networking 101

278 Глава 10

П ,. .;. : . ; " .осмотрите, какой чудесный день! У меня есть билеты на бейсболь-

ный матч. Профессиональный бейсбол — это увлекательное зрелище, а ктому же сегодня играет моя любимая команда. Итак, в путь! Вот мы и настадионе. Интересно, где же наши места? Спрашиваем у распорядителяна входе. Оказывается, нам нужно подняться на второй уровень по эска-латору. Теперь надо найти сектор 372. Видите, над каждым из проходовнаписан номер? Вот наш сектор. Куда идти дальше? Я думаю, стоит обра-титься к другому распорядителю. Он говорит, что мы должны спуститьсяпо этой лестнице до ряда С и найти сиденья с номерами 1 и 2. Это отлич-ные места? Отсюда будет видно все происходящее. Я уверена, что моякоманда выиграет!

Рассмотрим путь, который мы только что проделали. Каждый распо-рядитель на стадионе выступает в роли "маршрутизатора", направляя бо-лельщиков к их местам. Отрезок пути между двумя маршрутизаторами насетевом языке называется переходом (hop). Если придерживаться сете-вой терминологии и представить себя пакетами, то картина будет следую-щей. Подойдя к первому распорядителю и узнав направление, в которомнужно двигаться, мы начали первый переход на пути к своим местам.Дойдя до второго распорядителя, мы завершили первый переход и нача-ли второй. Таким образом, путь от первого распорядителя до наших местсостоял из двух переходов.

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

Обзор менеджера соединений OracleЧто отличает менеджер соединений Oracle от сервера имен Oracle? Насамом деле это совершенно разные инструменты. Сервер имен Oracle вы-дает клиенту адрес, по которому нужно устанавливать соединение, напри-мер, имя хоста, порт прослушивающего процесса и идентификатор базыданных (SID или имя службы), но ничего не сообщает о том, по какомумаршруту следует посылать запрос. Сервер имен можно рассматриватькак телефонную книгу, в которой есть адреса, но нет карты. Менеджерсоединений Oracle, напротив, может помочь в выборе направления.Кроме того, он обеспечивает концентрацию соединений, управлениедоступом и мультипротокольную поддержку. Рассмотрим компоненты,которые реализуют каждую из этих функций.

Page 297: Oracle 8i Networking 101

Менеджер соединений 279

Процессы менеджера соединений OracleОсновная задача менеджера соединений Oracle состоит в приеме входя-щих клиентских запросов и инициировании соединений с требуемымислужбами. В его состав входят два процесса — шлюзовой (Connection Ma-nager Gateway process, CMGW) и административный (Connecion ManagerAdministrative process, CMADMIN), а также утилита Connection ManagerControl (cmctl), обеспечивающая управление этими процессами. Нижедается краткий обзор процессов CMGW и CMADMIN. Об утилите cmctlбудет подробно рассказано в конце главы.

Шлюзовой процессПроцесс CMGW регистрируется в процессе CMADMIN и действует вкачестве концентратора. Он принимает входящие запросы на соедине-ния (по умолчанию — через порт 1630 протокола TCP/IP), устанавливаетсоединения с прослушивающими процессами и ретранслирует данныемежду клиентами и серверами. Кроме того, CMGW отвечает на запросыутилиты cmctl.

Административный процессМногопоточный процесс CMADMIN отвечает за выполнение всех адми-нистративных задач. По умолчанию ему назначается порт 1830. Этотпроцесс обрабатывает запросы на регистрацию, поступающие от CMGW,и регистрирует маршрутную информацию о CMGW и прослушивающихпроцессах. Помимо этого, CMADMIN отвечает на запросы утилиты cmctlи идентифицирует каждый прослушивающий процесс, обслуживающийкак минимум один экземпляр базы данных. CMADMIN может использо-вать сервер имен Oracle для выполнения следующих задач:

• Определения местонахождения локальных серверов имен Oracle• Мониторинга зарегистрированных прослушивающих процессов• Получения информации об адресах клиентов• Периодического обновления списка доступных служб,

хранящегося в кэше менеджера соединений• Получения маршрутной информации о CMGW

и прослушивающих процессах

Концентрация соединенийВ главе 3 рассказывалось о том, как можно сократить число соединениймежду клиентами и сервером при помощи многопоточного сервера(MTS). MTS очень полезен, когда клиенты и серверы взаимодействуютчерез Net8. Менеджер соединений Oracle позволяет передавать потокиданных, относящиеся к разным клиентским сеансам, через единственноетранспортное соединение с MTS (то есть обеспечивает мультиплексиро-вание клиентских сеансов). Эта технология, известная под названиемконцентрации соединений (connection concentration), сокращает потреб-ность в ресурсах, поскольку сервер может поддерживать множество сое-динений между процессами, используя гораздо меньшее количество

Page 298: Oracle 8i Networking 101

280 Глава 10

точек приема входящих запросов. Таким образом, концентрация соеди-нений позволяет увеличить общее число клиентов, обслуживаемыхсервером. Если развить эту идею дальше и использовать нескольких ме-неджеров соединений, то можно обеспечить поддержку тысяч параллель-ных соединений пользователей с сервером. На рис. 10.1 показанынесколько клиентов, соединенных с базой данных через менеджер соеди-нений. Как видите, между машиной менеджера соединений и серверомбазы данных установлено всего одно фактическое соединение.

Клиентскоесоединение

Клиент А

Клиент В

г

ч соединение

Клиентскоесоединение

1- — '

-1

сашмшв..

соединений

- , - . ! . . •

Машина

соединений

Транспортноесоединение

1

}

bni i|g

™ !•' dr t]••Л F

1 11 1

' '

Базаданных j

' \

Клиент С

Сервербазы данных

Рис. 10.1. Концентрация соединений при использовании менеджерасоединений Oracle

При совместном использовании менеджера соединений и многопо-точного сервера количество поддерживаемых соединений возрастает вгеометрической прогрессии.

Управление доступом на уровне Net8В начале этой главы упоминалось о том, что менеджер соединений Oracleпредоставляет три различные возможности: концентрацию соединений,управление доступом на уровне Net8 и мультипротокольную поддержку.В этом разделе рассмотрим управление доступом.

Во время недавней поездки в Лас-Вегас мне довелось побывать в од-ной неплохой столовой. Я была в компании еще трех человек. Заплативза обед, мы встали в очередь, чтобы нас посадили за стол. Официанткаубедилась, что мы заплатили, и спросила, сколько человек в нашей компа-нии и в каком зале мы хотим расположиться — для курящих или для неку-рящих. Затем она направила нас к другому человеку, который показал,за какой стол можно сесть. Этот процесс "получения доступа к столу"показан на рис. 10.2.

Page 299: Oracle 8i Networking 101

Менеджер соединений 281

Зал для некурящих

X = наш стол

Рис. 10.2. Размещение посетителей в столовой

Как видите, от кассира мы пошли к официантке, которая провела насв зал для некурящих, где нам показали определенный стол. Он отмеченна рисунке знаком X. Размещая нас за столом, обслуживающий персоналруководствуется следующими правилами:

1. Все клиенты должны предварительно заплатить.

2. За столом должно сидеть определенное число людей.

3. Члены компании должны согласовать между собой, в каком залеони будут сидеть — для курящих или для некурящих.

4. В выбранном зале должен быть свободный стол.

Менеджер соединений Oracle позволяет управлять доступом клиентовк серверам в среде TCP/IP путем задания правил фильтрации, напомина-ющих только что перечисленные. Эти правила позволяют запретитьопределенным клиентам доступ к тем или иным серверам. Критериямифильтрации могут служить:

• Имена хостов или IP-адреса клиентов• Имена хостов или IP-адреса серверов• Имя службы базы данных

Хотя первые два критерия приведены во множественном числе, выможете указывать единичные имена хостов или IP-адреса. Правила филь-трации хранятся в файле email.ога, о котором рассказано ниже.

Page 300: Oracle 8i Networking 101

282 Глава 10

Мультипротокольная поддержкаМоя соседка, живущая на противоположной стороне улицы, недавнопереехала в Соединенные Штаты и совсем не говорит по-английски.Если мне нужно что-то у нее спросить, мне приходится обратиться кее мужу, который знает английский. Он задает жене мой вопрос, а потомпереводит ее ответ.

До появления Net8 связь между несовместимыми сетевыми протокола-ми осуществлялась при помощи программного средства MultiprotocolInterchange, с использованием так называемых сетевых сообществ(network communities). Каждая машина, входившая в сообщество, соеди-нялась с другими машинами своего сообщества по одному протоколу.Например, в сети могло существовать сообщество UNIX-серверов,использовавших протокол TCP/IP, и сообщество серверов CompaqOpenVMS, использовавших протокол DECnet. Чтобы передать запрос кбазе данных из одного сообщества в другое с использованием SQL*Net2,требовалось прибегать к услугам средства Multiprotocol Interchange, точ-но так же, как я должна обращаться к мужу соседки, чтобы установить сней контакт. В Net8 функции Multiprotocol Interchange выполняет менед-жер соединений.

Хотя Net8 теоретически может соединять столько стеков протоколов,сколько вы сможете установить, узлы сети могут накладывать свои огра-ничения, связанные с используемой аппаратурой, памятью и/или опера-ционными системами. Пример мультипротокольной поддержки показанна рис. 10.3, где SPX-клиенты используют протокол IPX для связи с базойданных, работающей по протоколу TCP/IP.

Машинаменеджерасоединений

Клиент С

Сервербазы данных

Рис. 10.3. Мультипротокольная поддержка в менеджересоединений Oracle

Page 301: Oracle 8i Networking 101

Менеджер соединений 283

Конфигурирование менеджерасоединений Oracle

Решив использовать в своей системе один или несколько менеджеровсоединений Oracle, вы должны их сконфигурировать. Заглянув в каталог$ORACLE_HOME/network/admin/samples (в UNIX) или ORACLE.HOME\network\admin\samples (в Windows NT), вы найдете там файл сименем cman.ora. Его можно использовать как образец при конфигуриро-вании процессов менеджера соединений. В данном случае Net8 Assistantили Net8 Configuration Assistant не помогут. Вам придется редактироватьфайл конфигурации вручную.

Начнем с изучения разделов образцового файла cman.ora.

Cman.oraФайл cman.ora используется для хранения параметров конфигурации ме-неджера соединений Oracle. Этот файл аналогичен по своему назначе-нию файлу listener.ora и tnsnames.ora прослушивающего процесса илифайлу names.ora сервера имен Oracle.

Образцовый файл cman.ora начинается с комментариев, объясняю-щих синтаксис и назначение каждого из доступных параметров. Послекомментариев дается полный пример конфигурации. Приведу здесь толь-ко две первые строки. Единственное, что я добавила,— это имя своегохоста, MARLENES-PC.

Q 8# cman's listening addressesПcman = (ADDRESS_LIST=

(ADDRESS=(PROTOCOL=tcp)(HOST=marlenes-pc)(PORT=1630)(QUEUESIZE=32)))

cman_admin = (ADDRESS=(PROTOCOL=tcp)(HOST=marlenes-pc)(PORT=1830))

Как следует из комментария, в этих строках определяются адреса, покоторым процессы будут принимать запросы на соединения. Первый па-раметр относится к процессу CMGW, а второй — к процессу CMADMIN.Указанные номера портов используются по умолчанию. Если ваши про-цессы будут использовать протокол TCP/IP и прослушивать стандартныепорты, то эти две строки вообще не нужны. Однако для большей нагляд-ности их все же следует включить. В этом случае вы сможете быстро про-верить, какие порты используются процессами. Поскольку процессCMGW выполняет все основные функции менеджера соединений Oracle,его можно запускать без процесса CMADMIN.

Посмотрим, какие еще параметры можно включать в файл cman.ora.В таблице 10.1 приведены четыре параметра менеджера соединенийOracle, а также (за исключением cman_profile) их значения.

Page 302: Oracle 8i Networking 101

284 Глава 10

Таблица 10.1.Параметры cman.ora

Параметр Описание - : " •

cman Адреса, прослушиваемые шлюзовым процессом менеджера соединенийOracle (CMGW). Значение по умолчанию:стап=(аЬЬге55=(рго1осоНср)(по51=<локальный_хост>)(р011=1630))

cman_admin Адреса, прослушиваемые административным процессом менеджерасоединений Oracle (CMADMIN). Значение по умолчанию:cman_admin=(addressHprotocoNcp)(host=< io6ou_xocT>)(port=1830))

cman_profile Список параметров, относящихся к менеджеру соединений Orade(см. табл. 10.2 и 10.3).

cman_rules Правила фильтрации для контроля доступа к сети. Правило фильтрации зада-ется путем указания перечисленных ниже параметров с необходимыми значе-ниями. Эти параметры определяют, должен ли менеджер соединенийпринимать или отклонять запросы с указанной комбинацией адреса источни-ка, адреса назначения и идентификатора базы данных.SRC — имя хоста или IP-адрес источника запросаDST — имя хоста или IP-адрес сервера назначенияSRV - SID базы данныхACT — принимать или отклонять входящие запросы с указанными вышехарактеристиками

Два параметра из таблицы 10.1 — cman_profile и cman_rules — пред-ставляют особый интерес. Поскольку cman_rules содержит только четы-ре значения, они перечислены в таблице 10.1. Что касается профиля, тоон может содержать довольно много переменных, определяющих работуменеджера соединений, поэтому описания этих переменных вынесены втаблицу 10.2, а их значения по умолчанию и диапазоны значений — в таб-лицу 10.3. Кроме того, ниже приведен пример профиля. Он помещается вфайл cman.ora после определений параметров cman и cman_admm.

cman_profile=(parameter_list=

(maximum,relays=512)(log,_level=1)(relay_statistics=yes)(remote_admin=yes)(show_tns_info=yes)(use_async_call=yes)(autnentication_level=0)(tracing=yes)

(trace_timestamp=yes)(г_гасе„Ше1еп=100)(trace_fileno=2))

Page 303: Oracle 8i Networking 101

Менеджер соединений 285

Таблица 10.2.Параметры cman_profile

Параметр Описание

answerjimeout

authenticationjevel

logjevel

max_freelist_buffers

maximum_connect_ data

maximumjelays

relay_statistics

remote_admin

showjnsjnfo

tracing

trace_directory

i

tracejilelen

tracejileno

tracejimestamp

Интервал тайм-аута (в секундах) для процедуры установлениясоединения по входящему запросу.

Уровень безопасности, требуемый менеджером соединений Oracle:1 = отклонять запросы на соединения, не использующие службусетевой безопасности (Secure Network Services, SNS) из пакетаOracle Advanced SecurityО = не проверять использование SNS

Уровень протоколирования:0 = протоколирование не ведется1 = базовый отчет2 = отчет о выявленных совпадениях с RULEJ.IST3 = отчет о блокировках ретрансляции4 = отчет о количестве операций ввода/вывода, связанныхс ретрансляцией

Максимальное число буферов, которые TNS может заносить в спи-сок своих свободных блоков с целью последующего использования,вместо того чтобы возвращать их операционной системе послезакрытия соединения.

Максимальная длина строки с данными о соединении для входящихзапросов на соединение.

Максимальное число параллельных соединений, поддерживаемыхменеджером соединений Oracle.

Определяет, должна ли записываться статистика по операциямввода/вывода.

Определяет, разрешен ли удаленный доступ к менеджеру соедине-ний Oracle.

Определяет, должна ли записываться информация, относящаяся кTNS.

Определяет, разрешена ли трассировка для менеджера соединенийOracle.

Каталог для файла трассировки. Если планируется использовать па-раметры TRACE_FILELEN или TRACEJIMESTAMP, в этом параметредолжен быть указан каталог, отличный от каталога по умолчанию.

Размер файла трассировки в килобайтах (KB). При превышении это-го размера трассировочная информация записывается в следующийфайл. Количество файлов задается параметром TRACE_FILENO.

Количество файлов трассировки. При одновременной установкепараметра TRACE_FILELEN файлы трассировки будут использоватьсяциклическим образом.

Добавляет отметку времени в формате дд-месяц-гггг чч:мм:сск трассируемому событию в файле трассировки.

Page 304: Oracle 8i Networking 101

286 Глава 10

Таблица 10.2 (продолжение)Параметры cmanjprofile

Параметр Описание

use_async_call Определяет, будет ли менеджер соединений Oracle использоватьасинхронные процедуры в фазе ответа или вызова при установлениисоединения Net8.

Таблица 10.3.Установки по умолчанию и диапазоны значенийдля параметров cman_profile

Параметр со значением по умолчанию Возможные значения

answer_timeout=0

authentication_level=0

log_level=0

max_freelist_buffers=0

maximurn_connect_data=1024

maximum_relays=128

relay_statistics=NO

remote_admin=NO

show_tnsjnfo=NOtrace directory=$ORACLE HOME/network/trace/в UNIX, ORACLE_HOME\network\traceв Windows NT

trace_filelen=unlimited

trace_fileno=1

trace_timestamp=NOtracing=NO

use_async_call=YES

0-п

О М0-4

0-10240

257-4096

1-2048

[YES | TRUE | ON | 1 | NO | FALSE | OFF | 0]

[YES | TRUE | ON | 1 | NO | FALSE | OFF | 0]

[YES | TRUE | ON | 1 | NO | FALSE | OFF | 0]Местонахождение каталога

Размер файла в килобайтах (не ограничен)

Число

[YES | TRUE | ON | 1 | NO | FALSE | OFF | 0]

[YES | TRUE | ON | 1 | NO | FALSE | OFF | 0]

[YES | TRUE | ON | 1 | NO | FALSE | OFF | 0]

В последнем разделе образцового файла cman.ora говорится о том, чтопри установке параметра cman_rules менеджер соединений будет работатькак фильтрующий прокси-сервер TCP/IP, и приводится синтаксис этогопараметра.

# cman is used as a fire wall proxy on TCP, IF AND ONLY IF "cman_rules" exists

## cman_rules = (rule_list=# (rule=(src=skdl)(dst=x)(srv=x)(act=accept))# )

Page 305: Oracle 8i Networking 101

Менеджер соединений 287

В данном случае параметр cman_rules сообщает менеджеру соедине-ний Oracle о том, что нужно принимать все запросы на соединения, исхо-дящие от сервера SKDL. Символы х— это шаблоны, означающие, чтохосту SKDL разрешено соединяться с любой базой данных на любом сер-вере. Другое возможное значение переменной act — REJECT. При исполь-

•II,;-! зовании параметра cman_rules менеджер соединений действует попринципу "запрещено все, что не разрешено", поэтому вы должны явноуказать все соединения, которые должны быть разрешены.

Конфигурирование концентрации соединенийЧтобы использовать концентрацию соединений, необходимо в первуюочередь сконфигурировать менеджер соединений Oracle. Из предыдуще-го раздела вы уже знаете, как это делается. Затем конфигурируется сер-вер, и в завершение — клиенты.

Для поддержки концентрации соединений сервер назначения долженбыть сконфигурирован так, чтобы он работал в режиме многопоточногосервера. Кроме этого, необходимо включить мультиплексирование. Обезадачи решаются с помощью Database Configuration Assistant. Если вы нехотите использовать этот инструмент, можете вручную установить пара-метр mts_dispatchers в файле параметров базы данных init.ora. Нижепоказано, как задать протокол и включить мультиплексирование:

Q mts_dispatchers = "(protocol=TCP)(multiplex=ON)"

MTS имеет несколько других параметров, но для поддержки концент-рации соединений достаточно только тех, что приведены выше. Воз-можные значения параметров protocol и multiplex перечислены втаблице 10.4.

Таблица 10.4.Параметры protocol и multiplex многопоточного сервера

Параметр Описание

protocol (prot, pro) Сетевой протокол (в нашем примере TCP), для которого диспетчергенерирует конечную точку прослушивания.

multiplex (mult, mul) Разрешает/запрещает концентрацию соединений. Значение 1, ON, YES,TRUE или BOTH разрешает концентрацию как входящих, так иисходящих сетевых соединений. Значение IN разрешает концентрациютолько входящих сетевых соединений клиентов. Значение OUTразрешает концентрацию только исходящих сетевых соединений.Значение О, NO, OFF или FALSE запрещает концентрацию каквходящих, так и исходящих сетевых соединений.

Итак, сервер сконфигурирован. Теперь займемся конфигурированиемклиента. Чтобы клиенты могли использовать концентрацию соединений,необходимо создать два адреса: один для менеджера соединений Oracle, aдругой — для прослушивающего процесса. Процедура конфигурированиязависит от используемого метода именования.

Page 306: Oracle 8i Networking 101

288 Глава 10

В случае локального именования или именования по каталогу вы дол-жны модифицировать файл tnsnames.ora так, чтобы в запросах на соеди-нение использовался менеджер соединений Oracle. Для этого нужносоздать список адресов, где на первом месте будет стоять адрес менедже-ра соединений Oracle, а на втором — адрес прослушивающего процесса.Чтобы клиент сначала соединялся с менеджером соединений Oracle, а за-тем с прослушивающим процессом, необходимо присвоить значение YESпараметру source_route. Вот пример записи в файле tnsnames.ora:

Q skdl=(description

(source_route=yes)(address=

(protocol=tcp)(host=cman-pc)(port=1630)

(address=(protocol=tcp)(host=marlenes-pc)(port=1521))

(connect_data= ,' .(se rvice_name=skdl.xyzco rp.us.com)))

Использование менеджера соединений обеспечивается параметрамиsource_route, protocol, host и port, указанными непосредственно послеключевого слова description. CMAN-PC — это имя машины, на которойзапущен менеджер соединений. Если бы менеджер соединений находил-ся на машине MARLENES-PC, то в качестве значения host нужно былоиспользовать именно это имя. Второй адрес определяет местонахожде-ние базы данных. Менеджер соединений будет использовать эту инфор-мацию для соединения со службой базы данных через прослушивающийпроцесс.

При использовании серверов имен Oracle ситуация немного упроща-ется, поскольку информация о прослушивающем процессе и менеджересоединений передается серверу имен автоматически. На стороне клиентадостаточно поместить в файл sqlnet.ora параметр use_cman=TRUE. Та-кой же параметр должен присутствовать в файле sqlnet.ora на каждом изсерверов имен Oracle.

Конфигурирование мультипротокольной поддержки, как и концентра-ции соединений, необходимо начинать с конфигурирования менеджерасоединений. Менеджер соединений может принимать запросы на соеди-нения по любому протоколу, поддерживаемому Oracle. Это означает, чтоSPX-клиент, не имеющий возможности напрямую соединяться с серве-ром, использующим TCP/IP, сможет соединиться с менеджером соедине-ний, который, в свою очередь, установит соединение с базой данных.

Сконфигурировав менеджер соединений Oracle, вы должны сконфигу-рировать клиент. В данном случае конфигурирование выполняется почти

Page 307: Oracle 8i Networking 101

Менеджер соединений 289

так же, как было описано в предыдущем разделе. Единственное, что будетнемного отличаться,— это запись в файле tnsnames.ora:

Q skdl=(description

(source_route=yes)(address=

(protocol=spx)(service=cman)

(address=(protocol=tcp)(host=marlenes-pc)(port=1521))

(connect_data=(se rvice_name=skdl. xyzco rp. us. com)))

Здесь изменился только первый адрес, где теперь указаны протоколSPX и имя службы CMAN.

Чтобы разрешить управление доступом, кроме стандартного конфигури-рования менеджера соединений вы должны добавить в файл cman.ora па-раметр cman_rules. Его значения были приведены в таблице 10.1.Помните, что буква х используется в качестве шаблона, обозначающеголюбой адрес или любое имя. Параметр cman-rules имеет следующийсинтаксис:

Q cman_rules=(rule_list=

(rule=(src=marlenes-pc)(dst=skdl-pc)(srv=skdl.us.xyzcorp.com)(act=accept))

(rule=(src=196.123.45.67)(dst=196.123.46.78)(srv=mydb)(act=reject)))

В этом примере определены два правила, каждое в своем разделе rule.Согласно первому правилу, все запросы на соединения с базой данныхSKDL.XYZCORP.US.COM на хосте SKDL-PC, поступающие с хостаMARLENES-PC, должны приниматься. Второе правило гласит, что всезапросы на соединения с базой данных MYDB на хосте 196.123.46.78,поступающие с хоста 196.123.45.67, должны отклоняться. На этом кон-фигурирование менеджера соединений Oracle завершается. Теперь необ-ходимо сконфигурировать клиент.

При использовании локального именования или именования по ката-логу клиенты конфигурируются точно так же, как и при концентрациисоединений и мультипротокольной поддержке. Вы создаете список адре-сов, где на первом месте стоит адрес менеджера соединений, а на

Page 308: Oracle 8i Networking 101

290 Глава 10

втором — адрес прослушивающего процесса, и устанавливаете значениеYES для параметра source_route. При использовании сервера имен Orac-le достаточно указать use_cman=TRUE в файле sqlnet.ora. Следует заме-тить, что если в маршруте соединения указано более одного менеджерасоединений Oracle, то использование службы имен Oracle невозможно.

Утилита Connection Manager ControlИтак, все задачи по конфигурированию выполнены. Следующий вопрос:как запускать и останавливать процессы менеджера соединений Oracle икак ими управлять? Для этого корпорация Oracle предоставляет специа-льную утилиту с названием cmctl (Connection Manager Control). Как и ути-литы Listener Control и Names Control, она запускается из команднойстроки операционной системы по команде

Q cmctl <команда> <тип_процесса>, ' ' , , . ' • <

Возможные команды приведены в таблице 10.5. Аргумент тип_процес-са указывает, к какому процессу относится команда. Рекомендуется указы-вать следующие типы: cman для воздействия на процессы CMGWи CMADMIN или cm для воздействия только на процесс CMGW. Хотясуществует и третий тип, adm, корпорация Oracle не рекомендует его ис-пользовать. Кроме того, тип cm лучше использовать только для резерви-рования ресурсов. Для одновременного запуска процессов CMGW иCMADMIN нужно ввести следующую команду:

Q cmctl start cman

Чтобы войти в утилиту и вводить команды из приглашения cmctl>,а не из приглашения операционной системы, введите

Q cmctl1 ' '

Таблица 10.5.Команды утилиты cmctl(звездочка означает, что с командой связаны дополнительные параметры)

Команда Описание

accept_connections Разрешает или запрещает принимать новые запросы на соединения.Параметр OFF не влияет на существующие соединения.Параметр по умолчанию: ONВозможные параметры: ON | OFF

closejelay Разрешает закрыть транспортное соединение с указанным номером.Параметр ALL немедленно закрывает все соединения.Используйте эту команду с осторожностью.Параметр по умолчанию: отсутствуетВозможные параметры: номер_транспорта | ALL

help Выводит список всех доступных команд cmctl. В сочетании с именемкоманды выводит справку по использованию данной команды.

Page 309: Oracle 8i Networking 101

Менеджер соединений 291

Таблица 10.5 (продолжение)Команды утилиты cmctl(звездочка означает, что с командой связаны дополнительные параметры)

Команда Описание '

shutdown Останавливает процессы менеджера соединений Oracle. Используетсяс одним из следующих параметров:NORMAL (no умолчанию) — завершение работы работа менеджерасоединений Oracle после закрытия всех существующих соединений.После выдачи команды новые запросы на соединения не принимаются.ABORT—немедленное завершение работы с закрытием всех открытыхсоединений, сглап — данный аргумент можно указывать после NORMALили ABORT, но это не обязательно, поскольку он неявно используетсяв обоих случаях.

start Запускает менеджер соединений Oracle, cman (по умолчанию) — запускпроцессов CMGW и CMADMIN.cm — запуск только процесса CMGW.

stats Выводит статистику по менеджеру соединений Oracle.cman (по умолчанию) — вывод статистики для процессов CMGW иCMADMIN.cm - вывод статистики для процесса CMGW. При указании параметровСОМРАТ или VERBOSE выводится следующая статистика:TOTAL_RELAYS (СОМРАТ) — общее количество установленных транспорт-ных соединений.(VERBOSE) — общее количество соединений, успешно установленныхменеджером соединений с момента его запуска.ACTIVE_RELAYS (СОМРАТ) — количество транспортных соединений,активных в данный момент.(VERBOSE) — количество соединений, активных в данный момент.

MOST_RELAYS (СОМРАТ) — пиковое количество активных транспортныхсоединений.(VERBOSE) - максимальное количество параллельных соединений, ког-да-либо устанавливавшихся с момента запуска менеджера соединений.OUT_OF_RELAY (СОМРАТ) — общее количество отказов в соединении по

причине превышения maxjelays.(VERBOSE) — общее количество запросов на соединение, отклоненных смомента запуска менеджера соединений из-за достижения предельногочисла транспортных соединений.TOTAL.REFUSED (СОМРАТ) - общее количество отклоненныхсоединений.(VERBOSE) — общее количество запросов на соединение, отклоненныхс момента запуска менеджера соединений.

status Выводит информацию о состоянии, включая версию, время запускаи текущую статистику.cman (no умолчанию) - вывод информации о состоянии для процессовCMGW и CMADMIN.cm — вывод информации о состоянии для процесса CMGW.

Page 310: Oracle 8i Networking 101

292 Глава 10

Таблица 10.5 (продолжение)Команды утилиты cmctl(звездочка означает, что с командой связаны дополнительные параметры)

Команда Описание

stop Немедленно останавливает менеджер соединений Oracle, запрашиваяподтверждение при наличии открытых соединений,cman (по умолчанию) - останов процессов CMGW и CMADMIN.cm — останов только процесса CMGW,

stopnow Немедленно останавливает менеджер соединений Oracle, закрывая всеоткрытые соединения без предупреждения,cman (по умолчанию) — останов процессов CMGW и CMADMIN.cm — останов только процесса CMGW.

version Показывает версию и имя утилиты cmctl.

quit Завершает работу утилиты. Идентична команде exit.

exit Завершает работу утилиты. Идентична команде quit.

set* Выводит список параметров текущего сеанса cmctl, для которых можноустановить значения. В сочетании с именем параметра устанавливает егозначение.

show* Выводит список параметров текущего сеанса, значения которых можнопросматривать. В сочетании с именем параметра показывает его текущеезначение.

На рис. 10.4 показано, как выглядит окно DOS после входа в утилитуcmctl. В строке приглашения cmctl> введена команда help, чтобы пока-зать, какие операции доступны.

j Command Prompt - cmcllMicrosoftCR> Windows NT<TM><C> Copyright 1985-1996 Microsoft Corp.

C:\>cmctl

CMCTL for 32-bit Windows: Uersion 8 .1 .6.0.8 - Production on 13-ЙРН-20И0 13:28:08

<c> Copyright 1998, 1999. Oracle Corporation. Й11 rights reserved.

Welcome to CMCTL, type "help" for information.

CMCIL> helpThe following operations are availableAn asterisk <**> denotes a modifier or extended command:

accept„connectionsstartstopijuitshow*

CMCTL> _

close_relaystatsstopnowexit

shutdownstatusversionset»

Рис. 10.4. Приглашение cmctl и результат выполнения команды help

Page 311: Oracle 8i Networking 101

Менеджер соединений 293

При использовании команды close_relay следует соблюдать осторож-ность. Дело в том, что за время, прошедшее с момента выдачи командыshow relay до момента выдачи команды close_relay, то же самое транс-портное соединение может быть использовано для другого соединения.

Команда set имеет четыре параметра, перечисленных в таблице 10.6.

Таблица 10.6.Параметры команды set утилиты cmctl

Параметр Описание

authentication level

Displaymode

logjevel

relay_statistics

Устанавливает уровень безопасности для менеджера соединенийOracle. Используется со следующими аргументами:0 (по умолчанию) = аутентификация клиентов не требуется.1 = отклонять соединения, не использующие службу сетевойбезопасности (Secure Network Services, SNS).

Изменяет режим вывода для команд start, stats, status, stopи version. Используется со следующими аргументами:СОМРАТ (по умолчанию) — режим совместимости с предыдущимиверсиями менеджера соединений OracleVERBOSE (рекомендуется) — вывод отформатированной и болеесодержательной информации.

Устанавливает уровень протоколирования для менеджера соедине-ний Oracle с помощью аргумента, принимающего значения от 0 до 4:0 (по умолчанию) = протоколирование не ведется;1 = базовый отчет;2 = отчет о выявленных совпадениях с RULEJJST;3 = отчет о блокировках ретрансляции;4 = отчет о количестве операций ввода/вывода, связанныхс ретрансляцией.

Включает (ON) или выключает (OFF) сбор статистики по операциямввода/вывода, выполняемым менеджером соединений Oracle. Приустановке значения ON будет отображаться следующая информация:Количество полученных байтовКоличество отправленных байтовКоличество полученных пакетовКоличество отправленных пакетов

Команда show имеет шесть параметров, перечисленных в таблице 10.7.Изменения параметров менеджера соединений, выполненные по

команде set, будут действовать только на протяжении текущего сеансаcmctl. Эти изменения нельзя сохранить в файле cman.ora.

Следует также заметить, что корпорация Oracle рекомендует исполь-зовать вместо команд stop и stopnow команду shutdown, поскольку онавыполняет те же самые действия более аккуратно.

<„ . ••:••.,-.••• • •

Page 312: Oracle 8i Networking 101

294 Глава 10

Таблица 10.7.Параметры команды show утилиты cmctl

Параметр Описание

address

all

displaymode

profile

relay

rules

Показывает адрес протокола, указанный в параметре стал файла cman.ora.

Показывает значения, выводимые командами address, profile и rules.

Показывает текущий режим вывода для команд start, stats, status, stop иversion. Используется со следующими аргументами:СОМРАТ (по умолчанию) — режим совместимости с предыдущими версиямименеджера соединений Oracle.VERBOSE (рекомендуется) — вывод отформатированной и более содержате-льной информации.

Показывает текущие значения параметров менеджера соединений Oracle.Информация берется из параметра cman.profile файла cman.ora с учетомизменений, внесенных с помощью команды set.

Показывает текущее состояние выбранного транспортного соединенияили все активные транспортные соединения менеджера соединений Oracle.Указав аргумент ACTIVE, вы увидите список активных транспортныхсоединений. Если указать в качестве аргумента номер, то будет выведенаследующая информация:Номер транспортного соединенияАдрес источника (конечная точка на стороне клиента)Адрес назначения (конечная точка на стороне сервера)Количество полученных байтовКоличество полученных пакетовКоличество полученных пробных пакетов DCDКоличество отправленных байтовКоличество отправленных пакетовКоличество отправленных пробных пакетов DCD

Показывает текущие правила доступа на уровне Nets, используемыеменеджером соединений Oracle.

Page 313: Oracle 8i Networking 101

Поддержкабольших сетей

Page 314: Oracle 8i Networking 101

296 Глава 11

»не только что позвонила мама и сообщила, что будет с минуты наминуту, а у меня по всей комнате разбросаны книги, журналы, статьи, ктому же не сложено белье, только что вынутое из сушильного барабана.Вы не поможете мне быстро все это собрать и убрать с глаз долой? Проб-лема в том, что за один раз трудно перенести больше определенного ко-личества вещей. Возможно, дело пойдет быстрее, если складыватьжурналы и статьи стопкой на согнутые руки. Впрочем, я придумалакое-что получше. Дайте мне корзину для белья. Сложим туда все бумаги ипросто вынесем корзину в другую комнату. Я разложу вещи по местампозже, а пока комната будет выглядеть чистой и прибранной. Спасибо запомощь!

Если бы я попыталась быстро привести комнату в приличный вид водиночку, то затратила бы гораздо больше сил и вдвое больше времени.Разделив нагрузку, мы смогли выполнить тот же объем работы с меньши-ми усилиями За меньшее время.

Подобно тому, как мы объединили свои силы, чтобы быстрее справи-ться с задачей, Net8 позволяет повысить производительность системы засчет более эффективного использования ресурсов. В этой главе рассказа-но о нескольких средствах Net8, с помощью которых можно оптимизиро-вать сеть Oracle. Мы рассмотрим конфигурирование многопоточногосервера, балансировку нагрузки, объединение соединений, концентра-цию соединений и предварительное создание выделенных серверов. Обовсем этом уже не раз упоминалось в предыдущих главах, но сейчас вы по-лучите более глубокое представление о каждой из возможностей. Боль-шая часть этой главы посвящена многопоточному серверу, поскольку онявляется одним из наиболее эффективных средств, позволяющих в пол-ной мере использовать ресурсы операционной системы (особенно еслиречь идет о Windows NT Server).

Net8 предоставляет широкий выбор средств, обеспечивающих поддер-жку больших сетей с множеством параллельных соединений. Вот списокдействий, которые можно предпринять для увеличения числа поддержи-ваемых соединений даже при ограниченных ресурсах:

• Задействовать многопоточный сервер (MTS)• Если MTS уже используется, разрешить объединение

соединений, концентрацию соединений и/или балансировкуклиентской нагрузки

• Предварительно создавать выделенные серверы

Первое, о чем нужно спросить себя: что из перечисленного имеетсмысл в моей среде? Затем следует подумать, что является оптимальнымдля вас и вашей компании. Все возможности выглядят многообещающе,но каковы их реальные достоинства и недостатки? Рассмотрим подроб-нее каждый из вариантов, чтобы вы могли принять обоснованноерешение.

Page 315: Oracle 8i Networking 101

Поддержка больших сетей 297

Использование многопоточного сервераСначала кратко повторим то, что говорилось в главе 2 о процессах много-поточного сервера. Обслуживание клиентских запросов при использова-нии MTS происходит следующим образом:

1. Запускается прослушивающий процесс Net8. Его конфигурация,хранимая в файле listener.ora, определяет, через какой порт (илипорты) будут приниматься запросы на соединения.

2. Каждая база данных, которая должна стать доступной, запускаетсяи регистрируется в прослушивающем процессе. Тем самым прослу-шивающий процесс узнает, какие службы и экземпляры доступны вданный момент.

3. После запуска базы данных запускаются диспетчеры (если в файлеинициализации init.ora присутствуют параметры, относящиеся кMTS). Каждому диспетчеру назначен определенный адрес. При запу-ске диспетчер регистрирует свой адрес в прослушивающем процес-се. Для этого диспетчер обращается к прослушивающему процессулибо по его стандартному адресу, либо по сетевому имени, указанно-му в файле init.ora. Сетевое имя прослушивающего процесса можетразрешаться в более чем один адрес, если используются множествен-ные прослушивающие процессы.

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

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

6. Клиент разрывает соединение с прослушивающим процессом и уста-навливает соединение с диспетчером, используя полученный адрес.

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

8. Диспетчер помещает клиентский запрос в очередь запросов разделя-емого сервера. Разделяемый сервер извлекает запрос из очереди ивыполняет его обработку, после чего помещает результат в очередьответов. Диспетчер извлекает результат из очереди ответов и воз-вращает его клиенту, пославшему запрос. После этого клиент отсое-диняется от диспетчера.

Page 316: Oracle 8i Networking 101

298 Глава 11

9. После отсоединения клиента диспетчер остается доступным. Разде-ляемый сервер продолжает обработку других запросов из очереди.Если запрос находится в очереди слишком долго, могут быть запу-щены другие разделяемые серверы, максимальное число которыхопределено в файле init.ora. Таким образом, разные запросы одно-го клиента могут обрабатываться более чем одним разделяемымсервером.

Последовательность обслуживания клиентского запроса в среде мно-гопоточного сервера схематически показана на рис. 11.1. Единственныйне отраженный там этап — это отсоединение клиента.

1. Запускается прослушивающий процесс.2. Запускается база данных.3. Если файл init.ora содержит параметры,относящиеся к MTS, то запускаются диспетчеры.Прослушивающий процесс получает возможностьперенаправлять клиентские вызовы к диспетчеру.4. Клиент посылает запрос.5. Прослушивающий процесс определяет,какой диспетчер наименее загружен,и возвращает его адрес клиенту.6. Клиент отсоединяется от прослушивающегопроцесса и соединяется с диспетчером.7. Диспетчер помещает клиентский запросв очередь запросов,8. Разделяемый сервер извлекает запрос из очереди,соединяется с базой данных, обрабатывает запроси помещает результат в очередь ответов.9. Диспетчер извлекает результатиз очереди и возвращает его клиенту.

Г9

Разделяемыйсервер

КлиентСервер

базы данных

Рис. 11.1. Последовательность обслуживания запроса при использованиимногопоточного сервера

Зачем нужен многопоточный сервер?Приходилось ли вам вводить информацию в компьютер непрерывно в те-чение многих часов? Про меня этого не скажешь. Я часто останавлива-юсь, чтобы подумать над следующим действием. Заполняя форму дляотправки заказа через Интернет, я прерываюсь, чтобы достать кредит-ную карту и посмотреть ее номер. Более того, я знаю людей, которыеоставляют свои компьютеры соединенными с базой данных в течение

Page 317: Oracle 8i Networking 101

Поддержка больших сетей 299

всего рабочего дня. Иногда они даже забывают выйти из системы, уходядомой, и соединения сохраняются всю ночь — если, конечно, их процес-сы не уничтожаются при запуске ночного пакетного задания.

Как было показано выше, при использовании Net8 создание соедине-ний с сервером выполняется в несколько шагов. Каждый шаг занимаетопределенное время и требует определенного количества ресурсовкомпьютера. Какими бы ресурсами ни обладала ваша машина, при созда-нии и поддержании все большего числа соединений эти ресурсы в ка-кой-то момент исчерпаются и в обслуживании следующего запроса будетотказано.

Теперь предположим, что вы отвечаете за работу Интернет-сайта.Через ваш сайт ежедневно делаются тысячи заказов. Каждый заказ сохра-няется в базе данных Oracle. Если полагаться на индивидуальные, выде-ленные соединения Net8, то велика вероятность, что рано или поздномашина исчерпает свои ресурсы и перестанет принимать заказы покупа-телей. Я подозреваю, что руководство компании не слишком обрадуется,узнав, что сайт перестал обслуживать посетителей, желающих сделать по-купку! Как же решить эту проблему? Думаю, что вы легко найдете ответ,учитывая обсуждаемую здесь тему. Конечно, нужно использовать много-поточный сервер.

MTS позволяет разделять соединения Net8 между несколькими клиен-тами, обеспечивая поддержку большего числа пользователей с меньшимизатратами ресурсов в расчете на одно соединение. Давайте подробно рас-смотрим, как это происходит. При запуске базы данных создается опреде-ленное количество диспетчеров, соединенных через виртуальные каналыс пулом разделяемых серверов. Диспетчеры принимают клиентские за-просы и помещают их в общую очередь. Как только какой-либо разделяе-мый сервер освобождается, он забирает следующий запрос из очереди.Архитектура многопоточного сервера показана на рис. 11.2. Как видите,пять клиентов обслуживаются всего двумя диспетчерами. Заметьте так-же, что с базой данных соединены только три процесса разделяемых сер-веров, которые обеспечивают фактическое выполнение запросов.

За счет того, что процессы разделяемых серверов запускаются толькоодин раз, исключаются дополнительные накладные расходы на созданиеклиентских соединений. Каждый клиент использует меньше памяти,поэтому требования к ее объему снижаются. Управление процессамитакже требует меньших затрат. В результате появляется возможностьодновременно поддерживать большее число пользователей.

ВниманиеДобавление MTS в систему с небольшим числомсоединений (менее 200) или низкой активностью можетухудшить производительность. MTS разрабатывалсядля более эффективного использования ресурсовв системах с большой нагрузкой.

Page 318: Oracle 8i Networking 101

300 Глава 11

Клиент 1

Клиент 2

Клиент 3

Клиент 4

Клиент 5

Предустановленныесоединения

Рис. 11.2. Архитектура многопоточного сервера

При использовании MTS пользовательская глобальная область (UserGlobal Area, UGA), входящая в состав глобальной области процесса(Process Global Area, PGA), перемещается в разделяемый пул. UGA содер-жит информацию о пользовательских сеансах, области сортировки и ча-стные области SQL. Самым большим компонентом UGA обычно являетсяобласть сортировки, размер которой задается параметром sort_area_sizeфайла init.ora. Без MTS каждый клиентский процесс резервирует памятьпод область сортировки независимо от того, будет ли он впоследствиивыполнять сортировку. В режиме MTS область сортировки создается какчасть разделяемого или большого пула и может использоваться всемипроцессами. Клиентам не нужно резервировать память под собственныеобласти сортировки.

С другой стороны, при перемещении UGA в разделяемый пул необхо-димо увеличивать его размер, чтобы обеспечить выполнение всех опера-ций сортировки. Но не беспокойтесь. Вам придется увеличиватьразделяемый пул не на ту величину, о которой вы могли подумать (коли-чество клиентов, умноженное на размер области сортировки). Переме-щение сортировок в SGA сервера повышает общую эффективностьиспользования памяти. Можно увеличить разделяемую область SQL на ве-личину, равную половине общего размера SGA. Это хорошее начальноезначение, если вы первый раз переходите на MTS. Однако корпорацияOracle, введя в OracleS параметр large_pool_size, рекомендовала исполь-зовать для UGA большой пул вместо разделяемого. Приведенные ниже

Page 319: Oracle 8i Networking 101

Поддержка больших сетей 301

запросы помогут определить правильный размер пула или подскажут,нужно ли его увеличить, если вы уже установили значение large_pool_size.

С_| select sum(VALUE) | 'Bytes' "Total memory for all sessions"from V$SESSTAT, V$STATNAME

where upper(NAME) = 'SESSION UGA MEMORY'and VSSESSTAT. STATISTICS = V$STATNAME.STATISTIC»;

select sum(VALUE) || 'Bytes' "Total Max. memory for all sessions"from VSSESSTAT, V$STATNAME

where upper(NAME) = 'SESSION UGA MEMORY MAX'and V$SESSTAT. STATISTIC» = V$STATNAME. STATISTIC»;

Результаты будут примерно следующими:

Q Total memory for all sessions

157125 Bytes

Total Max. memory for all sessions

417381 Bytes

Результат первого запроса показывает, что текущий размер памяти,выделенной всем сеансам, равен 157 125 байтам. Согласно результату вто-рого запроса, сумма максимальных размеров памяти для всех сеансов рав-на 417 381 байту.

Чтобы определить, насколько нужно увеличить большой или разделя-емый пул, можно использовать результат любого из этих запросов. Пер-вая величина обычно служит лучшей оценкой. Исключение составляютситуации, в которых высока вероятность того, что почти всем сеансамодновременно потребуется максимум выделенной памяти. Однако выдолжны иметь в виду, что если все сеансы соединены с процессами выде-ленных серверов, то эта память является частью UGA; если же сеансы со-единены с процессами разделяемых серверов, то эта память входит всостав разделяемого пула или SGA.

МНОГОПОТОЧНОГ© лДля конфигурирования MTS доступно много параметров. Они помещают-ся в файл init.ora той базы данных, совместно с которой предполагаетсяиспользовать MTS. Чтобы задействовать MTS, необходимо указать какминимум параметр mts_dispatchers. Он имеет следующий синтаксис:

Q mts_dispatchers = "(description=(address=(protpcol=<npoToi«xn>)(<host>)(<port>)(<number of.dispatchers>)(<number of connections>))"

Page 320: Oracle 8i Networking 101

302 Глава 11

Ключевые слова description и address можно опустить, атрибут proto-col является обязательным. В таблице 11.1 перечислены все возможныеатрибуты mts_dispatchers, за исключением тех, которые зависят от испо-льзуемого протокола (например, хост и порт TCP/IP). Обратите внима-ние, что строка атрибутов mts_dispatchers заключается в двойныекавычки, а каждый атрибут окружается скобками. Пример записи в файлеinit.ora приведен ниже.

mts_dispatchers="(address=(protocol=TCP)(host=MARLENES-PC)(port=5001))(dispatchers=2)(connections=10)"

Таблица 11.1.Атрибуты параметра mts_dispatchers

Атрибут Описание

description

address

protocol

connections (conn, con)

dispatchers

listener

multiplex

Описание конечной точки сети, прослушиваемой диспетчерами.

Сетевой адрес конечной точки, прослушиваемой диспетчерами.

Сетевой протокол, для которого диспетчер генерируетконечнуюточку прослушивания,

Максимальное число сетевых соединений, допускаемоедля каждою диспетчера.

Начальное количество запускаемых диспетчеров(по умолчанию — 1).

Псевдоним прослушивающего(их) процесса(ов), в котором(ых)процесс pmon регистрирует информацию о диспетчерах.Указывайте это значение только в том случае, когда локальныйпрослушивающий процесс использует нестандартный портили протокол или когда прослушивающий процесс расположенна другом узле.

Разрешает концентрацию соединений, реализуемую менедже-ром соединений Oracle. Возможные значения:1 | ON | YES | TRUE | BOTH - концентрация разрешенакак для входящих, так и исходящих соединений.IN - концентрация разрешена только для входящих клиентскихсоединений.OUT — концентрация разрешена только для исходящихсоединений с клиентами.О | NO | OFF | FALSE - концентрация запрещена какдля входящих, так и для исходящих соединений.

Page 321: Oracle 8i Networking 101

Поддержка больших сетей 303

Таблица 11.1 (продолжение)Атрибуты параметра mts_dispatchers •<

Атрибут Описание '

pool Разрешает объединение соединений, реализуемое менеджеромсоединений Oracle. Возможные значения:<число> — объединение разрешено как для входящих, так иисходящих соединений. Число указывает интервал тайм-аутав тиках (см. атрибут ticks).ON | YES | TRUE | BOTH — объединение разрешено как длявходящих, так и исходящих соединений. Интервал тайм-аутапо умолчанию —10 тиков,IN — объединение разрешено только для входящих соединений.Для IN можно явно задать интервал тайм-аута (например,IN=20). Если число равно 0 или 1, то используется значениепо умолчанию (10 тиков).OUT—объединение разрешено только для исходящих соедине-ний. Для OUT можно явно задать интервал тайм-аута (напри-мер, OUT=20). Если число равно 0 или 1, то используетсязначение по умолчанию (10 тиков),NO | OFF | FALSE — объединение запрещено как для входящих,так и исходящих соединений.

service Имена сетевых служб, регистрируемые диспетчерамив прослушивающем процессе (по умолчанию используютсязначения, указанные для параметра servicejiames файлаinit.ora). ,

а "• ' .-.••• - -session (sess, ses) Максимальное число сетевых сеансов, допускаемое

для каждого диспетчера,

ticks Длительность сетевого тика (в секундах). Будучи умноженнойна значение параметра pool, дает интервал тайм-аутадля соединения. По умолчанию —15 секунд. Для быстрых сетейрекомендуется значение около 1 секунды, для медленных —около 3-4 секунд.

В таблице 11.2 перечислены другие параметры MTS, которые можновключать в файл init.ora.

Таблица 11.2.Прочие параметры MTS, включаемые в файл init.ora

Параметр Описание

mts_max_dispatchers Максимальное количество диспетчеров

mts_servers Количество первоначально запускаемых разделяемых серверов

mts_max_servers Максимальное количество разделяемых серверов

mts_service SID базы данных

mts_listener_address Адрес прослушивающего процесса TNS

Page 322: Oracle 8i Networking 101

304 Глава 11

Чтобы задействовать MTS, необходимо выполнить следующиедействия:

1. Остановить базу данных.

2. Модифицировать файл init.ora соответствующей базы данных,включив в него следующие параметры:

(<количество диспетчеров>)(<количество соединений>)"

т18_тах_{Ц8ра1сЬег8=<максимальное количестводиспетчеров>

т18_8егуег8=<количество запускаемых разделяемых серверов>

mts_max_servers=<MaKCHManbHoe количество разделяемыхсерверов>

mts_service=<SID или значение, указанное для параметраservice_names в файле init.ora>

mts_listener_address=<aflpec прослушивающегопроцесса TNS>

3. Перезапустить базу данных.Допустим, вам нужно настроить многопоточный сервер на машине с

именем MARLENES-PC, используя порт, отличный от стандартного (1521или 1526). Первоначально вы хотите запустить и сделать доступными двадиспетчера, ограничив их максимальное количество десятью. Начальноеколичество запускаемых серверов — два, максимальное — четыре. Базаданных, с которой будут устанавливаться соединения, называется SKDL,она расположена на хосте NELSON-PC и прослушивает порт 1521. Для та-кой конфигурации записи init.ora будут выглядеть следующим образом:

mts_dispatchers="(address=(protocol=TCP)(host=MARLENES-PC)(port=5001))(dispatchers=2)"

mts_max_dispatche rs=10

mts_servers=2

mts_max_servers=4mts_service=SKDL

mts_listener_address="(address=(protocol=TCP)(host=NELSON-PC)(port=1521))"

Как видите, все довольно просто. Впрочем, остается один вопрос: какузнать, сколько диспетчеров необходимо в реальной ситуации?

Определение количества диспетчеровКак вы только что видели, количество диспетчеров, запускаемых вместес экземпляром, определяется значением атрибута dispatchers. Этоминимальное количество диспетчеров, когда-либо запускаемых для дан-ного экземпляра. Следовательно, если запустить с самого начала слиш-ком много диспетчеров, то ресурсы будут расходоваться неэффективно,поскольку лишние диспетчеры нельзя удалить без останова экземпляра.С другой стороны, если первоначально запущенных диспетчеров окажет-ся недостаточно для обслуживания поступающих запросов, то вам прак-тически сразу же придется запускать дополнительные, что неизбежно

Page 323: Oracle 8i Networking 101

Поддержка больших сетей 305

скажется на производительности. Для увеличения количества диспетче-ров необходимо явно изменить значение соответствующего параметрас помощью команды alter system. Увеличивать количество диспетчеровможно вплоть до той величины, которая задана параметром mts_max_dispatchers.

Чтобы правильно выбрать значение атрибута dispatchers, необходи-мо принять во внимание следующее:

• Ограничение операционной системы на количество соединений,устанавливаемых с каждым процессом

• Требуемую производительность базы данных• Ожидаемое количество соединений по каждому сетевому протоколу

ВниманиеКорпорация Oracle настоятельно рекомендует,чтобы в среде Windows NT количество соединенийс одним диспетчером не превышало 1000. Это намногобольше, чем было в предыдущих версиях.

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

Q количество диспетчеров = сеЩмаксимальное количество параллельных сеансов /количество соединений на один диспетчер)

Обозначение ceil показывает, что вы должны взять частное от деле-ния ожидаемого максимального количества параллельных сеансов на ко-личество соединений с одним диспетчером и округлить его в большуюсторону. Допустим, что вы ожидаете до 5000 параллельных сеансов с ис-пользованием протокола TCP/IP. Каждый процесс может поддерживатьдо 1500 соединений TCP/IP. Предположим также, что у вас будет 3000 па-раллельных сеансов с использованием SPX, и каждый процесс может под-держивать до 1000 соединений SPX. Используя приведенную вышеформулу, получаем

Q количество диспетчеров для TCP/IP = ceil(5000/1500) = ceil(3.33333) = 4

Для протокола SPX аналогичный расчет даст значение 3. Такимобразом, в файле init.ora нужно указать следующее:

Г| mts_dispatchers="(protocol=TCP)(dispatchers=4)(connections=1500)"mts_dispatchers="(protocol=SPX)(dispatchers=3)(connections=1000)"

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

11 Зак. 726

Page 324: Oracle 8i Networking 101

306 Глава 11

можно прочитать в главе 21 руководства OrackSi Designing and Tuning forPerformance, Release 2 (8.1.6), входящего в пакет электронной документацииOracle.

При указании адресов диспетчеров существуют два варианта. Можноназначить всем диспетчерам один IP-адрес, задав его в параметреmts_dispatchers, как показано ниже,

Q mts_dispatchers="(address=(protocol=TCP)(host=198.254.38.17))(dispatchers=4)"

, или назначить каждому диспетчеру (или группе диспетчеров) отдельныйпорт. При этом необходимо использовать соседние номера портов. Вотпример, поясняющий сказанное:

Q mts_dispatcfiers="(address=(protocol=TCP)(host=198.254.38.17)(port=6100))dispatchers=2)"mts_dispatchers="(address=(protocol=TCP)(host=198.254.38.17)(port=6101))dispatchers=1)"

Если вы сконфигурировали MTS, то по умолчанию все клиентскиезапросы будут направляться к одному или более диспетчерам. Теперь до-пустим, что какому-то клиенту нужно выполнить непрерывную последо-вательность вставок и обновлений, как при пакетной загрузке данных.Очевидно, что в этом случае нет смысла соединяться с базой данных че-рез MTS. Если вы хотите, чтобы определенный клиент всегда соединялсяс базой данных через процесс выделенного сервера, нужно модифициро-вать файл sqlnet.ora этого клиента, установив следующий параметр:

Q use_dedicated_server=ON

Это приведет к автоматическому добавлению параметра (server=DEDICATED) в раздел connect_data дескриптора соединения, используе-мого клиентом. Нужно заметить, что установка use_dedicated_server=ON замещает любые другие установки server=, которые могли быть вы-полнены для данного клиента. Вы также можете отредактировать файлtnsnames.ora, добавив (server=DEDICATED) в раздел connect_data. Что-бы клиент всегда использовал диспетчер, следует поместить в разделconnect_data параметр (server=SHARED).

Разрешение конфликтов, вызванныхиспользованием MTS

Задействовав MTS, вы можете заметить некоторое снижение производи-тельности при использовании В-файлов (Bfiles), распараллеливания, рас-параллеливания между узлами или хэш-соединений (hash joins). Дело втом, что в перечисленных случаях миграция сеанса на другой разделяе-мый сервер может оказаться невозможной, поскольку в UGA сохраняетсяне вся информация о пользовательском состоянии. Часть этой информа-ции иногда помещается в PGA. Вспомните, что запросы одного пользова-теля, выданные в ходе одного сеанса, могут обрабатываться более чемодним разделяемым сервером. Та часть информации о состоянии, кото-рая сохраняется в PGA вместо UGA, становится недоступной для

Page 325: Oracle 8i Networking 101

Поддержка больших сетей 307

разделяемых серверов, в результате чего сеанс может остаться привязан-ным к одному разделяемому серверу. Короче говоря, если пользовательиспользует любую из перечисленных выше возможностей и при этом вы-полняет множественные запросы, то весьма вероятно, что он не сможетвоспользоваться преимуществами MTS, а обслуживающий его разделяе-мый сервер станет недоступен для других пользователей.

Хотя отдельно взятый пользователь может и не испытывать проблемс производительностью, проблемы могут возникнуть у других пользовате-лей, поскольку один из разделяемых серверов больше не участвует впараллельной обработке. Следовательно, если ваши пользователи приме-няют В-файлы, распараллеливание, распараллеливание между узламии/или хэш-соединения, то возможно, что вам придется конфигурироватьдополнительные разделяемые серверы для сохранения возможности па-раллельной обработки или соединять пользователей с базой данных че-рез выделенные серверы.

Но как выявить проблемы с производительностью? В Oracle есть не-сколько представлений, которые показывают различную статистику, от-носящуюся к MTS. Они перечислены в таблице 11.3. Далее описанокаждое из этих представлений и показано, как их использовать для опре-деления производительности многопоточного сервера,

Таблица 11.3.Представления V$, используемые для разрешения конфликтов

Представление Описание

V$DISPATCHER Дает общую информацию о диспетчере.

V$DlSPATCHER_RATE Показывает текущие, средние и максимальные показатели.

V$QUEUE Показывает, сколько времени (в сотых долях секунды) запросыи ответы находились в очередях, ожидая обработки.

V$SHARED_SERVER Показывает текущее количество разделяемых серверов.

V$MTS Дает сводную информацию по соединениям MTS.

Представление V$DISPATCHERПредставление V$DISPATCHER дает общую информацию о процессахдиспетчеров. Столбцы этого представления и их краткие описания при-ведены в таблице 11.4.

Как видите, представление V$DISPATCHER позволяет получитьдовольно много полезной информации о каждом диспетчере. Помощьв выявлении конфликтов могут оказать столбцы BUSY и IDLE. Для ихпросмотра необходимо наличие системной привилегии select any table.Такой привилегией обладают учетные записи SYS и SYSTEM.

Статистику необходимо записывать во время пиковых нагрузок. Соби-рая статистику на протяжении всего времени функционирования базыданных, а не только в периоды ее активного использования, получитьточное представление о производительности диспетчера будет невоз-можно. Определите среднее время занятости диспетчеров за период

I I *

Page 326: Oracle 8i Networking 101

308 Глава 11

рабочей нагрузки. Если какой-либо из них занят более 50% времени, по-думайте об увеличении количества диспетчеров для соответствующегопротокола.

Таблица 11.4.Представление V$DISPATCHER

Столбец Описание

NAME Имя процесса диспетчера

NETWORK Сетевой адрес диспетчера

PADDR Адрес процесса

STATUS Состояние диспетчера Возможные значения:WAIT — ожиданиеSEND — отправка сообщенияRECEIVE — прием сообщенияCONNECT — установление соединенияDISCONNECT — обработка запроса на отсоединениеBREAK — обработка прерыванияTERMINATE — завершение работыACCEPT — прием соединений (дополнительная информация недоступна)REFUSE — отклонение соединений (дополнительная информация недоступна)

ACCEPT Готов ли диспетчер принимать новые соединенияВозможные значения: YES или N0

MESSAGES Количество сообщений, обработанных диспетчером

BYTES Размер сообщений (в байтах), обработанных диспетчером

BREAKS Количество прерываний, произошедших в ходе данного соединения

OWNED Количество каналов, принадлежащих диспетчеру

CREATED Количество каналов, созданных диспетчером

IDLE Общее время простоя диспетчера (в сотых долях секунды)

BUSY Общее время занятости диспетчера (в сотых долях секунды)

LISTENER Последний номер ошибки Oracle, полученный диспетчеромот прослушивающего процесса

CONFJNDX Индекс с отсчетом от нуля для конфигурации mts_dispatchers,используемой диспетчером

Представление V$DISPATCHER_RATEПредставление V$DISPATCHER_RATE дает подробную статистику пооперациям, выполняемым диспетчерами. Это представление содержиттекущие (префикс "cur_"), средние (префикс "avg_") и максимальные(префикс "тах_") значения нескольких параметров, позволяющих оце-нить работу диспетчеров. Текущие значения — это статистика для текуще-го сеанса. Средние значения, как следует из названия, представляютсобой статистику, усредненную по всему периоду регистрации, тогда как

Page 327: Oracle 8i Networking 101

Поддержка больших сетей 309

максимальные значения — это наивысшие показатели, достигнутые с мо-мента начала регистрации. Состав представления V$DISPATCHER_RATEприведен в таблице 11.5.

Таблица 11.5.Представление V$DISPATCHER_R ATE

Столбец Описание

NAME

PADDR

CUR_LOOP_RATE

CUR_EVENT_RATE

CUR_EVENTS_PER_LOOP

CUR_MSG_RATE

CUR_SVR_BUF_RATE

CUR_SVR_BYTE_RATE

CUR_SVR_BYTE_PER_BUF

CUR_CLT_BUF_RATE

CUR_CLT_BYTE_RATE

CUR_CLT_BYTE_PER_BUF

CUR BUF RATE

Имя процесса диспетчера.

Адрес процесса диспетчера.

Частота, с которой диспетчер повторял циклдиспетчеризации в течение последнего периода TTL_LOOPS(в итерациях/5СА1_Е_ШОР8).

Скорость, с которой диспетчер обрабатывал событиядиспетчера в течение последнего периода TTL_LOOPS(в событиях/8СА1£_1.00Р8). К событиям диспетчера отно-сятся сетевые события и запросы к разделяемому серверу.

Среднее число событий, обрабатывавшихся диспетчеромв каждом цикле диспетчеризации в течение последнегопериода TTL_LOOPS (в событиях/итерацию).

Скорость, с которой диспетчер ретранслировал сообщениямежду клиентами и разделяемыми серверами в течениепоследнего периода TTL_MSG (в сообщениях/ЗСА1Е_М8С).

Скорость, с которой диспетчер передавал буферы разделя-емому серверу в течение последнего периода TTL SVR BUF(в 6y4>epax/SCALE_SVR_BUF).

Скорость, с которой диспетчер ретранслировал данныеразделяемым серверам в течение последнего периодаTTL_SVR_BUF (в 6aUTax/SCALE_SVR_BUF).

Среднее количество данных в буферах, передававшихсядиспетчером разделяемым серверам в течение последнегопериода TTL_SVR_BUF (в байтах/буфер).

Скорость, с которой диспетчер передавал буферы клиентамв течение последнего периода TTL CLT BUF(в буферах/8СА1Е_Си_ВиР).

Скорость, с которой диспетчер ретранслировал данныеклиентам в течение последнего периода TTL CLT_BUF(в байтах/8СА1Е_С1.Т_ВиР).

Среднее количество данных в буферах, передававшихсядиспетчером клиентам в течение последнего периодаTTL_CLT_BUF (в байтах/буфер).

Скорость, с которой диспетчер передавал буферы клиентамили разделяемым серверам в течение последнего периодаTTL_BUF (в буферах/8СА1Е_ВиР).

Page 328: Oracle 8i Networking 101

310 Глава 11

Таблица 11.5 (продолжение)Представление V$DISPATCHER_R ATE

Столбец Описание

CUR BYTE RATE

CUR BYTE PER BUF

CUR IN CONNECT RATE

CUR OUT CONNECT RATE

CUR RECONNECT RATE

MAX LOOP RATE

MAX EVENT RATE

MAX EVENTS PER LOOP

MAX MSG RATE

MAX SVR BUF RATE

MAX_SVR_BYTE_RATE

Скорость, с которой диспетчер ретранслировал данныеклиентам или разделяемым серверам в течение последнегопериода TTL.BUF (в байтах/8СА1Е_виР).

Среднее количество данных в буферах, передававшихсядиспетчером клиентам или разделяемым серверамв течение последнего периода TTL_BUF (в байтах/буфер).

Частота, с которой диспетчер принимал входящиеклиентские соединения в течение последнего периодаTTLJN.CONNECT (в соединениях/8СА1Е_1М_ШМЕСТ).

Частота, с которой диспетчер устанавливал исходящие сое-динения в течение последнего периода TTL OUT CONNECT(BCoeflHHeHHflx/SCALE_OUT_CONNECT).

При объединении соединений — частота повторныхсоединений клиентов с диспетчером в течение последнегопериода TTL_RECONNECT(в повторных coeflMHef x/SCALE_RECONNECT).

Максимальная частота, с которой диспетчер когда-либо по-вторял цикл диспетчеризации (в HTepa iax/SCALE_LOOPS).Определяется за все время жизни диспетчера, исключаяпоследний период TTL_LOOPS.

Максимальная скорость, с которой диспетчер когда-либообрабатывал события диспетчера(в событиях/SCALEJ-OOPS). Определяется за все времяжизни диспетчера, исключая последний период TTL_LOOPS.

Максимальное число событий, когда-либо обработанныхдиспетчером в одном цикле диспетчеризации(в событиях/итерацию). Определяется за все время жизнидиспетчера, исключая последний период TTL_LOOPS.

Максимальная скорость, с которой диспетчер когда-либоретранслировал сообщения между клиентами и разделяе-мыми серверами (в coo6iueHHflx/SCALE_MSG).Определяется за все время жизни диспетчера, исключаяпоследний период TTL_MSG.

Максимальная скорость, с которой диспетчер когда-либопередавал буферы разделяемому серверу(в бyфepax/SCALE_SVR_BUF). Определяется за всевремя жизни диспетчера, исключая последний периодTTL_SVR_BUF.

Максимальная скорость, с которой диспетчер когда-либоретранслировал данные разделяемым серверам(в бaйтax/SCALE_SVR_BUF). Определяется за все время жиз-ни диспетчера, исключая последний период TTL_SVR_BUF.

Page 329: Oracle 8i Networking 101

Поддержка больших сетей 311

Таблица 11.5 (продолжение)Представление V$DISPATCHER_RATE

Столбец Описание

MAX SVR BYTE PER BUF

MAX CLT BUF RATE

MAX CLT BYTE RATE

MAX CLT BYTE PER BUF

MAX BUF RATE

MAX BYTE RATE

MAX BYTE PER BUF

MAX IN CONNECT RATE

MAX OUT CONNECT RATE

MAX RECONNECT RATE

Максимальное количество данных, когда-либо переданноедиспетчером разделяемому серверу в одном буфере(в байтах/буфер). Определяется за все время жизнидиспетчера.

Максимальная скорость, с которой диспетчер когда-либопередавал буферы клиентам (в бyфepax/SCALE_CLT_BUF).Определяется за все время жизни диспетчера, исключаяпоследний период TTL_CLT_BUF.

Максимальная скорость, с которой диспетчер когда-либоретранслировал данные клиентам (в бай-Tax/SCALE_CLT_BUF). Определяется за все время жизнидиспетчера, исключая последний период TTL_CLT_BUF.

Максимальное количество данных, когда-либо переданноедиспетчером клиенту в одном буфере (в байтах/буфер).Определяется за все время жизни диспетчера.

Максимальная скорость, с которой диспетчер когда-либопередавал буферы клиентам или разделяемым серверам(в буферах/8СА1£_виР). Определяется за все время жизнидиспетчера, исключая последний период TTL.BUF.

Максимальная скорость, с которой диспетчер когда-либоретранслировал данные клиентам или разделяемымсерверам (в 6anTax/SCALE_BUF). Определяется за всевремя жизни диспетчера, исключая последнийпериод TTL_BUF.

Максимальное количество данных, когда-либо переданноедиспетчером клиенту или разделяемому серверу в одномбуфере (в байтах/буфер). Определяется за все времяжизни диспетчера.

Максимальная частота, с которой диспетчер когда-либопринимал входящие клиентские соединения(в coeflKHeHHflx/SCALE_IN_CONNECT). Определяетсяза все время жизни диспетчера, исключая последнийпериод TTL_IN_CONNECT.

Максимальная частота, с которой диспетчер когда-либоустанавливал исходящие соединения(в coeflHH6HHflx/SCALE_OUT_CONNECT). Определяетсяза все время жизни диспетчера, исключая последнийпериод TTL_OUT_CONNECT.

При объединении соединений — максимальная частотаповторного соединения клиентов с диспетчером(в повторных coeflHHeHrax/SCALE_RECONNECT).Определяется за все время жизни диспетчера, исключаяпоследний период TTL_RECONNECT.

Page 330: Oracle 8i Networking 101

312 Глава 11

Таблица 11.5 (продолжение)Представление V$DISPATCHER RATE

Столбец Описание

AVG LOOP RATE

AVG EVENT RATE

AVG EVENTS PER LOOP

AVG MSG RATE

AVG SVR BUF RATE

AVG SVR BYTE RATE

AVG SVR BYTE PER BUF

AVG CLT BUF RATE

AVG CLT BYTE RATE

AVG CLT BYTE PER BUF

Средняя частота, с которой диспетчер повторял циклдиспетчеризации (в MTepaunflx/SCALE_LOOPS).Определяется за все время жизни диспетчера, исключаяпоследний период TTL_LOOPS.

Средняя скорость, с которой диспетчер обрабатывалсобытия диспетчера (в co6biTHflx/SCALE_LOOPS).Определяется за все время жизни диспетчера, исключаяпоследний период TTL_LOOPS.

Среднее число событий, обрабатывавшихся диспетчеромв одном цикле диспетчеризации (в событиях/итерацию).Определяется за все время жизни диспетчера, исключаяпоследний период TTL_LOOPS.

Средняя скорость, с которой диспетчер ретранслировалсообщения между клиентами и разделяемыми серверами(в сообщениях/5(ЖЕ_М36). Определяется за все времяжизни диспетчера, исключая последний период TTL_MSG.

Средняя скорость, с которой диспетчер передавал буферыразделяемому серверу (в бyфepax/SCALE_SVR_BUF).Определяется за все время жизни диспетчера, исключаяпоследний период TTL_SVR_BUF.

Средняя скорость, с которой диспетчер ретранслировалданные разделяемым серверам (в бaйтax/SCALE_SVR_BUF).Определяется за все время жизни диспетчера, исключаяпоследний период TTL_SVR_BUF.

Среднее количество данных в буферах, передававшихсядиспетчером разделяемым серверам (в байтах/буфер).Определяется за все время жизни диспетчера, исключаяпоследний период TTL_SVR_BUF.

Средняя скорость, с которой диспетчер передавал буферыклиентам (в бyфepax/SCALE_CLT_BUF). Определяется за всевремя жизни диспетчера, исключая последний периодTTL.CLT.BUF.

Средняя скорость, с которой диспетчер ретранслировалданные клиентам (в бaйтax/SCALE_CLT_BUF). Определяетсяза все время жизни диспетчера, исключая последнийпериод TTL_CLT_BUF.

Максимальное количество данных в буферах,передававшихся диспетчером клиентам (в байтах/буфер).Определяется за все время жизни диспетчера, исключаяпоследний период TTL_CLT_BUF.

Page 331: Oracle 8i Networking 101

Поддержка больших сетей 313

Таблица 11.5 (продолжение)Представление V$DISPATCHER_R ATE

Столбец Описание

AVG BUF RATE

AVG BYTE RATE

AVG BYTE PER BUF

AVG IN CONNECT RATE

AVG OUT CONNECT RATE

AVG RECONNECT RATE

TTL LOOPS

TTLMSG

TTL SVR BUF

TTL CLT BUF

TTL BUF

Средняя скорость, с которой диспетчер передавал буферыклиентам или разделяемым серверам(в 6y4>epax/SCALE_BUF). Определяется за все время жизнидиспетчера, исключая последний период TTL_BUF.

Средняя скорость, с которой диспетчер ретранслировалданные клиентам или разделяемым серверам(в бaйтax/SCALE_BUF). Определяется за все время жизнидиспетчера, исключая последний период TTL_BUF.

Среднее количество данных в буферах, передававшихсядиспетчером клиентам или разделяемым серверам(в байтах/буфер). Определяется за все время жизнидиспетчера.

Средняя частота, с которой диспетчер принималвходящие клиентские соединения(в coeflHHeHHflx/SCALE_IN_CONNECT). Определяетсяза все время жизни диспетчера, исключая последнийпериод TTLJN_CONNECT.

Средняя частота, с которой диспетчер устанавливал исходя-щие соединения (в coeflMHeHHflx/SCALE_OUT_CONNECT).Определяется за все время жизни диспетчера, исключаяпоследний период TTL_OUT_CONNECT.

При объединении соединений — средняя частотаповторного соединения клиентов с диспетчером(в повторных coeflMHeHHflx/SCALE_RECONNECT).Определяется за все время жизни диспетчера, исключаяпоследний период TTL_RECONNECT.

Период накопления статистики по циклам(в сотых долях секунды).По умолчанию — 10 минут.

Период накопления статистики по сообщениям(в сотых долях секунды).По умолчанию — 10 секунд.

Период накопления статистики по буферам серверов(в сотых долях секунды).По умолчанию — 1 секунда.

Период накопления статистики по буферам клиентов(в сотых долях секунды).По умолчанию — 1 секунда.

Период накопления статистики по буферам клиентови серверов (в сотых долях секунды).По умолчанию — 1 секунда.

Page 332: Oracle 8i Networking 101

314 Глава 11

Таблица 11.5 (продолжение)Представление V$DISPATCHER_R ATE

Столбец Описание

TTLJN.CONNECT

TtL.OUT.CONNECT

TTL_RECONNECT

SCALE_LOOPS

SCALE.MSG

SCALE_SVR_BUF

SCALE_CLT_BUF

SCALE.BUF

SCALE_IN_CONNECT

SCALE_OUT_CONNECT

SCALE RECONNECT

Период накопления статистики по входящим соединениям(в сотых долях секунды).По умолчанию —10 минут.

Период накопления статистики по исходящим соединениям(в сотых долях секунды).По умолчанию —10 минут.

Период накопления статистики по повторным соединениям(в сотых долях секунды).По умолчанию —10 минут.

Масштаб для статистики по циклам (в сотых долях секунды).По умолчанию — 1 минута.

Масштаб для статистики по сообщениям(в сотых долях секунды).По умолчанию — 1 секунда.

Масштаб для статистики по буферам серверов(в сотых долях секунды).По умолчанию —1/10 секунды.

Масштаб для статистики по буферам клиентов(в сотых долях секунды).По умолчанию —1/10 секунды.

Масштаб для статистики по буферам клиентов и серверов(в сотых долях секунды).По умолчанию —1/10 секунды.

Масштаб для статистики по входящим соединениям(в сотых долях секунды).По умолчанию — 1 минута.

Масштаб для статистики по исходящим соединениям(е сотых долях секунды).По умолчанию — 1 минута.

Масштаб для статистики по повторным соединениям(в сотых долях секунды).По умолчанию — 1 минута.

Держу пари, что теперь вы хотели бы узнать, как пользоваться этимпредставлением. Прежде всего я бы посоветовала собрать статистику впериоды как высокой, так и низкой активности системы, чтобы получитьпредставление о величине нагрузки в разные моменты времени. Когдавы освоите работу с этим представлением и поймете общий характернагрузки, можно будет переходить к конкретным действиям. Если вы нерасполагаете несколькими днями на сбор статистики, смоделируйтерабочую нагрузку, а затем периодически опрашивайте представлениеV$DISPATCHER_RATE, чтобы получить необходимые данные.

Page 333: Oracle 8i Networking 101

Поддержка больших сетей 315

Чтобы определить производительность диспетчера, выполните за-прос к представлению и сравните текущие значения с максимальными.Близки ли текущие значения к средним, ниже ли они максимальных? По-зволяет ли пропускная способность системы обеспечить адекватные вре-мена отклика? Если да, то ваша среда MTS, скорее всего, настроена почтиоптимально.

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

Представление V$QUEUEПри определении производительности диспетчера может оказаться по-лезным третье представление, V$QUEUE. Его столбцы перечислены втаблице 11.6.

Таблица 11.6.Представление V$QUEUE

СтолбецPADDR

TYPE

QUEUED

WAIT

Описание

Адрес процесса, которому принадлежит очередь.

Тип очереди: COMMON (обрабатывается серверами) или DISPATCHER.

Количество элементов в очереди.

Общее время ожидания (в сотых долях секунды) для всех ответов, когда-либопомещавшихся в очередь. Деленное на TOTALQ, дает среднее время ожиданияна один элемент.

TOTALQ Общее количество ответов, когда-либо помещавшихся в очередь.

Во время работы приложения можно время от времени просматри-вать состояние очередей ответов, принадлежащих процессам диспетче-ров. Для этого пригодно следующее представление, приведенное вглаве 21 руководства OracleSi Designing and Tuning for Performance, Release 2:

Q select CONF_INDX INDEX,decode (sum(TOTALQ), 0, 'NO RESPONSES', sum(WAIT)/sum(TOTALQ) || ' HUNDREDTHSOF SECONDS') "AVERAGE WAIT TIME PER RESPONSE"

from VSQUEUE Q, V$DISPATCHER Dwhere O.TYPE = 'DISPATCHER'

and Q.PADDR = D.PADDRgroup by CONF_INDX;

Этот запрос возвращает среднее время, в течение которого ответынаходились в очереди перед отправкой пользовательскому процессу.Рассмотрим пример выходных данных:

Q INDEX AVERAGE WAIT TIME PER RESPONSE

0 .2145041 HUNDREDTHS OF SECONDS1 .1372035 HUNDREDTHS OF SECONDS2 NO RESPONSES

Page 334: Oracle 8i Networking 101

316 Глава 11

Здесь сообщается, что в очереди первого диспетчера ответы находи-лись в среднем 0,0021 секунды, а для очереди второго диспетчера среднеевремя ожидания составило 0,0014 секунды. В очереди третьего диспетче-ра ответов нет. Если вы увидите, что эти показатели начинают расти,возможно, количество диспетчеров для данного протокола следуетувеличить.

Представление V$QUEUE также позволяет узнать среднее время на-хождения запросов в очереди на обработку. Вот соответствующий запросс примером выходных данных:

Q select decode(TOTALO, 0, 'No Requests', WAIT/TOTALQ || ' HUNDREDTHS OF SECONDS')"AVERAGE WAIT TIME PER REQUESTS"

from VSQUEUEwhere TYPE = 'COMMON';

AVERAGE WAIT TIME PER REQUEST

.061423 HUNDREDTHS OF SECONDS

Из этого примера следует, что запросы ожидали обработки в среднем0,0006 секунды.

Представление V$SHARED_SERVERПредставление V$SHARED_SERVER позволяет узнать, сколько разделяе-мых серверов запущено в данный момент. Его столбцы перечислены втаблице 11.7.

Таблица 11.7.Представление V$SHARED_SERVER

Столбец Описание

NAME Имя сервера

PADDR Адрес процесса сервера

STATUS Состояние сервераВозможные значения:EXEC — выполнение SQL-запросаWAIT (ENQ) — ожидание блокировкиWAIT (SEND — ожидание отправки данных пользователюWAIT (RESET) — ожидание реинициализации канала после прерыванияQUIT — завершение работы

MESSAGES Количество обработанных сообщений

BYTES Общий размер всех сообщений в байтах

BREAKS Количество прерываний

CIRCUIT Адрес канала, обслуживаемого в данный момент

Page 335: Oracle 8i Networking 101

Поддержка больших сетей 317

Приведенный ниже запрос выводит количество серверов, функциони-рующих в системе:

О, select COUNT(*) "SHARED SERVER PROCESSES"from V$SHARED_SERVER

where STATUS != 'QUIT';

Результаты этого запроса будут выглядеть примерно так:

Q SHARED SERVER PROCESSES

15

При запуске базы данных запускается столько серверов, сколько указа-но в параметре mts_servers. Это минимальное количество разделяемыхсерверов, которое будет сохраняться на протяжении всего времени функ-ционирования базы данных. В процессе обработки запросов возможноавтоматическое увеличение количества серверов, вплоть до величины,указанной в параметре mts_max_servers. По умолчанию этому параметруприсваивается значение 20, если mts_servers меньше или равно 10, илиудвоенное значение mts_servers, если mts_servers больше 10. Если обра-ботка запросов выполняется слишком медленно или вы видите, что по-стоянно запущено максимальное количество серверов, необходимоостановить базу данных и увеличить минимальное и максимальное коли-чество разделяемых серверов. Когда разделяемых серверов недостаточнодля обслуживания всех принимаемых запросов, производительностьсистемы может ухудшиться.

Представление V$MTSЧтобы извлечь пользу из информации, содержащейся в представленииV$MTS, в первую очередь необходимо определить, какое значениепараметра mts_max_servers используется базой данных. Для этого войди-те в базу данных как SYS, SYSTEM или INTERNAL и введите команду showparameters mts_max_servers. Сравнив значение mts_max_servers с мак-симальным числом запущенных серверов, полученным из представленияV$MTS, вы сможете решить, нужно ли увеличить количество серверов.Столбцы представления V$MTS перечислены в таблице 11.8.

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

Page 336: Oracle 8i Networking 101

318 Глава fl

Таблица 11.8.Представление V$MTS

Столбец Описание

MAXIMUM_CONNECTIONS

'",. • • - ,. \MAXIMUM_SESSIONS

' ' " '' j y '" ' '* •;

1 •- - . .• '

SERVERS.STARTED

SERVERSJERMINATED

SERVERS HIGHWATER

Максимальное количество виртуальных каналов, когда-либоодновременно использовавшихся с момента запускаэкземпляра. Если оно сравнивается со значением параметраинициализации MTS_CIRCUITS, подумайте об увеличенииэтого параметра.

Максимальное количество сеансов MTS, когда-либоодновременно открывавшихся с момента запуска экземпляра.Если оно сравнивается со значением параметра инициализацииMTS_SESSIONS, подумайте об увеличении этого параметра.

Общее количество разделяемых серверов, запускавшихсяс момента запуска экземпляра (помимо тех, что были запущеныпервоначально).

Общее количество разделяемых серверов, останавливавшихсяс момента запуска экземпляра.

Максимальное количество серверов, когда-либо одновременноработавших с момента запуска экземпляра. Если оносравнивается со значением параметра инициализацииMTS MAX SERVERS, подумайте об увеличении параметраMTS'SERVERS.

Сначала нужно определить, сколько памяти использует каждый разде-ляемый сервер. В системе UNIX эту информацию можно получить с по-мощью утилиты ps. Кроме того, вам нужно узнать объем свободнойоперативной памяти. Разделив эту величину на размер разделяемого сер-вера, вы увидите, сколько дополнительных разделяемых серверов можетподдерживать система. Конечно, не стоит использовать всю доступнуюпамять под разделяемые серверы, но по крайней мере вы будете знать, докакого предела можно увеличивать их число.

На практике значения mts_servers и mts_max_servers обычно выби-рают так, чтобы они немного превышали потребность в разделяемыхсерверах при средней и максимальной нагрузке. Увеличивайте эти пара-метры постепенно, чтобы найти оптимальные значения для своей систе-мы. Если начнется страничный обмен с диском, уменьшайте значениедо тех пор, пока обмен не прекратится, или установите в машину допол-нительную память.

Использование объединения соединений,концентрации соединений и/или балансировкинагрузки на уровне соединения

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

Page 337: Oracle 8i Networking 101

Поддержка больших сетей 319

диспетчеры посылают прослушивающему процессу уведомления, чтобытот мог следить за числом активных соединений каждого диспетчера.Этот подход известен как балансировка нагрузки на уровне соединения(connection load balancing). Если диспетчеры располагаются на несколь-ких узлах, то прослушивающий процесс учитывает не только загрузкукаждого диспетчера, но и количество соединений с узлами.

Каким образом диспетчер одновременно поддерживает многих поль-зователей? Ранее это уже обсуждалось, но давайте повторим еще раз.Если клиент не предпринимает никаких действий в течение заданногопромежутка времени, механизм тайм-аута временно разрывает его транс-портное соединение, сохраняя логическое соединение с диспетчером.

Освобожденное физическое соединение может использоваться дис-петчером для приема новых входящих запросов. Когда простаивавшийклиент вновь активизируется, диспетчер восстанавливает физическое со-единение, действуя от имени клиента.

Подчеркну, что объединение соединений и балансировка нагрузкина уровне соединения возможны только на сервере и только в режимеMTS. Вы также можете задействовать менеджер соединений Oracle иреализовать мультиплексирование клиентских сеансов, чтобы однотранспортное соединение с MTS могло разделяться между многими поль-зователями. Эта технология, известная под названием концентрации соеди-нений (connection concentration), сокращает потребность в ресурсах,поскольку сервер может поддерживать множество соединений междупроцессами, используя гораздо меньшее количество точек приема входя-щих запросов. Таким образом, концентрация соединений позволяет уве-личить общее число клиентов, обслуживаемых сервером. Если развитьэту идею дальше и использовать нескольких менеджеров соединений, томожно обеспечить поддержку тысяч параллельных соединений пользова-телей с сервером. При совместном использовании менеджера соедине-ний и многопоточного сервера количество поддерживаемых соединенийвозрастает в геометрической прогрессии.

Чтобы разрешить объединение соединений, необходимо включить впараметр mts_dispatchers атрибут pool. Вместе с ним можно использо-вать дополнительные атрибуты connections, sessions и ticks, которыебыли описаны в таблице 11.1. Вернемся к приводившемуся ранее при-меру, где подсчитывалось начальное количество диспетчеров. Модифи-цируем этот пример так, чтобы для протокола TCP один диспетчер могподдерживать 5000 соединений с 1500 сеансами в каждом, а для про-токола SPX — 3000 соединений с 1000 сеансов в каждом:

Q. mts_dispatchers="(protocol=TCP)(dispatchers=1)(pool=ON)(tick=1)(connections=5000)(sessions=1500)"mts_dispatchers="(protocol=SPX)(dispatchers=1)(pool=ON)(tick=1)(connections=3000)(sessions=1000)"

Вы можете сконфигурировать диспетчер MTS так, чтобы он поддер-живал лишь определенный тип клиентских запросов. Предположим,что обращения к таблице заказов в базе данных SKDL выполняютсянамного чаще, чем к любым другим таблицам. В этом случае можно

Page 338: Oracle 8i Networking 101

320 Глава 11

сконфигурировать один диспетчер специально для обслуживания запро-сов к таблице ORDERS и один общий диспетчер для поддержки всех оста-льных соединений с базой данных SKDL. Это делается следующимобразом:

' Q service_name=SKDLXYZCORP.US.COMinstance=SKDLmts_dispatchers="(protocol=TCP)"mtsjJis patche rs="(p rotocol=TCP)(se rvice=ORDERS.SKDL.XYZCORP.US.COM)"

Предварительное созданиевыделенных серверов

До этого момента много говорилось о многопоточном сервере, его кон-фигурировании, использовании и настройке. Но если вы понимаете, чтоMTS не совсем подходит для вашей среды, можно использовать и другиесредства, помогающие повысить эффективность,— например, предвари-тельно созданные выделенные серверы.

О предварительно создаваемых выделенных серверах кратко говори-лось в главе 6. Давайте сначала повторим то, что уже было сказано, а по-том рассмотрим их более подробно. При использовании выделенныхсерверов у вас есть две возможности: либо создавать (порождать) соеди-нения с базой данных до поступления каких-либо запросов, либо порож-дать каждый процесс выделенного сервера в момент приема запроса.

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

Если же вы решите создавать выделенные процессы по мере поступле-ния запросов, то клиентам придется ждать, пока запустится требуемыйпроцесс. С другой стороны, после отсоединения клиента ресурсы будутвозвращены системе. Что произойдет, если количество запросов на сое-динения превысит количество предварительно созданных серверов? Тог-да Oracle просто начнет создавать выделенные процессы по запросу,освобождая ресурсы после завершения сеансов, пока предварительно со-зданных соединений снова не окажется достаточно.

Суммируем все преимущества, которые дает использование предвари-тельно созданных выделенных серверов. Прежде всего, сокращается

Page 339: Oracle 8i Networking 101

Поддержка больших сетей 321

время установления соединений по клиентским запросам, поскольку нетребуется создавать выделенный сервер для каждого нового запроса. Да-лее, поскольку предварительно порожденные процессы остаются доступ-ными на протяжении всего времени жизни прослушивающего процесса,исключаются накладные расходы на уничтожение и повторное созданиесерверов, а следовательно, более эффективно используется выделеннаяпамять и системные ресурсы. Это особенно важно в системах, где отсут-ствует поддержка MTS или создание новых процессов требует значитель-ного времени и ресурсов.

ВниманиеВ Windows NT предварительное создание выделенныхсерверов невозможно.

Теперь, когда польза от предварительно создаваемых выделенных серве-ров стала для вас очевидной, попробуйте догадаться, как их конфи-гурировать. Я уже дала одну подсказку, упомянув о том, что онизапускаются вместе с прослушивающим процессом. Таким образом, выдолжны были сообразить, что нужно поместить подходящие параметры вфайл listener.ora. О том, что это за параметры, вы можете узнать изтаблицы 11.9.

Чтобы разрешить предварительное создание выделенных серверов,можно либо вручную отредактировать файл listener.ora, либо прибегнутьк услугам Net8 Assistant. Записи в listener.ora должны выглядеть примерноследующим образом:

sid_list_listener=(sid_list=(sid_desc=

(global_dbname=SKDL.world)(sid_name=SKDL)(oracle_home=D:\0racle\0ra81)(prespawn_max=25)(prespawn_list=

(prespawn_desc=(protocol=TCP)(pool_size=4)(timeout=5)))))

Как следует из этого примера, количество предварительно созданныхвыделенных серверов в любой момент времени будет не менее четырех ине более 25. Время ожидания нового соединения составляет 5 минут. По-мните, что значение тайм-аута применяется только после того, как пред-варительно созданный процесс был использован первый раз. До этогооно не оказывает влияния на процесс.

Page 340: Oracle 8i Networking 101

322 Глава 11

Таблица 11.9.Параметры файла listener.ora, относящиеся к предварительнопорождаемым процессам выделенных серверов

Параметр Описание

PRESPAWN МАХ

PROTOCOL

POOL.SIZE

TIMEOUT

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

Протокол, для которого прослушивающий процесс предварительносоздает выделенные серверы.

Количество неиспользуемых предварительно созданных выделенныхсерверов, поддерживаемое прослушивающим процессом для данногопротокола. Это число должно быть больше нуля, но не превышатьзначение параметра PRESPAWN_MAX. Лучше, чтобы оно было равнымсреднему количеству соединений, ожидаемому в любой моментвремени.

Время (в минутах), в течение которого неактивный предварительносозданный выделенный сервер ожидает следующего соединения.Устанавливайте для этого параметра небольшое положительноезначение. При нулевом значении неактивный фоновый процесс будетвыполняться бесконечно, бесполезно расходуя ресурсы машины.Механизм тайм-аута активизируется только после того, как с процессомбыло установлено хотя бы одно соединение. Иначе говоря,предварительно созданные выделенные серверы, ожидающиесвоего первого соединения, не уничтожаются.

Page 341: Oracle 8i Networking 101

1ЭНС1Э1НИ И

А

Page 342: Oracle 8i Networking 101
Page 343: Oracle 8i Networking 101

Прослушивающийпроцесс WebDB

Page 344: Oracle 8i Networking 101

326 Глава 12

какой профессии вы мечтали в детстве? Я всегда хотела стать столя-ром. Мне нравится мастерить разные вещи. Время от времени я нахожуприменение своим наклонностям, собирая какую-нибудь книжную полку,но когда я однажды попыталась вырезать из куска дерева нечто более илименее узнаваемое, результат оказался совершенно неудовлетворитель-ным. Впрочем, можно утешиться тем, что я умею строить замечательныебазы данных и написала несколько действительно хороших приложений.

Если вам, как и мне, доставляет удовольствие делать вещи своими ру-ками, то у корпорации Oracle найдется для вас отличный инструмент, спомощью которого можно строить Интернет-порталы предприятий. Изназвания этой главы вам уже известно, что речь идет о программномобеспечении на основе браузера, называемом WebDB. Однако я не соби-раюсь много рассказывать о самом WebDB, а вместо этого сосредоточусьтолько на одном его компоненте, называемом прослушивающим процес-сом WebDB (WebDB listener). Да, это не оговорка. WebDB поставляетсявместе со своим собственным прослушивающим процессом, и вы должнызнать, как его установить и сконфигурировать, чтобы обеспечить прави-льную работу остальных компонентов. Должна вас предупредить, чтокорпорация Oracle сейчас работает над новым прослушивающим процес-сом с предварительным названием Oracle Internet Listener. Посколькусроки его выхода пока неизвестны, я постараюсь как можно больше рас-сказать о текущем прослушивающем процессе WebDB.

ВниманиеЭта глава была написана на основеверсии 2.2 — последней из доступных на тот момент.С тех пор корпорация Oracle выпустилаWebDB 3.0 Production, а также бета-версию WebDB,переименованную в "Интернет-портал".

Общие сведения о WebDBХотя большая часть этой главы посвящена прослушивающему процессуWebDB, вы наверняка будете недовольны, хотя бы в общих чертах неузнав о том, что такое WebDB и как он работает.

Недавно я полдня просидела на семинаре, где рассматривался наборпродуктов WebDB. В итоге я так и не услышала внятного объяснения, какстыкуются его компоненты. Надеюсь, что мне удастся рассказать о компо-нентах WebDB более доходчиво.

Какие ассоциации вызывает у вас слово "портал"? Мне всегда представ-ляется старый эпизод из фильма "Звездный путь" ("Star Trek"), где капи-тан Кирк и несколько членов его команды проходят через огромныйкруглый портал и оказываются в совершенно другом месте в далеком

Page 345: Oracle 8i Networking 101

Прослушивающий процесс WebDB 327

прошлом. Им пришлось пережить немало приключений, чтобы найтиобратный путь Б свое время. Имея перед глазами эту картину, я бы сказа-ла, что портал — это ворота или вход, через который можно попасть вдругие места. Если вы услышите, что кто-то строит портал предприятия,можете смело предполагать, что он разрабатывает Web-сайт, который бу-дет служить точкой доступа к информации компании. Вы замечали, что всреде технических специалистов периодически возникает мода на опре-деленные слова? Похоже, что в настоящее время к таким словам можноотнести и "Web-портал".

WebDB содержит нескольких различных компонентов, с помощью кото-рых даже не слишком подготовленные в техническом плане люди могутсоздавать интерактивные Web-приложения. Одной из наиболее интерес-ных черт WebDB является то, что вся информация, необходимая для ра-боты приложения, хранится непосредственно в базе данных. WebDBпредоставляет централизованную среду для управления, мониторинга,настройки, защиты и обслуживания приложений и данных. Эти задачивозлагаются на квалифицированных специалистов по Oracle, таких, какмы с вами.

Манипулирование данными из приложения WebDB доступно любому,кто имеет соответствующие привилегии. Для этого не нужно писатьсложные программы. По существу, вы даже не обязаны знать, как про-граммировать на Perl, HTML, Java, SQL или С. Трансляция в програм-мные конструкции выполняется за пользователя. Это позволяет людямбыстро связываться друг с другом на любых расстояниях. : :

Теперь, когда WebDB представлен с самых лучших сторон, пора ска-зать, что этот продукт не входит в стандартный комплект программногообеспечения Oracle и поставляется за отдельную плату. Однако он имеетстолько полезных функций, что вам стоит узнать его состав.

Прослушивающий процесс WebDB представляет собой упрощенныйWeb-сервер, работающий по протоколу HTTP, который позволяет стро-ить и развертывать Web-приложения на основе PL/SQL, а также обслу-живать статические файлы. С прослушивающим процессом WebDB тесносвязан шлюз PL/SQL, который работает, подобно картриджу PL/SQLсервера приложений Oracle, но выполняет несколько больше функций.Для хранения информации о соединениях с базой данных, используемойприложением, а также для разрешения URL в имена процедур PL/SQLиспользуются дескрипторы доступа к.базе данных (Database AccessDescriptors, DADs).

Если у вас уже есть Web-сервер и вы не хотите создавать WebDB-cep-вер, можно ограничиться установкой картриджа WebDB или общегошлюзового интерфейса (Common Gateway Interface, CGI) WebDB. Этидействия описаны в руководстве по установке WebDB.

Page 346: Oracle 8i Networking 101

328 Глава 12

Установка прослушивающегопроцесса WebDB

Обычно при установке программного обеспечения Oracle вам сообщает-ся, сколько места потребуется на диске. При установке WebDB 2.2.0.0.5подобная информация отсутствует. На моей машине с Windows NT потре-бовалось около 100 Мбайт. Однако нужно учесть, что большая часть ком-понентов WebDB располагается в предназначенной для него базе данных.

В руководстве по установке WebDB говорится, что одна часть установ-ки выполняется с использованием обычного прослушивающего процессапри остановленной базе данных, а другая часть — при запущенной базеданных. Это выглядит логично, поскольку вы не можете сохранить схемуWebDB в неработающей базе данных. В документации также отмечается,что для WebDB нужно создать новый базовый каталог Oracle. Независи-мо от того, сделаете вы это или нет, у вас будут запрошены название ком-пании и каталог для установки, причем по умолчанию предлагаетсяиспользовать уже зарегистрированный базовый каталог Oracle. Если выпримете это значение, то получите сообщение о том, что нужно вернуть-ся назад и выбрать другой каталог. Если указанный каталог не существует,он будет создан автоматически.

Далее вам потребуется выбрать тип установки — типичную (typical)или выборочную (custom). В своей системе я выбрала рекомендованнуютипичную установку. В целом установка очень проста. Имейте в виду, чтодля WebDB создается отдельный каталог и отдельный набор файлов кон-фигурации. Рассмотрим процесс с того момента, когда начинается уста-новка прослушивающего процесса WebDB.

Перед началом установкиПеред тем как начинать установку, я рекомендую открыть документацию,находящуюся на диске с WebDB. Там приведена информация, с которойнеобходимо ознакомиться для успешного выполнения установки. В част-ности, вы должны знать пароль учетной записи SYS и обеспечить доста-точное место в табличном пространстве, которое планируетсяиспользовать для поддержки каждого WebDB-сайта. Вы также должныиметь административные привилегии на той машине, откуда предполага-ется запускать WebDB. Я не собираюсь перечислять здесь все требова-ния, поскольку они будут разными в зависимости от платформы, аописание полной установки WebDB выходит за рамки этой книги. Отме-чу только, что вместе с каталогом вы должны определить порт, которыйбудет использовать прослушивающий процесс WebDB.

По умолчанию прослушивающему процессу назначается порт 80. В до-кументации рекомендуется не изменять этот номер, если только он не ис-пользуется для каких-либо других целей. В дальнейшем это позволитвводить URL без номера порта, поскольку браузеры и Web-серверы поумолчанию взаимодействуют именно через порт 80. Имейте в виду, что всистемах UNIX порты с номерами ниже 1024 обычно являются системны-ми. Это означает, что для запуска прослушивающего процесса WebDB вам

Page 347: Oracle 8i Networking 101

Прослушивающий процесс WebPB 329

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

Чтобы определить, какие порты уже заняты, можно ввести командуnetstat -а. На моей машине с Windows NT выходные данные выгляделитак, как показано на рис. 12.1.

!C:\>netstat -aЦ1М1, .

Pl-OtOTCPTCPTCPTCPTCPTCPTCPTCPTCPTCPTCPTCPTCPTCP

SHEDTCP

SHEDTCPTCPTCPHDPUDPUDPUDPUDP

C:\>_

Local Addressnarlenes-pc =135narlenes-pc :135nar lenes -pc : 1 02 7narlenes-pc :1028narlenes -pc :1202marlene -pc:1521maplene -pc:1025narlene -pc:102Snarlene -pc:1026narlene -рс:1И28narlene -pc:137

marlene -pc:nbsessionnarlene -pc:1202

narlene -pc:1521

narlene -pc:137marlene -pc:138narlene -pcrnbsessionnarlene -pc:13Snarlene -pc:nbnanenarlene -pc:nbdatagrannarlene -pc:nbnanenarlene -pc:nbdatagran

Foreign Address0.0.8.0=8И.а.В.И:Ва.в.и.и:и0.0.B.B:Ba.a.e.e-.eа.0.И.И:ИВ.0.а.В:0localhosf.1028И.0.В.В:Вlocalhost:102Sв. В. В. 8:80 8 8 0:0а!0!а"в:аuser-2iuelo8.dialup

user-2ivelo8 .dialup

8.0.8.8:80.8.8.8:88.8.8.0:8»:мк:к

M:W•R*

•>:м

3

StateLISTENINGLISTENINGLISTENINGLISTENINGLISTENING JLISTENINGLISTENINGESTflBLISHEDLISTENINGESTABLISHEDLISTENINGLISTENINGLISTENING

nindspring.con:lS21 ESTDBLI

minaspi*in(r.con:12B2 ESTRBLI

LISTENINGLISTENINGLISTENING

il

Рис. 12.1. Отчет об используемых портаху

Из этой иллюстрации видно, что среди многих портов, которые испо-льзуются в данный момент, порт 80 отсутствует. Следовательно, я моглаиспользовать этот номер при установке и конфигурировании своего про-слушивающего процесса WebDB, как будет показано на последующихснимках экранов.

При выборе типичного варианта установки в вашу систему будут уста-новлены компоненты WebDB, перечисленные в таблице 12.1.

Таблица 12.1.Компоненты WebDB, входящие в типичную установку

Компонент Описание

WebDB 2.2

WebDB Listener 2.2

PL/SQL Web Toolkit 4.0.8

Файлы поддержки 8.0.5.1

SQL'Loader 8.0.5

SQL*Plus 8.0.5

Позволяет создавать Web-сайт на основе базы данных Oracle

Позволяет обращаться к базе данных через Web-браузер

Позволяет писать Web-ориентированные приложения

Файлы, требуемые прослушивающим процессом WebDB

Устанавливается в каталог с WebDB

Устанавливается в каталог с WebDB

Page 348: Oracle 8i Networking 101

330 Глава 12

Выборочная установка означает лишь т.о. что вы сможете установитьинструменты WebDB и прослушивающий процесс WebDB по отдельно-сти. Поскольку эта книга посвящена исключительно OracleSi, я выбралаопцию OracleSi. Это предполагает локальную установку WebDB. Если выбудете устанавливать WebDB в более ранней версии, то сможете выби-рать между локальной и удаленной установками.

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

Первый экран, на котором начинается конфигурирование прослуши-вающего процесса, показан на рис. 12.2.

Enter youi Oracle database SYS user password, host name andWebDB Listener port number. Enter the TNS names alias for thedatabase to connect. It the TNS names alias does not exist,Net8 easy config tool will be invoked to help you create the TNSnames alias.

Password

TNS Names Alias I

Host Name jmarlenet-pc

WebDB Listener Poll It Ion

Рис. 12.2. Ввод информации для соединения с базой данных

Как видите, здесь запрашивается пароль пользователя SYS, TNS-псев-доним, имя хоста и номер порта прослушивающего процесса WebDB.При вводе пароля вместо букв отображаются звездочки (*), поэтому па-роль остается скрытым. TNS-псевдоним — это имя сетевой службы илибазы данных, в которой будет сохранена схема WebDB, а имя хоста — этоимя или IP-адрес машины, на которой расположена база данных. Для пор-та по умолчанию выбирается номер 80, хотя вы можете использоватьлюбой другой номер.

Если вы введете TNS-псевдоним, который еще не зарегистрирован вфайле tnsnames.ora из базового каталога WebDB, то получите сообщение,показанное на рис. 12.3. В нем говорится, что для создания нужной запи-си будет запущен мастер Net.8 Easy Config.

Page 349: Oracle 8i Networking 101

Прослушивающий процесс WebDB 331

The TNS names alias SKDL, world was not found in theDAOrecleSOiaWebDBSnelBOSadminVnsnames.oia The install program,will now start the Net8 Easy Config wizard to help you create the TNSnames alias SKDLwortt

Рис. 12.3. Сообщение об отсутствии сконфигурированногоTNS-псевдонима

Поскольку инструмент Net8 Easy Config не входит в поставку OracleSi,Release 2, его экраны не были показаны в предыдущих главах. Теперь на-стало время это сделать.

Мастер Nets Easy Config -Первое, что вы увидите,— это начальный экран мастера имен служб(Service Name wizard), показанный на рис. 12.4. Вводится имя службыбазы данных, которую предполагается использовать, в данном случаеSKDL.world. При запуске инструмента предлагается несколько примеров *уже сконфигурированных служб.

Welcome to the Service Name Wizard.

Service Names, also called Database Aliases, are user-defined logical names used to identify and connect to an

'Oracle database. :

-Choose Action i

I<• Add New Service•<~ Modify

С Delete

Г Test

Next>

i-Choose Service Name-—]

I New Service Name

I SKDLwond

I Existing Services

CMBiAMPLE WORLD A'TOPEXAMPLE.WORLDJNMPEXAMPLE.WORLCPXTPROC

Рис. 12.4. Начальный экран мастера имен служб

Стоит упомянуть, что при запуске мастера было получено сообщениео наличии комментариев в текущем файле конфигурации с предложени-ем принять к сведению тот факт, что информация может быть пере-записана или перемещена в другое место файла. Это нормальноесообщение Net8 Easy Config. Поскольку файл открывался первый раз,можно было разрешить выполнение дальнейших действий. Но если этотфайл уже был сконфигурирован вручную, не стоит решаться на переза-пись. Имейте в виду, когда будете использовать Net8 Easy Config для

Page 350: Oracle 8i Networking 101

332 Глава 12

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

На следующем экране нужно выбрать сетевой протокол. Поскольку да-лее вы получите возможность протестировать сетевое соединение, к мо-менту появления этого экрана база данных должна быть запущена идоступна. Экран выбора протокола показан на рис. 12.5.

Oracle NetB Easy Config

Select the networking protocol used to connect to andcommunicate with the database you want to use.

|SPX (NetWare Networking)lamed Pipes (Microsoft Networking)

[Bequeath (Local database)IPC (Local Process)

Please ensure that the networking protocol is configuredand tested for simple connectivity and that Oracle supportfor that protocol has been Installed.

Рис. 12.5. Выбор сетевого протокола

На следующем шаге вам предлагается ввести имя хоста и номер портадля связи с прослушивающим процессом базы данных. Как видно изрис. 12.6, я ввела имя своей машины (MARLENES-PC) и стандартный но-мер порта, который используется моим прослушивающим процессом.

Oracle NelB Easy Config

TCP/IP Protocol

Specify the host name for the computer where thedatabase is located and the port number where thedatabase can be contacted.

Host Name: {marlenes-pc

The default port number of 1521 is used In mostlocations. Change this only if you know that the portnumber for the database you want to use is different.

Port Number:

«Back Next>

Рис. 12.6. Ввод имени хоста и номера порта

Page 351: Oracle 8i Networking 101

Прослушивающий процесс WebPB 333

Далее требуется ввести имя базы данных, в которой вы собираетесьхранить схему и служебную информацию WebDB. Соответствующийэкран показан на рис. 12.7. Вводится имя SKDL.

The SID (System IDentifler) identifies the specific Oracledatabase instance to which you want to connect. ORCListhe default, however other SIDs are common.

Please enter the SID for the database you want to use.

Database SID: ISKDL)

<Back Next» I

Рис. 12.7. Ввод имени базы данных

Следующий экран, показанный на рис. 12.8, позволяет протестиро-вать службу, то есть убедиться, что по указанному вами адресу можноустановить соединение. Поскольку процедура тестирования уже рассмат-ривалась в главах 6 и 8, при описании других инструментов конфигуриро-вания Oracle Net8, здесь не будут приведены остальные экраны.

Dracle Neto Easy Confio

Press Test Service ifyouwould like to test that aconnection to the database can be made using theInformation you provided.

When you are ready press Finish to create the newService Name.

Test Service

«Back Next

Рис. 12.8. Тестирование службы

Page 352: Oracle 8i Networking 101

334 Глава 12

П<ае!е N«i8 Easy Config

Thank you for using the Oracle Service Name Wizard.

г-S'* Press "Finish" to save your service name changes and exitthe wizard.

Press "Cance!" to discard these changes leave"your •service name configuration unchanged.

< Back Finish

Рис. 12.9. Заключительный экран мастера имен служб

На последнем экране (рис. 12.9) вам предлагается нажать кнопкуFinish, чтобы сохранить введенную ранее информацию и тем самым за-вершить создание имени службы.

После выдачи сообщения об успешном создании TNS-псевдонима уста-новка WebDB возобновится, и вы увидите экран, где предлагается указатьсхему WebDB, табличное пространство по умолчанию, временное таблич-ное пространство и табличное пространство для документов. Нарис. 12.10 показано, какие значения используются по умолчанию. Заметь-те, что, табличные пространству можно выбрать из раскрывающихся

Choose the schema where WebDB will be installed, and defaulttemporary and document tablespace for (his schema.

Installation Schema

Default Tablespace [TOOLS

Temporary ТаЫеврасе

Document Tableipace ffr-JQLs"

Help OK Cancel

Рис. 12.10. Выбор схемы и табличных пространств WebDB

Page 353: Oracle 8i Networking 101

Прослушивающий процесс WebDB 335

списков. При этом вы должны быть уверены, что в выбранных таблич-ных пространствах достаточно места для хранения данных WebDB. Еслиследовать рекомендациям Oracle, то в каждом из них должно быть доступ-но как минимум 25-30 Мбайт.

Следующий экран просто информирует о том, что для схемы WEBDBустановлен пароль WEBDB. Кроме этой строки, на экране больше ничегонет, поэтому нет особой необходимости его приводить.

Далее вам предлагается выбрать, какие еще языки, кроме английско-го, следует установить. На рис. 12.11 можно увидеть некоторые из доступ-ных языков.

English will be installed automatically. Plea» select additionallanguages to be installed

ArabicBrazilian PortugueseCzechDanishDutchFinnishFienchGermanGreek

I

Help log

Рис. 12.11. Выбор языков

После выбора языков вы получите следующее сообщение: "OracleWebDB 2.2 Installation will start now. You cannot cancel this process. Do youwant to continue?" ("Сейчас начнется установка Oracle WebDB 2.2. Отменаэтого процесса невозможна. Продолжить?"). Возможные варианты отве-тов — Help, Yes или No. По умолчанию будет выбрана кнопка Yes.

Спустя некоторое время после начала фактической установки вы уви-дите окно с сообщением о завершении, подобное (но не идентичное)тому, что показано на рис. 12.12.

WebDB installation completedYour URL is http:/7marlenes-pc:80/WebDB/Your username/passtrord is WEBDB/WEBDB

You can make additional listener modifications athttp:/Vmarlenes-pc:80/admin_/gateway.htm and

Рис. 12.12. Сообщение о завершении установки WebDB,содержащее важную информацию

Page 354: Oracle 8i Networking 101

336 Глава 12

В этом окне главную ценность представляют имя пользователя/па-роль и адреса, по которым можно обращаться для модификациипрослушивающего процесса. Заметьте, что последняя строка текста обре-зана. По местонахождению файла gateway.htm можно предположить, чтофайл listener.htm также размещен в сетевом каталоге

http://marlenes-pc:80/admin^/listener.htm.Для проверки достаточно запустить браузер и посмотреть, что находитсяпо этому адресу.

После установкиСкажу честно, что после начальной установки WebDB я проголодалась,поэтому не стала продолжать работу, выключила машину и пошла наланч. Поскольку на моей машине с Windows NT был установлен "ручной"режим запуска служб, теперь мне нужно запустить службы прослушиваю-щего процесса и базы данных. Это займет не более минуты.

Выполняя необходимые действия, я заметила, что на машине стали до-ступны две новые службы. Одна из них настроена на автоматический за-пуск и называется "Oracle WebDB Listener". Когда я собиралась запускатьбазу данных и прослушивающий процесс, она уже функционировала. Дру-гая служба, настроенная на ручной запуск, называется "OracleOraWebDB-ClientCacheSO". Чуть позже мы выясним, что она делает. А сейчас язапущу свой браузер и вызову вторую из HTML-страниц, которые былиуказаны на заключительном экране установки (см. рис. 12.12). Послеввода адреса http://marlenes-pc/WebDB/admin_/listener.htm я увиделастраницу, показанную на рис. 12.13. Поскольку при конфигурированиипрослушивающего процесса был указан порт 80, который используетсяпо умолчанию всеми Интернет-браузерами и прослушивающими процес-сами, добавлять ":80" к имени хоста не обязательно.

На этой странице приводятся различные параметры конфигурациипрослушивающего процесса WebDB с их текущими значениями. Судя полинейке прокрутки, экран содержит гораздо больше информации.Страница разбита на несколько разделов, перечисленных в таблице 12.2.

Таблица 12.2.Разделы страницы настроек прослушивающего процесса WebDB

Раздел Содержимое

Miscellaneous Settings Местонахождение домашней страницы, тип MIME(Различные настройки) по умолчанию, максимальное количество потоков диспетчера

для обслуживания файлов, максимальное количество потоковдиспетчера, максимальное количество потоков CGI и уровеньпротоколирования.

Directory Mappings Местонахождения физических каталогов и виртуальные(Отображения каталогов) каталоги.

CGI Directory Mappings Местонахождения физических каталогов и виртуальные(CGI-отображения каталогов) каталоги.

MIME Types (Типы MIME) Перечислено 17 стандартных типов MIME с соответствующимирасширениями файлов и оставлено место для определения ещенескольких (см. таблицу 12.3).

Page 355: Oracle 8i Networking 101

Прослушивающий процесс WebDB 337

tfew Fjvortes led» Help

И)'Refresh Home I Seech Favorites Histwy

ЕУ .Ed» ^___J

1 Li*'I

Oracle WebDB Listener Settings

Change PL/SQL Gateway Settings

Change Directory MappingsChange MIME Types

Miscellaneous Settings

Home Page : |

Default Mime Type : |applies*on/octet-stream

Maximum Number of Ibreads for Serving Files ]5

Maximum Number of Dispatcher Tbreads: }7

Maximum Number of CGI Threads: |5 '

LoggulgLevel: | Extended

Apply | Rsaal|

PMC. 12.13. Страница настроек прослушивающего процесса WebDB

В таблице 12.2 упоминается об отображениях каталогов и CGI-отобра-жениях каталогов. Чем они отличаются? Как объяснил мой техническийрецензент Ян Фиклинг, отображения каталогов используются совместнос прослушивающим процессом WebDB. CGI-отображения каталогов необ-ходимо конфигурировать в том случае, если вы собираетесь использоватьWebDB не с прослушивающим процессом WebDB, а с CGI-интерфейсомWeb-сервера, например, от Netscape или Microsoft. Эта глава посвященаисключительно прослушивающему процессу, но вы можете найти массуинформации о CGI в Интернете. Вот несколько хороших ссылок:

» www.cgi-resources.com• www.bignosebird.com• www.cgi-free.com• www.cgiforme.com

Стандартные типы MIME перечислены в таблице 12.3.

12 Зак. 726

Page 356: Oracle 8i Networking 101

338 Глава 12

Таблица 12.3,Типы MIME и соответствующие расширения файлов

Тип MIME

audio/x-wav

text/html

image/jpeg

image/gif

text/plain

application/pdf

application/powerpoint

application/msword

application/x-tar

application/zip

text/edi

application/excel

x-world/x-vrml

application/x-gzip

application/x-director

application/oracle-magic

application/oracle-video

Расширение

,wav

.htm | .html

.jpg 1 Jpeg | JPG

.gif | .GIF

.txt | ,jsg | .1st

.pdf

.ppt | .PPTi

.doc | .dot | .DOC | .DOTi

.tar | .TAR

.zipi . . . . . 1 .. . , ,

.edi i , ,.,. ,,..:

.xls | .XLS

.vrml

•v\2.dcr

•УУУ

.mpi | .mpg | .osf

Теперь посмотрим, что находится на странице настроек шлюзаPL/SQL, часть которой показана на рис. 12.14. Как видите, здесь можноуказать дескриптор доступа к базе данных (DAD), который будет исполь-зоваться по умолчанию, и выполнить настройку DAD для базы данных, вкоторой хранится схема WebDB. Обратите внимание, что имя пользова-теля и пароль не показаны.

По умолчанию конфигурация WebDB сохраняется в файле wdbsvr.cfg,расположенном в каталоге <WebDB_home>\listener\cfg.

Запуск и останов прослушивающего процесса WebDBЕсли вы будете использовать несколько пррслущивакэщих процессовWebDB, то их потребуется запускать и останавливать вручную из коман-дной Строки или из пакетного задания. В .Win'dbtoi НТ'Ьёжтйм ручного за-пуска устанавливается через окно Служб. Выберите Start ]>- Settings >•Control Panel >• Services и прокрутите список служб Униз'; пока не увидитезапись о прослушивающем процессе WebDB. Вы^елйт^е эту Запись инажмите кнопку Startup. В открывшемся окне вУберите1 Startup Туре -Manual и щелкните на кнопке ОК. Закройте окно служб и панель управле-ния. Теперь вы сможете запускать и останавливать прослушивающий

Page 357: Oracle 8i Networking 101

Прослушивающий процесс WebDB 339

Global Settings

Default Database Access Descriptor (DAD) : |W«bD6

| Apply]

Database Access Descriptor Settings

Database Access Descriptor Name |WebDB

Oracle User Name 1

Oracle Password [~

Oracle Connect String |SKDLworld

Maximum Number of Worker Threads ll

Keep Database Connection Open between Requests? [Yes

Default (Ноше) Page |WEBDB.home

Document Table |WEBOB.wwv_docyment

Document Access Paul [docs

Document Access Procedure |WEBDB.vwwJe8tdoc.procees_download

SSL ENABLED (CGI ONLY) [ ~ ~ ~ ~ ~ ~

Рис. 12.14. Страница настроек шлюза PL/SQL

процесс из командной строки, открывая окно DOS и вводя подходящуюкоманду запуска или останова:

Q wdblsnr <хост> <порт> startwdblsnr <хост> <порт> stop

В отличие от утилиты Listener Control, ввод wdblsnr без параметровне приводит к отображению списка возможных команд. В моей конфигу-рации команды запуска и останова выглядят следующим образом:

Q wdblsnr marlenes-pc 80 startwdblsnr marlenes-pc 80 stop

Теперь следует привести некоторую дополнительную информациюпо запуску WebDB в UNIX. Как упоминалось ранее, прослушивающийпроцесс WebDB должен запускаться корнем. Чтобы корень мог вы-полнять эти операции, необходимо установить переменные средыWV_GATEWAY_CFG и LD_LIBRARY_PATH. Например, в оболочке Когп(ksh) для определения переменных нужно ввести примерно следующее(предположив, что переменная $ORACLE_HOME установлена):

12*

Page 358: Oracle 8i Networking 101

340 Глава 12

Q $ export WV_GATEWAY_CFG=$ORACLE_HOME/webdb/listener/cfg/wdbsvr.app

$ export LD_LIBRARY_PATH=$ORACLE_HOME/webdb/lib:$LD_LIBRARY_PATH

Если каталог webdb/lib не существует, вы получите сообщение

G ld.so.1: wedlsnr: fatal libclntsh.so.1.0: open failed. No such directory

Прослушивающий процесс WebDB желательно запускать в фоновомрежиме; для этого добавьте к приведенной ниже команде амперсанд (8с),отделив его пробелом.

О wdblsnr <хост> <порт> [start]stop]

Например, если вы хотите, чтобы прослушивающий процесс былзапущен на хосте MARLENES-PC, использовал порт 80 и работал вфоновом режиме, введите в строке приглашения операционной системыследующее:

Q wdblsnr marlenes-pc 80 start &

Более того, к команде запуска можно добавить параметр nohup.В этом случае прослушивающий процесс продолжит функционированиедаже после завершения работы оболочки, из которой он был запущен.Команда wdblsnr не запускает прослушивающий Процесс в фоновомрежиме автоматически, как команда Isnrctl.

ВниманиеНе пытайтесь изменять владельца и разрешениядля weblsnr так, чтобы он принадлежал корнюи запускался с корневым разрешением, а потомвыполнять его из ORACLE UNIX ID. Этот подходне работает.

Множественные виртуальные хостыWebDB позволяет запускать на одной машине несколько экземпляровпрослушивающего процесса WebDB, называемых виртуальными хостами.Запуск множественных экземпляров возможен только из командной стро-ки. В следующем примере запускаются два экземпляра прослушивающегопроцесса, использующих разные адреса. Один экземпляр привязан к ад-ресу www.marlenesite.com, а другой — к адресу www.nelsonsite.com.

Q start wdblsnr -console www.marlenesite.com 80 startstart wdblsnr -console www.nelsonsite.com 81 start

Из окна служб Windows NT можно запустить только один прослушива-ющий процесс. Файл конфигурации задан переменцой wv_gateway_cfg,а при использовании окна служб эта переменная может иметь толькоодно значение. Чтобы обойти эту проблему и запустить более Одногопрослушивающего процесса, можно написать сценарий, которыйустанавливает значение переменной и считывает нужный файл конфигу-рации перед запуском очередного экземпляра. Простой командныйфайл, запускающий два экземпляра, мог бы выглядеть так:

Page 359: Oracle 8i Networking 101

Прослушивающий процесс WebDB 341

Q SET WV_GATEWAY_CFG=D:\Oracle\OraWebDB\listener\cfg\wdbsvr.appstart wdblsnr -console www.marlenesite.com 80 startSET WV_GATEWAY_CFG=0:\Oraele\OraWebDB\listener\cfg\wdbsvr2.appstart wdblsnr -console www.nelsonsite.com 81 start

Чтобы этот файл автоматически запускался при загрузке машины, вWindows NT можно отредактировать реестр, воспользовавшись програм-мой regedit. Задача состоит в том, чтобы добавить полное имя командно-го файла в следующий раздел реестра:

Q \HKEY_LOCAL_MACHINE\SOF™ARE\Microsoft\Windows\CurrentVersion\Run

Перейдя в этот раздел, раскройте меню Edit и создайте новый строко-вый параметр. Его имя может быть любым, поэтому выберите что-нибудьвроде "WebDB Listener", а в качестве значения укажите местонахождениекомандного файла.

ВниманиеКак уже упоминалось в других главах, редактированиереестра Windows NT — довольно рискованное занятие,поэтому перед любыми изменениями в реестределайте его резервную копию.

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

Как было показано в таблице 12.2, один из разделов страницы на-строек прослушивающего процесса WebDB предназначен для ото-бражения физического каталога в виртуальный каталог. Для доступак этой странице нужно запустить Web-браузер и ввести адресhttp://<BaiH_xocT:nopT>/admin_/listener.htm. В моем случае этот адресимеет вид http://marlenes-pc:80/admin_/listener.htm. На рис. 12.15 пока-зана та часть страницы, которая относится к отображению каталогов.

Обратите внимание на инструкцию, приведенную над полями PhysicalDirectory/Virtual Directory, в которой говорится, что вы должны завер-шать каждое имя каталога слэшем. Чтобы использовать прослушиваю-щий процесс WebDB для доступа к статическим файлам, необходимовыполнить следующие действия:

1. Скопировать статические файлы, к которым нужно обеспечитьдоступ, в любой каталог.

2. Ввести имя этого каталога в поле Physical Directory.

Page 360: Oracle 8i Networking 101

342 Глава 12

Ele Е<* У"» Fjvoi». 1«*'И*

v * "..,;•* . е--®"- <й t © а /<эBack ' • FwwH Stop Reft»* Horn* ] S««ch Ftvofitef Htexy

А**ем [Ю r //marter*«fcA^eeOB/ad fl*len«.htm?icr«M-WEeDB

Directory Mappings

Be sure to add a trailing «lash to each file-syitem and virtual directory na

Phyiieal Directory - : Virtual Directory|DWrode\QraWebDBV*ebdb\imagM\ fimo^es/

1 . ]

... J.

'ЛИ*''! *"«)

B»ew.... ."•'• . ;•:... ' - : > ,.', ••'.,-. . . . j . ' . . ' • . . . .,;• :' •

ИIB- & -иг . :

r : M«l Print •:,;•£* .

3 ,?G° '; L»k> :^J

n». --,r«f:, ,. '•,;.•• .:,,

J

• : : i.K.-. • S ' • ' ' jl i ' : : ' • ; ' ' 'j'i :;'if iiffltift •

JТ } ^ local rriraoet: ^

Рис. 12.15. Отображение каталогов на странице настроекпрослушивающего процесса WefeDB lt л

3. Ввести в соответствующее поле Virtual Directory короткое имя, кото-рое будет ассоциировано с именем физического каталога, и щелк-нуть на кнопке Apply.

Как видите, все очень просто. Единственное ограничение — файл дол-жен принадлежать к одному из типов MIME, распознаваемых прослуши-вающим процессом. Эти типы были перечислены в таблице 12.3. Чтобыдобавить новый тип, введите в левом столбце списка MIME Types его на-звание, а в правом — соответствующие расширения файлов. Чтобы прове-рить, распознает ли прослушивающий процесс WebDB новоеотображение каталога, можно выполнить простой тест, обратившись избраузера к файлу с использованием следующего синтаксиса:

Q ИМр://<имя_сервера>:<порт>/<каталог>/<имя_файла>

Возможно, вам уже надоели примеры из Windows NT, поэтому рас-смотрим, каким способом Ян Фиклинг тестировал отображение каталогав своей среде UNDC. Он скопировал несколько htm-файлов из каталога$ORACLE_HOME/webdb/listener/cfg/*.htm в каталог /tmp/testhtm, настранице конфигурирования прослушивающего Процесса WebDB отобра-зил /tmp/testhtm в /testhtm/ и убедился, что моэкет загрузить в браузерHTML-документ http://averiger:80/testhtm/dbd6wn.htm.

• . . . • - . ' • .3 . I ! . . : . . : . .- . а£ 5'ЙЧ|> ';>",-•/. бП ЬглШйч

Параметры конфигурацииХотя ручное редактирование файлов конфигурации рекомендуется толь-ко опытным пользователям WebDB, все же вам следует хотя бы посмот-реть, какие параметры содержатся в этих файлах, По этой причине нижеприведен полный список параметров с краткими описаниями.

Имейте в виду, что существуют два разных файла параметров:wdbsvr.app и wdbsvr.cfg. В таблице 12.4 перечислены параметры, содержа-щиеся в файле wdbsvr.app.

Page 361: Oracle 8i Networking 101

Прослушивающий процесс WebDB 343

Таблица 12.4.Параметры wdbsvr.app

Параметр Описание

[WVGATEWAY1

defaultDAD

administrators

adminPath

debugModules

(DAD.WebDB]

connect_string,

rnlipassword

Отмечает начало раздела параметров шлюза.

Указывает путь к DAD (дескриптору доступа к базе данных),используемому по умолчанию. Если конечный пользователь вводитURL WebDB, не указывая DAD, то отображается домашняя страницадля DAD по умолчанию.По умолчанию: WebDB

Позволяет указать пользователей, которые будут иметь доступк страницам администрирования WebDB (gateway.htm и listener.htm).По умолчанию здесь стоит "all", то есть доступ разрешен всемпользователям. Чтобы защитить эти страницы от несанкционированногодоступа, введите список пользователей (администраторов), разделяяимена запятыми. Пример: administrators = user1,user2,user3@webdbТолько те пользователи, которые войдут под именами useM, user2или userS, указав правильный пароль, смогут обращаться к страницамнастроек на хосте WebDB (используя строку соединения типа @webdb).По умолчанию: АИ

Виртуальный каталог, содержащий файлы конфигурации шлюза.Например, для отображения страницы с настройками шлюза конечныйпользователь может ввести адресhttp://myhost/WebDB/admin_/gateway.htm?schema=WEBDB,где /admin_ = adminPath.По умолчанию: /adminj

Предназначен для подробного протоколирования. Этот параметр следуетустанавливать только в том случае, когда возникает проблемаи для помощи в ее разрешении представитель Oracle требуетсоответствующую информацию.По умолчанию: закомментирован

Отмечает начало первого раздела параметров DAD. В данном случае DADназван "WebDB". Имя DAD определяет, какой URL будет иметь WebDB.Вы можете ввести здесь другое имя.По умолчанию: WebDB

При использовании удаленной базы данных укажите здесь TNS-псевдо-ним. В случае локальной базы данных оставьте этот параметр пустым.По умолчанию: значение отсутствует

Пароль учетной записи базы данных Oracle. Обычно он вводитсяпри установке WebDB, но вы можете его изменить, присвоив этомупараметру новое значение. Примечание: для DAD типа public всегдаследует указывать имя пользователя и пароль, чтобы пользователямкатегории public не требовалось проходить аутентификациюпри обращении к сайту WebDB.По умолчанию: значение отсутствует

Page 362: Oracle 8i Networking 101

344 Глава 12

Таблица 12.4 (продолжение)Параметры wdbsvr.app

Параметр Описание

username

default_page

documentjable

document_path

document_proc

after_proc

before_proc

reuse

conmax

Имя пользователя учетной записи базы данных Oracle. Обычно оновводится при установке WebDB или при создании новых WebDB-сайтов,но вы можете его изменить, присвоив этому параметру новое значение.По умолчанию: WebDB

Домашняя страница WebDB, используемая по умолчанию.По умолчанию: webdb.home

(Только для DAD, относящихся к средствам WebDB Site Builder.)Имя таблицы базы данных, в которой хранятся загруженные извнефайлы. Значение по умолчанию основано на имени схемы, в которойсоздается WebDB-сайт.По умолчанию: webdb.www_document

(Только для DAD, относящихся к средствам WebDB Site Builder.)Путь в составе URL текущей установки, определяющий местонахождениедокумента, на который производится ссылка. Значение по умолчаниюосновано на имени схемы, в которой создается WebDB-сайт.По умолчанию: Docs

(Только для DAD, относящихся к средствам WebDB Site Builder.)Имя процедуры, используемой для загрузки и выгрузки документов.Значение по умолчанию: основано на имени схемы,в которой создается Web-сайт.Например: webdb.www_testdoc.process_download

Хранимая процедура, которая должна выполняться после любойдругой хранимой процедуры.Например: after_proc = webdb.show_footerЭта процедура будет отображать нижний колонтитул послевыполнения основной процедуры.По умолчанию: закомментирован

Хранимая процедура, которая должна выполняться перед любойдругой хранимой процедурой.Например: before_proc = webdb.showjieaderЭта процедура будет отображать верхний колонтитул перед

выполнением основной процедуры.По умолчанию: закомментирован

Определяет, будет ли соединение с базой данных сохраняться открытымпосле обработки одного HTTP-запроса с целью ускорения обработкипоследующих запросов. В большинстве конфигураций следует устанав-ливать значение Yes для получения максимальной производительности.По умолчанию: Yes

Максимальное количество одновременных соединений с базой данных,используемых для обслуживания приложений.Совет: это значение нужно подбирать в зависимости от ресурсов серве-ра и количества пользователей. Ориентировочное значение для системсреднего размера (приблизительно 200 пользователей) — от 5 до 10.По умолчанию: 4

Page 363: Oracle 8i Networking 101

Прослушивающий процесс WebDB 345

Для каждого WebDB-сайта создаются три DAD: общий (public), част-ный (private) и административный (administrator). Конфигурированиекаждого из них должно выполняться в соответствии с таблицей 12.4.

В таблице 12.5 перечислены параметры, содержащиеся в файлеwdbsvr.cfg.

•- . • •. . (<i;i • > ; . :.',к, • •••'•;

Таблица 12.5.Параметры wdbsvr.cfg

Параметр Описание

[SERVER]

HomePage

DefaultMimeType

LoggingLevel

MaxCGIThreads

MaxFileThreads

MaxDispatcherThreads

MaxQueueSize

Отмечает начало раздела параметров сервера.

Домашняя страница WebDB, используемая по умолчанию.Замечание: этот параметр имеет приоритет над параметромdefaultDAD из файла конфигурации шлюза (wdbsvr.app).

Тип MIME, используемый прослушивающим процессом при невоз-можности определить тип MIME для текущего HTTP-запроса.По умолчанию: Application/octet-stream

Определяет объем информации, которая будет записываться в фай-лы журналов, расположенные в каталоге журналов прослушивающегопроцесса. Эту информацию можно использовать с целью отладки идля анализа производительности. Чтобы понять, какой информациивам достаточно, попробуйте установить следующие уровни протоко-лирования: NONE, STANDARD, TEST, ETEST, EXTENDED, ERROR,DEBUG, EDEBUG.По умолчанию: EXTENDED

В настоящее время этот параметр используется Oracle Reports,а не WebDB CGI.По умолчанию: 5

Максимальное количество потоков, обслуживающих статическиефайлы файловой системы. Как правило, увеличение количествапотоков повышает производительность, однако здесь нужноучитывать ограничения операционной системы.По умолчанию: 5

Максимальное количество потоков, используемыхдля диспетчеризации HTTP-запросов. Как правило, увеличениеколичества потоков повышает производительность, однако здесьнужно учитывать ограничения операционной системы.По умолчанию: 7

Запросы на соединения, поступающие от клиентов, ставятсяв очередь. Этот параметр определяет максимальную длину очередизапросов для сокета прослушивающего процесса. Если очередьзаполнена, клиент получит сообщение об ошибке"Connection Refused".По умолчанию: 64

Page 364: Oracle 8i Networking 101

346 Глава 12

Таблица 12.5 (продолжение)Параметры wdbsvr.cfg

Параметр Описание

ReceiveTimeOut

OnlyClient

i . ! •:"

[DirMaps]

[CGIDirMaps]

[MIMETypes]

Максимальное время (в секундах), в течение которогопрослушивающий процесс будет ожидать получения данных по сети.При установке этого параметра следует учитывать характеристикиимеющихся сетевых соединений. Возможно, что для медленной сетизначение потребуется увеличить.Например, следующая строка устанавливает двухминутный тайм-аут:ReceiveTimeOut=120По умолчанию: 60 (секунд)

Предназначен для ограничения доступа к прослушивающемупроцессу WebOB. Если указать в этом параметре определенныйIP-адрес, то к прослушивающему процессу сможет обращатьсятолько клиент с этим адресом.Пример: OnlyClient = 144.25.84.254

Отмечает начало раздела отображений каталогов. Здесь задаютсяотображения виртуальных каталогов, указываемых в URL, в физиче-ские каталоги файловой системы.

Отмечает начало раздела CGI-отображений каталогов. В настоящеевремя этот раздел используется средствами Oracle Reports и OracleForms.

Отмечает начало раздела с описаниями типов MIME. Каждая строкасодержит тип файла и список расширений, которые распознаютсяWebDB. Типы MIME используются при возврате браузерурезультатов HTTP-запроса.По умолчанию: все типы, перечисленные в таблице 12.3.

Диагностика проблем прослушивающегопроцесса WebDB

К сожалению, о возникновении проблем с прослушивающим процессомWebDB можно узнать только по сообщению браузера, которое само посебе мало о чем говорит. Чтобы сэкономить время при определении реа-льной причины, следует применять поэтапный подход, подобный тому,который описан в главе 14 для прослушивающего процесса Net8.

Как правило, проблемы с прослушивающим процессом WebDB обу-словлены конфликтами с другими процессами, запущенными на той жемашине. По умолчанию, домашняя страница WebDB расположена по ад-ресу пИр://<имя_вашей_машины>:<номер_порта>/\уеЬс1Ь/, где webdb —это DAD, указанный в файле конфигурации. Когда прослушивающемупроцессу WebDB назначен порт 80, номер порта можно не указывать.

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

Page 365: Oracle 8i Networking 101

Прослушивающий процесс WebDB 347

Наиболее очевидная причина заключается в том, что прослушиваю-щий процесс WebDB просто не установлен или не запущен. Чтобы прове-рить, так ли это, в Windows NT нужно открыть окно Services ипосмотреть, присутствует ли в списке служб запись для Oracle WebDBListener, и если да, то отмечена ли эта служба как запущенная. В UNIXнужно проверить, запущен ли системный процесс wdblsnr.

Даже если прослушивающий процесс по всем признакам установлен изапущен, Это совсем не означает, что он функционирует нормально. Что-бы проверить, действительно ли прослушивающий процесс способен'обслуживатьHTTP-запросы, откройте браузер и попробуйте обратитьсяк следующей странице: http://<HMfl_Banie&_MaiimHbi>:<nopT>/webdb/admin_/gateway.htm. Если браузер выдаст сообщение о тайм-ауте, то ве-лика вероятность, что прослушивающему процессу был назначен порт,используемый другим процессом. Порт 80 обычно прослушивается неско-лькимиразными процессами, работающими с протоколом HTTP. Еслипри конфигурировании вы указали этот порт, а он используется другимпрослушивающим процессом, то ваш прослушивающий процесс можетне HMetti к ЧЙё^т доступа. В любом случае стоит перезапустить прослуши-вающий пр&цеСс^и попытаться обратиться к нему еще раз.

Если конфликты портов не выявлены, следует зайти на страницу на-строек шлюза PL/SQL. Если вы не видите этой страницы, то возможно,что при Определении DAD была допущена синтаксическая ошибка. Пара-метр с названием Keep Database Connection Open чувствителен к регист-ру — первая буква должна быть прописной. Такая мелочь, как записьзначения этого параметра целиком в верхнем или нижнем регистре, мо-жет привести к неправильной работе прослушивающего процессаWebDB.

.' : . " . ' г . 1 . /

'. • . 3 3 ••"'" •'•• ' • ' i ' 111

ЮС'П ОТ:)ШЧ>:; ;Ш1Л'(К'иК1Г1 - ' " . . • • •.-."•'..' ; < •

• ; • ; . . . '.(.'••i"~,'i ;"''O')'JJHH!!> ММД!ГЛ! . • • • - • : • • >qj • , r ; ' i " • .' ' ; 'Jt

•:,. N • RII к1лии-щэдг(пяЕ MiyifbDj.suKjH . • '• чкк1 Husi.i1•J\E о и : ч: /KOROiiDfiq ЯО('э'А' ,з.пьншс('о книпил-юд^ош! fiijr,OM— dbdav* ;;. , dbd3W\<KTQo.i;..G'.>w:OH>:<!«JHK!U£r/'._HMiu-:a_RMiVM'3UJOiEmn(JVi.:>oqn сдчоЛ .нп.м^цучмфноя з'г.Аеф 8 . : ; -

.tn7,(l,r;Cj;/iV3H ОНЖОМВТЦСч; [ЭМОН 38 ТЦОП НЭКВ1 R1 Ю

ие RDt'i'>;;u-.!4t'.x;r.i .kiH!'i-i.M';;'. ',) " • '.»яни.опыа Я Ld'jVJ •" ни ij •

Page 366: Oracle 8i Networking 101
Page 367: Oracle 8i Networking 101

Усовершенствованныесредства безопасностиOracle

Page 368: Oracle 8i Networking 101

350 Глава 13

эчу задать вам очень личный вопрос. Что из перечисленного нижедает вам чувство защищенности? Стабильная работа, немного денег в бан-ке на черный день, достаточное количество еды в холодильнике, чтобыпрокормить себя и свою семью в течение нескольких дней, исправныйавтомобиль, комфортное жилье? Все эти критерии очень субъективны.То, что позволяет вам ощущать себя в безопасности, может не вызывать уменя такого же чувства, поскольку у каждого из нас разные потребностии разные взгляды на жизнь. Даже само слово "безопасность" может иметьдля вас совсем иное значение, нежели для меня.

Теперь другой вопрос. Что приходит вам в голову при словах "компью-терная безопасность"? Закрытая на замок комната с оборудованием, кудамогут войти лишь доверенные лица? Может быть, компьютерная безопас-ность ассоциируется у вас со словами "брандмауэр", "шифрование RSAили DES" или с определенными марками программного обеспечения,такими, как Kerberos, CyberSafe, RADIUS? А какое место среди вашихпредставлений о безопасности занимает биометрика — сканирование от-печатков пальцев, лиц или глаз и последующее сравнение полученныхизображений с теми, что хранятся в базе данных? Приобрело ли для васслово "безопасность" новый смысл с развитием электронной коммерциии Интернет-коммуникаций типа "business-to-business" (В2В)?

В этой главе мы рассмотрим семейство продуктов под названиемOracle Advanced Security (усовершенствованные средства безопасностиOracle). Ранее оно состояло из двух различных программных пакетов:Oracle Advanced Networking и Secure Network Services. Имейте в виду, чтоэти продукты поставляются за отдельную плату. Лицензия на использова-ние усовершенствованных средств безопасности Oracle не входит вбазовый пакет OracleSi, Release 2. Кроме того, вам потребуется лицензи-ровать и установить OracleSi Enterprise Edition, поскольку усовершенст-вованные средства безопасности и их компоненты недоступны в OracleSiStandard Edition.

Я привожу описание этого набора продуктов для того, чтобы вы моглиознакомиться с его возможностями и лучше понять, каким образом Net8позволяет обеспечивать безопасность в Oracle.

Обзор усовершенствованных средств^ , - . • . • ! . • • - ! • • : II >MJ

безопасности OracleСейчас я задам вам еще один вопрос. Как вы думаете, что безопасней — за-казывать товары по телефону, через Интернет или делать покупки лич-но, используя платежную карту?

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

Page 369: Oracle 8i Networking 101

Усовершенствованные средства безопасности Oracle 351

платежную карту. Даже если вы не спускаете с карты глаз, риск все равносуществует. Каждый раз, когда вы делаете покупку с помощью VISA,MasterCard, American Express, Discover или какой-либо другой карты, выдаете возможность другому лицу снять с нее лишние деньги или скопиро-вать номер.

Не так давно газеты писали о женщине из Нью-Й0рка, арестованнойза копирование номеров платежных карт. Работая в ресторане, она счи-тывала карты клиентов дважды — в автомат и в свой карманный компью-тер — и попалась только случайно, когда один из клиентов заметил ее

'манипуляций и сообщил об этом менеджеру.Теперь, когда я убедила вас никогда больше не пользоваться платеж-

ной картой, рассмотрим некоторые другие рискованные ситуации, свя-: занные С кбмпьютерами и компьютерными сетями. Как вы видели на

''•'•'•''протяжений'1 всей Книги, передача пакетов данных к месту назначенияЬсущёсгвлЙётСя по кабелям, радиорелейным линиям и спутниковым кана-

' ( /!лам, Через маршрутизаторы и другое промежуточное оборудование. Этикомпоненты' могут быть не защищены 'от' несанкционированного доступа,

' ЬЬэтому существует вероятность.что кто-нибудь перехватит пакеты и1 прочитает (или модифицирует) их содержимое. Имея под рукой програм-" му-анализа¥б^ п^йтоколов sniffer и зная, как ей пользоваться, вы можете

"' с легкостью просматривать трафик своей сети.Точно так1 же, как служащий ресторана потенциально может восполь-

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

Теперь ответьте на такой вопрос: сколько различных паролей вы ис-пользуете в повседневной работе? В периоды наиболее интенсивной ра-боты по управлению базами данных мне приходилось помнить более 40различных паролей. Конечно, мы пользовались системой, которая облег-чала запоминание паролей всех серверов, баз данных и учетных записей,но без путаниць! все же не обходилось. Что касается пользователей, тообычно от них требуется помнить более одного пароля для доступа к раз-ным приложениям. Что чаще всего делает пользователь, сталкиваясь снеобходимостью запомнить несколько паролей? Вот мои наблюдения:

• Запийй£|Щ$|хШд;самоклейщихся-••лйсткаЗби приклеивает эти листкив "незаметных" местах, например, на боковой стороне монитораили внутри ящика стола.

•»" При самостоятельном выборе пароля использует одну и ту же (илислегка мбдйфйцйройанную) комбинацию символов для каждой учет-ной записи.

-^мшф.1 ••-.. У.М/ШИ гоэыш -л; • • • ' < ; : i t ; - ' : . j . - . ' i xiri't: '.•>•• > " . : : i • • ' • • >..„; . _ , * , При самостоятельном выборе пароля использует легко;угадывае-., , мыв; слова, например, имена членов семьи, домашних животных

• г , : , ; или сказочных персонажей. : •

Page 370: Oracle 8i Networking 101

352 Глава 13

Наконец, самое очевидное, что может сделать пользователь со слож-ным паролем,— это забыть его. Последнее доставляет администраторам иобслуживающему персоналу больше всего хлопот. Как-то мне попалась наглаза статья, где сообщалось, чТо все служащие муниципалитета Сан-Дие-го при входе на компьютеры теперь идентифицируются по отпечаткампальцев, а не по именам и паролям. Зачем муниципалитет реализовал та-кой способ доступа? Все очень просто -- служащие постоянно забывалисвои пароли, что сильно осложняло управление системой. Если у вас естьсезонный абонемент на посещение Диснейленда в Орландо, штат Флори-да, то на входе в парк вам потребуется "предъявить" свои отпечатки паль-цев, а в магазинах штатов Техас и Аризона эксплуатируется около 180банкоматов с биометрическими устройствами, распознающими лица кли-ентов. Подобные автоматы можно встретить и во многих казино в Нева-де. В ближайшем будущем портативные компьютеры марки Compaq будутраспознавать своих законных владельцев, сканируя отпечатки пальцев.

Если посторонние лица могут получить доступ к вашим данным в про-цессе их передачи по сети из одного места в другое, то они получают воз-можность модифицировать эти данные с выгодой для себя и с ущербомдля вас. Предположим, что вы переводите 100 долларов со своего текуще-го банковского счета на сберегательный счет. Злоумышленник, получив-ший доступ к этой транзакции, может изменить сумму со $100 на $10000и зачислить ее на свой счет вместо вашего.

Как видите, и целенаправленная кража идентификационных данных,и простая небрежность пользователей могут представлять угрозу безопас-ности компьютерных систем и данных, которые вы пытаетесь защищать.

Язык компьютерной безопасностиОбзор средств безопасности Oracle следует начать с изучения общейтерминологии, чтобы понимать тот язык, на котором будет вестись из-ложение. В таблице 13.1 приведены некоторые термины из областикомпьютерной безопасности, которые используются чаще всего, и даныих краткие объяснения. Некоторые определения взяты из руководстваOracle Advanced Security Administrator's Guide, Release 8.1.6.

Таблица 13.1.Общие термины, относящиеся к компьютерной безопасности

Термин Объяснение

Список управления доступом Определяет уровни доступа к данным для отдельных(Access Control List, ACL) клиентов или групп клиентов.

Алгоритм (безопасности) Компьютерная программа, реализующая методышифрования и дешифрования.

Аутентификация (authentication) Проверка подлинности пользователя, устройства илидругого субъекта перед тем, как ему будет разрешен доступк ресурсам компьютерной системы.

Page 371: Oracle 8i Networking 101

Усовершенствованные средства безопасности Oracle 353

Сертификат (certificate)

Центр сертификации(certificate authority)

Таблица 13.1 (продолжение)Общие термины, относящиеся к компьютерной безопасности

Термин Объяснение

Авторизация (authorization) Выдача разрешения на доступ к объекту или множествуобъектов операционной системы или базы данных.Разрешение может быть предоставлено пользователю,программе или процессу. В базе данных Oracle разрешения

t , предоставляются либо через роли, либо на индивидуальной. , . , ' . основе.

Электронный сертификат, подтверждающий, что имя,идентификационная информация и открытый ключшифрования действительно принадлежат данному субъекту.Сертификат подписывается доверенной третьей стороной —центром сертификации. Обычно сертификат содержитинформацию о выдавшем его центре сертификации, серий-ный номер, срок действия, а также информацию о правахи привилегиях, ассоциированных с этим сертификатом.

Доверенная третья сторона, подтверждающая, что другиесубъекты действительно являются теми, за кого себявыдают. При генерации сертификата центр сертификациив первую очередь проверяет идентификационные данныепользователя и убеждается, что они не занесены в списоканнулированных сертификатов, а в завершение подписываетсертификат, используя свой личный ключ. Чтобы клиентыи серверы могли проверять подписи, сгенерированныецентром сертификации, он публикует свой собственныйсертификат и открытый ключ. Центры сертификации могутбыть внешними и внутренними по отношению к компании.

Список всех субъектов, чьи сертификаты былианнулированы или срок действия которых истек.

Набор алгоритмов аутентификации, шифрования и контроляцелостности данных, используемых при обменесообщениями между узлами сети. Например, в протоколеSSL предусмотрена процедура согласования, в ходе которойдва узла договариваются о том, какое семейство шифровбудет использоваться при обмене сообщениями.

Стандарт шифрования данных (Data Encryption Standard),принятый в качестве национального стандарта США.

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

Список аннулированныхсертификатов(certificate revocation list, CRL)

Семейство шифров(cipher suite)

DES

Цифровая подпись(digital signature)

. . . . .

Page 372: Oracle 8i Networking 101

354

Таблица 13.1 (продолжение) ««к»-**- *•,) М s' sОбщие термины, относящиеся к компьютерной безопасности

Термин ' Объясне1)ие ',.мГ~ ' '

с fiTTPS Протокол лередачИ'Гипертекрр, (НДР),, ис|_ ,; протокол Secure'. Spcket Layer (SSL): SSL выступаете роли"' ''подуровня "прикладного уровня, реализуемого протоколом

Идентификационные данные " Комбинация открытого ключа и других общеизвестныхён&пдаий^жи з даж йонгндэф ^идентификационных' данных потййатрелй (в ЧаётноШр

|«йдв» < v ; •j.-wiv:,'! ••!-.:•: .^: -;; адреса 'ЭлектронноЛ почты), подтверждающая, что субъект.( .; •,' '!'••• • • -, • ?ам • .действитешскявляется тем, за кого он себя выдает.

" MD5 " ' Алгоритм! используемый для контроля целостности данных.Генерирует уникальное 128-битное число (дайджест

sTffiosd.u'-' ,: :; leteu t в'файЬе ;й8ШййЩбвыходное значение MD5 также станетo! :о;!; 9!*e)WaE»i N з№$^шФШШй£(})айл так, чтобы алгоритм MD5хм*У9инфзфОТ!№Кр1 хиннегйчф"ирб»а№йМ1й6го такое же значение, как для исходного

Служба сетевой аутентификаций и^Средство-аугёй^йфМкации пользователей,(network authentication service) серверов в распределенной средё^ЙрёдйтаеШёт собой'

. . . , , . . ,. . .,, |Г.... репозитррий, в.вдором хранится информация ,•;•;,-; хо пользователях, сетевых службах, к которым этим

„„, ..... _____ ..... . .............. „., ..... -_ ...... ------------------- полыовате^мразрешвн.достуя-,-а-такжев1УН1ентах-и .....серверах сети. Может размещаться на отдельной машине

-мшщт MMWHwp?*^1 t«Kwq< или .входить, в cocraft другого еервера;./- , „ / > . : . ;•:чп Шифрование с Открытым ключом ' Метод шифрования; при 'котором1 отправитель шифрует

(public key encryption) сообщение'биедаьзованиёмюткрЫтого'клЮч&Получателя,а получатель расшифровывает сообщение с использованием

• :/; 0 своего личного -ища. ::; : ;:,:. ;;с" 5::; ' .^v.^JV C j»£o

Пара открытый/секретный ключ Множество из двух математически зависимых: чиеея. •• : £;.:*Одно называется открытым .ключом (publiq key), а другое —

"*• (ii >; 'секретным ключом (private Кё^/СЛ-фйтый'ключ обычн'о" 1; ' ! • ' ; 'делается •Общ;едЬступньШ,:т6гда; kaic личный' ioiKW известен

/,<:Л sinjsuuqtpwia iveiiU.6i iw толысо его владельцу; •Лй4ийй'клю'чг10зв6ляё^ получателю.:.,;!/. ;;. Я;'- o'fv ,-:i гий^ин'йо •/: раси^фровмьсообщение; которое было'-зашифр'ован& •'

с использованием его открытого. <кяюча; Сообщение,? т<«

-IUS макай тик ИЙ OTJ- ,-м.41!,л

i/(, Seeure Hash Algorithm (SHAJor'ci D Алгоритм; 1онвсвлоп -Ai-A ,1ыщ<.щ дои т/<:|Любога рообщения)С1ДиЧ10й'менев;гб4 бимРаботает ни

немного медленнее, чем MD5, но считается более-о-кмиустойчивым к атаке прямым перебором (brute-force collision)и атаке метод'ом WHBdpcM(fn\/ersrio'ri attktt).& ;

о ;; (' ;i S v x w ч1 u J s i p Q O n id I /' ! - " р т sSecure Socket Layer (SSL) Протокол для защиты сетевых соединений, являющийся

-мум ыондо отгаэнй :м(х;фнп! '.И| Мь1Ш^НШ! нд |Ьтйм;ЩВёст1ёЧ1 ёутёШф^ ^ч uH'.wo о (.4 кшйф|иманйгм«0йфойь'( лоеШШй!да«АУ ^

Page 373: Oracle 8i Networking 101

безопасности Oracle 355

Таблица 13.1 (продолжение)Общи* термины, относящиеся и компьютерной безопасности

ТерпитБилет службы (service ticket)

Сеансовый ключ (session key)

Смарт-карта (smart cert)

Электронный бумажник (wallet)

Локатор ресурсов электронногобумажника(wallet resource locator)X.S09

Доверенная информация, используемая для аутентификацииклиента перед службой.Ключ, которым обладают как минимум две стороны,обычно клиент и сервер.Устройство наподобие кредитной карты, в которое встроенаинтегральная схема, хранящая идентификационные данныепользователя (как правило, имя и пароль).Смарт-карта считывается специальным устройством клиентаили сервера.Механизм для управления набором удостоверенийбезопасности (security credentials) пользователя.Обеспечивает хранение и извлечение удостоверений,полученных от различных криптографических служб.Полный путь, определяющий местонахождениеконкретного электронного бумажника.

Формат данных ISO, используемый для сертификацииоткрытых ключей.

Теперь, когда вы познакомились с некоторыми основными термина-ми, посмотрим, какие средства безопасности входят в состав пакета Orac-le Advanced Security и каким образом они помогают защищать данные.

Обзор усовершенствованных средствбезопасности Oracle

Пакет Oracle Advanced Security содержит много возможностей по защитеданных, представляющих ценность для компании. В частности, данныеможно передавать в зашифрованном виде, используя шифрование RSAили DES. Предвидя ваши вопросы, попробую объяснить, что представля-ют собой эти методы.

В главе 4 приводился пример очень простого шифра, чтобы пояснитьидею трансляции имен сетевых служб. Вспомните, что мы записывали ал-фавит сначала в обычном порядке, начиная с буквы а, а потом со сдвигомна несколько позиций, располагая буквы друг под другом, как показанониже:

Q a b c d e f g h i j k l m n o p q r s t u v w x y ze f g h i j k l m n o p q r s t u v w x y z a b c d

Это называется простым подстановочным шифром: вместо одной бук-вы сообщения просто подставляется другая. Его очень легко использо-вать, но и столь же легко взломать. Думаю, что вы без труда смоглирасшифровать сообщение, которое приводилось в главе 4.

Page 374: Oracle 8i Networking 101

356 Глава 13

Поскольку с помощью компьютеров можно раскрывать гораздо болеесложные шифры, чем этот, для сохранения;конфиденциальности данныхразрабатывались все более и более стойкие методы шифрования. Наибо-льшее распространение получили два из них — RSA и DES. •

RSA, DES, MD5 и SSL ;

Как вы думаете, что лучше всего предпринять для сохранения эффектив-ности метода шифрования? Один из вариантов — генерировать случай-ный ключ шифрования каждый раз, когда нужно что-то зашифровать.Постоянное изменение ключа шифрования послужит серьезным препят-ствием для злоумышленников, намеревающихся украсть данные. , .

Под шифрованием RSA здесь понимается шифрование по алгоритмуRC4, который является собственностью компании RSA Data Security.В этом алгоритме используется секретный ключ, генерируемый случай-ным образом для каждого пользовательского сеанса. Изменение ключашифрования с каждым сеансом позволяет надежно защитить данные, пе-редаваемые между клиентом; и сервером на протяжении сеанса. Клиент исервер могут запрашивать или требовать шифрование. Утверждается,что накладные расходы на шифрование и дешифрование оказывают ми-нимальное влияние на производительность.

Когда алгоритм шифрования применяется к сообщению, ключ шиф-рования может иметь длину 40 бит, 56 бит или 128 бит. Очевидно, чточем длиннее ключ шифрования, тем труднее раскрыть зашифрованноесообщение. Законы США ограничивают экспорт программных продук-тов, в которых используется шифрование с ключами длиннее 40 или56 бит. Этим ограничениям удовлетворяет экспортная версия Oracle.

В чем различие между шифрованием RC4 и DES? Главным образом втом, что DES является национальным стандартом США, поэтому обязате-лен к применению в финансовых и многих других учреждениях. Текущийстандарт имеет 56-битный ключ шифрования, но в целях обратной совме-стимости поддерживает и 40-битный ключ.

Итак, клиент шифрует свое сообщение и передает его серверу. Серверрасшифровывает полученное сообщение и возвращает зашифрованныйответ, который затем расшифровывается клиентом. Все это хорошо, нокак убедиться, что сообщение не было подменено при передаче? Как про-верить, что оно не было перехвачено и воспроизведено в искаженномвиде?

Анализ пакетов, передаваемых по сети, на формальном языке называ-ется "мониторингом локальных сетей и линий связи". Он является пас-сивным и не нарушающим — читай "невидимым"; Иначе говоря, просмотрпакета не изменяет его контрольной суммы. Если же пакет перехватыва-ется и изменяется, то для новых данных будет сгенерирована новая конт-рольная сумма.

Вспомните, что контрольные суммы пакетов вычисляются на втором(канальном) уровне модели OSI. (УрЬвни этой модели были перечисленыв таблице 1.3 главы 1.) Чаще всего это делается аппаратно. Контрольныесуммы, обычно называемые циклическим избыточным кодом (CRC),

Page 375: Oracle 8i Networking 101

Усовершенствованные средства безопасности Oracle 357

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

Чтобы обеспечить выявление любых подмен, средства безопасностиOracle присоединяют к сообщению его дайджест, сгенерированный поалгоритму MD5. Этот дайджест представляет собой криптографическуюконтрольную Сумму, которая отличается от стандартной контрольнойсуммы пакета, генерируемой на аппаратном уровне. Если содержимое па-кета будет подменено, то повторно вычисленный дайджест не совпадет стем, который был передан вместе с сообщением.

При использовании протокола SSL целостность данных контролирует-ся с помощью алгоритма SHA (Secure Hash Algorithm). SHA работает мед-леннее, чем MD5, но вырабатывает более длинный дайджест, чтопозволяет надежнее защитить сообщение.

АутентификацияКак вы поступите, если я попрошу вас подтвердить, что вы действитель-но тот, за кого себя выдаете? Скорее всего, вы предъявите паспорт, води-тельское удостоверение, свидетельство о рождении, читательский билетили другой документ. Если там есть фотография, то удостоверить вашуличность не составит большого труда. В противном случае это будет не-сколько сложнее. Мне придется принять в качестве доказательствапредъявленный документ и поверить, что он действительно принадле-жит вам. Глядя на вас, я могу попробовать догадаться, правду ли выговорите.

Перенесем эту ситуацию в компьютерную среду. Теперь мы с вами на-ходимся за разными компьютерами, которые могут быть удалены на лю-бое расстояние. Я вас не вижу и не могу посмотреть ваши документы.Впрочем, если мы работаем в одной сети, отделенной от внешнего мирабрандмауэром, то возможно, что мне будет достаточно ваших идентифи-кационных данных. Поскольку вы смогли войти в нашу сеть, можно пред-положить, что вы действительно тот, за кого себя выдаете.

С другой стороны, вы могли войти в мою систему из Интернета, и тог-да у меня нет абсолютно никакой уверенности;, что вы — это вы. Самымраспространенным методом аутентификации в наши дни является аутен-тификация по имени пользователя и паролю. Если эти данные посылают-ся по сети открытым текстом, то они с большой вероятностью могутбыть перехвачены и использованы третьей стороной. В лакете OracleAdvanced Security версии 8.1.6 аутентификация реализована при помощиадаптеров аутентификации Oracle, поддерживающих ряд стороннихслужб аутентификации — Kerberos, RADIUS и т.д. Чуть ниже мы рассмот-рим эти продукты более подробно.

Page 376: Oracle 8i Networking 101

ist

ЕДИНЫЙ ВХОД («В начале 3T.ip.№.fflaBW:!0 спращивада,'''Скрл1з«<*!й1аролей:8ам приходится по-

- ....... -мнить- одновременна. Согласитесь; что в-и^еале следовало"бы иметь все-го один пароль. Для этого в наборе*' ''ft jpoSykroB Oracle Advanc^f'Security

хирегц1шо.ва»а/вс»змо}кноеть единого- входа, (single sign-on),sioor^af-Hoau30Ba-тель.ттрохадй1^ау*ёнтйфи«аци<о.т:0яько >одй,н раз, при п

,аог! зовйнйогё 'механизма; а 'гютём-^йшЩёт'Йй к мнойсёё'гвемййн* -учетным^ "' ' СТ • - ?• - -

^^йийяй без Й6Шл1»итёльной,;аутентйфийа)ции.ОЙс1е йб'дд^ржива'1етг й'еёколвко 'продуктов независимых производите-

лей, обеспечивающих единый 'вх'од в" систему. Эти продукты кратко опи-саны1 is таблие 13.2/ wbNiVi '-Д- дан этмол ;.-'/дус!М гпз]еуй b»s»98JWi ^di !iud

(;sfn9g£nsiv!

Средства аутентификации от независимых производителей

Продукт Описание

• i ,со.еди нений,, обеспечивающий! аутентификацию j шифрованиеSSL (Secure Socket Layer)

соединений между любыми iЕго можно использовать отдельно или совместно с другими

, • м,: методами аутентификации.; В зависимое»! от,конфигу$ации, , , ;SSL аутентификация может трдбоватйся только для сервера

.,, или для клиента и серверу. , , , , , • - . ',;. :, н, •,

RADIUS (Remote Authentication RADIUS — это протокол клиент/сервер, .обеспечивающийDial-tn User $Шсе)

Kerberos и CyberSafe

аутентификацию при удаленном доступе с использованиемразличных механизмов,'в том чисЛёЧОкен-кйрт, смарт-карти• биомбт^ш.' ' '

При использовании ^овместно с. Oracle dvancgd ?ecurityобеспечивают единый вход и централизованное хранениепаролей, аутентификацию связей -баз данных м: повышеннуюбезопасность PC. КегЬегр8:-г-это система аутентификациипри посредничестве доверенной третьей стороны, основанная

* на разделяемых- секретах и предположении 6 надежноститретьей стороны. CyberSafe' ffusfflroker^ это коммерческийсервер аутентификации на основе Kerberos.

(совместимая с RADIUS) интегральная схема, хранящая идентификационную..'.)ОС|пг;( -информацию (как-правило, шя'гмдоешшн

•6ма1л?-1сартАеню!ьшается)СГ1ечияльным.1уотройством клиентаили сервера. Пользователь может входить в систему с любойраб

5 следом, аутентификации

o-BbigoB (challenge),''пользователь вводит это слрво'в'тбкеЯ-'карту, она генерирует

отбёт, а гУользоба'т^ль п'ередаёт'этбУ? ЫШ' серверу'.

Page 377: Oracle 8i Networking 101

Усовершенствованны» срадстаа безопасности Oracle 359

Таблица 13.2 (продолжение)Средства аутентификации от независимых производителей

Продукт Описана»

Биометрическая Система Identix обеспечивает передачу аутентификационныхаутентификация данных между сервером аутентификации и клиентами,(совместимая с Identix Этот вед аутентификации используется и на машинах клиентов,или RADIUS) и на серверах Oracle. Средства безопасности Oracle допускают

интеграцию других RADIUS-совместимых устройствбиометрической аутентификации.

Bull ISM (Integrated System Продукт компании Bull Worldwide Information Systems,Managemet) предоставляющий системным администраторам

разнообразные инструменты управления. Доступен толькона платформах/UX.

Аутентификация пользователейВ завершение разговора об аутентификации давайте посмотрим, каквыглядит процедура аутентификации пользователя на сервереаутентификации.

1. Пользователь обращается к серверу, посылая запрос службе аутенти-фикации. Для подтверждения своей личности пользователь вводитте или иные идентификационные данные.

2. Сервер аутентифицирует пользователя и возвращает билет илиудостоверение. Удостоверение обычно сохраняется в электронномбумажнике пользователя, расположенном в локальном или центра*лиэованном сетевом каталоге. Билет может содержать дату и/иливремя истечения срока действия.

1. Когда пользователь запрашивает соединение с базой данных Oracle,его удостоверение передается серверу Oracle.

4. Сервер Oracle посылает это удостоверение серверу аутентифика-ции, чтобы проверить его достоверность.

5. Если сервер аутентификации признал удостоверение действитель-ным, сервер Oracle получает соответствующее уведомление.

6. Если удостоверение действительно, сервер Oracle выполняет запрос.В противном случае доступ клиента к базе данных запрещается.

Аутентификация и авторизацияДо сих пор мы рассматривали способы, которыми можно удостоверитьличность. Однако из того факта, что пользователь успешно прошелаутентификацию, еще не следует, что у него есть право на доступ к опре-деленному серверу или базе данных. Даже если пользователь подтвердитсвое право на доступ к системе, необходимо определить, какую информа-цию ему будет разрешено просматривать, модифицировать или удалять.

Page 378: Oracle 8i Networking 101

360 ___ Глава 13

В OracleSi существуют стандартные средства для управления доступомпользователей к данным — роли и привилегии. Однако они могут быть су-щественно расширены за счет использования методов аутентификации,поддерживаемых пакетом Oracle Advanced Security. Например, на плат-форме Solaris поддерживается авторизация в среде распределенных вы-числений (DCE). DCE считается трудной для администрирования, и этодействительно так. Но ее средства безопасности исключительно надеж-ны, и по этой причине она используется, совместно с Enema, во многихбанковских системах.

В главе 5 было рассказано об упрощенном протоколе доступа к катало-гу (LDAP) и его реализации в Интернет-каталоге Oracle. Поскольку сред-ства Oracle Advanced Security допускают интеграцию с каталогами,совместимыми с LDAP версии 3, вы можете использовать Интернет-ката-лог Oracle для хранения данных о пользователях и правах доступа. Приэтом необходимо понимать, какие лицензионные ограничения наклады-ваются на совместное использование двух продуктов. Одни аспекты охва-тываются одиночной лицензией, другие — нет.

Архитектура Oracle Advanced SecurityВ главе 2 мы рассматривали реализацию эталонной модели OSI в Oracle.Как на стороне клиента, так и на стороне сервера компоненты OracleAdvanced Security представлены адаптерами, расположенными нижеуровня Net8 и обеспечивающими доступ к средствам безопасности без не-обходимости изменять или переписывать существующие приложения.Конфигурирование компонентов Oracle Advanced Security сосредоточенониже прикладного уровня, а следовательно, является прозрачным для по-льзователей и прикладных программистов. На практике это конфигури-рование выполняется путем помещения необходимых параметров в файлsqlnet.ora. Параметры sqlnet.ora, относящиеся к средствам безопасности,приведены в приложении А.

В таблице 13.3 показана общая реализация эталонной модели OSI длясервера Oracle.

Таблица 13.3.Реализация уровней OSI в Oracle

Уровень стека Описание ___^_

Программный интерфейс Oracle Отвечает за выдачу ответа на каждое из возможных(Oracle-side Programmatic сообщений, посылаемых интерфейсом вызовов OracleInterface, OPI) (Oracle Call Interface, OCI) на стороне клиента.

.. .. , Например, OCI-запрос на выборку 25 строк вызовет, , OPI-ответ, в котором будут возвращены 25 выбранных строк.

Two-Task Common Устраняет различия в наборах символов, используемыхотправителем и получателем.

Page 379: Oracle 8i Networking 101

Усовершенствованные средства безопасности Oracle 361

Таблица 13.3 (продолжение)Реализация уровней OSI в Oracle

Уровень стека Описание

Nets Сетевой интерфейс (Network Interface, Nl) — скрывает '(состоит из трех подуровней) базовый сетевой протокол и среду передачи от клиентского

приложения.Средства сетевой маршрутизации(Network Routing, МЯ)/сетевого именований -(Network Naming,Ш)/сетевой аутентификации (Network Authentication, NA) —обеспечивают маршрутизацию данных к конечному местуназначения.Прозрачный сетевой субстрат (Transparent Network Substrate,TNS) — реализует общие коммуникационные процедуры,включая отправку и прием данных.

Адаптер протоколов Oracle Тонкий слой кода, изолирующий Net8 от базового(Oracle Protocol Adapter) сетевого протокола.

Сетезависимый протокол Стек уровней, обеспечивающих пересылкуSQL-операторов по сети.

Обратите внимание, что уровень Net8 разбит на три подуровня: N1,NR/NN/NA и TNS. При использовании Oracle Advanced Security к нимдобавляются еще три компонента, перечисленных в таблице 13.4.

Таблица 13.4.Дополнительные компоненты Nets,относящиеся к Oracle Advanced Security

Компонент Методы и протоколы

Шифрование DES, RSA

Аутентификация Kerberos, SecurlD, RADIUS, CyberSafe, Identix

Контроль целостности данных MD5

Отмечу еще один момент, который лично мне представляется очевид-ным. Если вы намереваетесь использовать средства аутентификации изпакета Oracle Advanced Security, например Kerberos или CyberSafe, в сис-теме должны быть установлены соответствующие продукты. Списки ком-понентов, необходимых для реализации каждого из возможных методоваутентификации, приведены в таблице 13.5.

Если вы будете использовать Oracle Advanced Security версии 8.1.6 сболее ранней версией Oracle, то единственная проблема, с которой мож-но столкнуться,— это ограничение функций рамками предыдущей вер-сии, вследствие чего новейшие средства безопасности могут оказатьсянедоступными.

Page 380: Oracle 8i Networking 101

Глава 13

Таблица 13.5.Компоненты, необходимы* для iаутентификации

(инструментов

Инструмент аутентификации Необходимые компоненты

CyberSafe TrustBroker

Kerberos

1

SecurlD

Identix Biometric

RADIUS

SSL

CyberSafe GSS Runtime Ubrary версии 1.1 или выше.Устанавливается на машине клиента Oracle и на сервереOracle.CyberSafe TrustBroker версии 1.2 или выше.Устанавливается на физически защищенной машине,выступающей в роли сервера аутентификации.CyberSafe TrustBroker Client версии 1.2 или выше.Устанавливается на машине клиента Oracle.

MIT Kerberos версии 5, выпуск 1.1. Сервер аутентификацииKerberos должен устанавливаться на физически защищенноймашине.

ACE/Server версии 3.3 или выше.Устанавливается на сервере аутентификации.

Аппаратные средства и драйверы Identix.Устанавливаются на каждой управляющей станциии на каждой клиентской машине.

Сервер RADIUS, соответствующий стандартам IETF,опубликованным в RFC 2138, "Remote Authentication Dial-InUser Service (RADIUS)", и RFC 2139, "RADIUS Accounting".Чтобы использовать аутентификацию "запрос-ответ",необходимо устанавливать RADIUS на платформе,поддерживающей Java Native Interface, описанныйв Java Development Kit 1.1 от JavaSoft.

Электронный бумажник, совместимый с Oracle WalletManager версии 2.1. Бумажники, созданные предыдущимиверсиями Oracle Wallet Manager, не совместимы снизу вверх.

Настройка файла конфигурации sqlnet.oraЧтобы задействовать усовершенствованные средства безопасности Orac-le, необходимо поместить в файл sqlnet.ora параметр sqlnet.authenticati-on_services, присвоив ему соответствующее значение. Например, есливы хотите подключить к системе службу CyberSafe, этот параметр долженвыглядеть так:

Q sqlnet.authentication_services*(CYBERSAFE)

Еще раз повторю, что перед попыткой использования усовершенство-ванных средств безопасности Oracle необходимо убедиться, что в систе-ме установлены все необходимые компоненты.

Page 381: Oracle 8i Networking 101

Усовершенствованные средства безопасности Oracle

Ликвидация брешей в системе безопасности у v *„ SV'-sSiA'v^-VflJK <*Шь5>Я1Н,г-<.Ж;3«* й-4 .!. О':.-! -•'.'•и.'.-* i* i>3H. .Si •sbV.WXiVjtD/;При использовании Oracle Advanced Security следует уб.едиться, чтр пара-

„Mexpjjemote^QsuautbeuLjJiamia, initjora имеет, значение !'шШж.' .Будучиустановленным в ТКиЕ(>й№ох,дараметр. позволяет пол^яртьд^^уяг^с базеданных по незащищенному прртокод^ .(^например, З^СЩ ,в.( р^хр^систем-

' '( ,Как правило, 'доступ к базе данны^. -можно получить несколькими раз-

ными спо^бами^-Вы м^же^те рткры,ть^сёанс telnet, войти в операционнуюи соединиться с базой данных

из сеан!ю^^д. )с'иса;е^ы, :,ука^ав ;другое имя пользователя или па-эд jpeajwce^eljiet мрл(йр; воспользоваться так называемым

.я( «ая запись базы данных должнабыть объявлена как identified externally. Эти ключевые слова говорят о

^^яых пользователю |вгочног&йЬ¥ёй^4спользовав системную учетную

запись с тем же именем. Вместо собственной аутентификации Oracle по-лагается на аутеншфшайй№0вершйойиой системы. Механи§и.':б°йл на-зван ОРб^пЯМ^сквя^кр'.р.ервшначвжявна' мётная запись должна была иметьпрефикс ОР§5>.. апример,, чтобы срздать учетную записьр.внешне^^ден-тификацие^й для пользователя КДЩЙН,! в качестве имени пользователятребовалось указать' "C)PS$NELS( "'.''' iX

Чтобы не использовать префикс OPS$, достаточно установитьnull-значение для 'Параметра os_authent_prefix в файле init.ora (6s_aut-hen^prefiX1*""); :Корп!орацйА Oracle йастрятельно рекомендует это сде-лать, если Ш! нймереваетесь-'Йспо'ль'з<Йать внешнюю идентификацию,поскольку ''Длина HiyresiHH пол^^Ьвателя^ tf базах данных Oracle и без тогоогранич^н^ '' 30 символами. ВЬ'рбще говоря, вы можете присвоить этомупараметру любое значение,; проблемы возникнут лишь в том случае, еслив базе данных уже есть учётные записи с внешней идентификацией, в ко-торйх укааан другой -префйке ': '

•'•-:- -После Этог'о Неб'ОльшЬго введений во йнешнюю идентификацию поль-

^^т^^'б^^'-^§1^^о:'^0^^;^^^.^д^л^]^^ связаны.. с лараметромremote_os_authent и почему его следует устанавливать в FALSE. Для об-ращения к базе данных обычно требуется указывать имя пользователя ипароль. Есл!§-да1Ь@зг1[!р^ ^^оцт&)фш$»^к&тр$. тШ&Щ^'М^Ш, тонабираете 1при^5щ^а,кяма^:м!.^П(Г,по.У), ,rrisaoav;vM^f;e иЗотР

I'.'vj'i .,;:l-U«i»-.>H .Э1ШЭ)'1>!-1С 'x>!i!i'! .';n-,vs-)(rrfK.>:.> уму пноаэиа;! .esavisanaили вводите необходимые, значения в диалоговом окне на клиентской ма-! rjHyiaik. ш ак&овп ТОТё-Ябетэо'ТЗ ю:-к\>з'.1 ш^идп л .itni1 .чг, - j rr ; / / i in 'v : s.шййе. Но если reniote_os_autnem = TRUE, а в базе данных есть учетнаязапись, имя которой совпадает с именем клиентской машины, то пользо-ватель, пытающийся получить; дйелуш зо 4азе данных' .с.йтейлигашины, не

лашиназапись

маши-не, автоматически получШ^дб'Ступ' и к!8азе данных — возможно, 'с оченьвысокими привилегиями.

Page 382: Oracle 8i Networking 101

364 Глава 13

Использование шифрованияВ главе 7 мы рассматривали различные экраны Net8 Assistant, в том числеотносящиеся к шифрованию. Поскольку работа со средствами безопасно-сти не являлась основной темой той главы, здесь будет более подробноописан подход к организации шифрования на машинах клиентов исерверов.

Вызовите экран главного меню Net8 Assistant, следуя инструкциям гла-вы 7. Выберите опцию Local и щелкните на Profile. В раскрывающемсясписке "справа выберите пункт Oracle Advanced Security. Вы увидитевкладки, предназначенные для конфигурирования средств безопасно-сти — Authentication, Other Params, Integrity, Encryption и SSL. Все онибыли показаны и описаны в главе 7. Чтобы разрешить шифрование настороне клиента или сервера, необходимо выбрать тип шифрования(Encryption Туре), ключ шифрования (Encryption Seed) и метод, которыйвы желаете реализовать (в число доступных методов входят DES, RC4-40,DES40, RC4-56, а в США - еще и RC4-128).

Тип шифрования определяет, будет ли фактически использоватьсяшифрование, и может принимать одно из четырех значений: REJECTED(отклоняется), ACCEPTED (допускается), REQUESTED (запрашивается)и REQUIRED (требуется). REJECTED соответствует минимальному уров-ню безопасности, a REQUIRED — максимальному. По умолчанию устанав-ливается ACCEPTED. Все эти значения расшифрованы в таблице 13.6.

Таблица 13.6.Возможные значения параметра Encryption Type и их объяснение

Значение Объяснение '

REJECTED Запрещает шифрование, даже если другая сторона этого требует. Если надругой стороне установлено значение REQUIRED, то соединение будет закрытос выдачей сообщения об ошибке ORA-12650. Если на другой стороне установ-лено любое иное значение, то соединение будет установлено без использова-ния шифрования.

.. ACCEPTED Разрешает шифрование, если на другой стороне установлено значениеREQUIRED или REQUESTED. Дополнительным требованием является совпаде-ние алгоритмов шифрования. Если на другой стороне установлено значениеREQUIRED, но алгоритмы не совпадают, то соединение будет закрыто с выда-чей сообщения об ошибке ORA-12650. Если на другой стороне установленозначение REQUESTED и алгоритмы не совпадают ши установлено значениеACCEPTED или REJECTED, то соединение будет установлено без использова-ния шифрования.

REQUESTED Разрешает шифрование, если другая сторона это допускает. Если на другойстороне установлено значение ACCEPTED, REQUESTED или REQUIRED, то присовпадении алгоритмов шифрование разрешается. Если на другой сторонеустановлено REQUIRED, но алгоритмы не совпадают, то соединение будетзакрыто с выдачей сообщения об ошибке ORA-12650.

REQUIRED Разрешает или полностью запрещает шифрование. Если на другой сторонеустановлено значение REJECTED или отсутствует совпадающий алгоритм,то соединение будет закрыто с выдачей сообщения об ошибке ORA-12650.

Page 383: Oracle 8i Networking 101

Усовершенствованные средства безопасности Oracle 365

Теперь обратимся к таблице истинности (таблица 13.7). Она позволяетопределить, будет ли использоваться шифрование при конкретном соче-тании параметров клиента и сервера. Надпись Client/Server в верхнемлевом углу означает, что Заголовки столбцов представляют собой возмож-ные значения параметра Encryption Type для сервера, а заголовкистрок — возможные значения этого параметра для клиента.1'

Таблица 13.7.Таблица истинности для службы шифрования

Клиент/Сервер REJECTED ACCEPTED

REJECTED::.H >;,-(,;:: . j^.;; ,•

ACCEPTED

REQUESTED

REQUIRED;.-• ', ;

OFF OFF••.' i b"!i!e.:i , ' !.{.»<| ' . ; - . ; " ' ' : г " / ' . - , : * ' ; •

IT :QFRm,Ui OFF ' ' < •

м(^™ '0^!;:i;;i! - ' , " ' • • l.H ," i ' ; • . ? • ' л i . U ' : . • ' " ' • • i : -. i ' • , ; * ; ; ' '

ОТКаЗ ON ;>; :, , ; ; ,

, дсоединении,, , , , , . , . , - : , ,

REQUESTED REQUIRED

OFF Отказ,,ь в соединении

ON

ON

O N < • . '

ON

ON

.--.i QN

•i

ВниманиеКогда на обеих сторонах соединения установленызначения ACCEPTED, шифрование и контрольцелостности запрещены.

Рассмотрим пару примеров использования этой таблицы. Предполо-жим, вам нужно узнать, что произойдет, если на сервере установлено зна-чение REQUIRED, а у клиента — REJECTED. Ответ на этот вопросрасположен на пересечении столбца REQUIRED и строки REJECTED:"Отказ в соединении". Допустим, что теперь на стороне сервера указанозначение REQUESTED, а на стороне клиента — REQUIRED. Каков будетрезультат? Если вы ответили, что шифрование будет разрешено (ON), товы совершенно правы.

Шифрование, контроль целостности данных и другие средства безо-пасности из пакета Oracle Advanced Security можно задействовать при по-мощи Net8 Assistant. Подробные инструкции, сопровождаемые снимкамиэкранов, приведены в главе 7. Однако не забывайте, что этот пакет досту-пен только за отдельную плату, а вы должны иметь лицензию на егоиспользование.1;; ч;, <и, ; >

: . . . ;пх:' мкгсчфчV . 'О'^Д;;' ; . . . ; ' • ' ' ' :.;. 14;': (•',023^! -ЛЯС :.-;•; ик; 6о ••.:•• ":•

Page 384: Oracle 8i Networking 101
Page 385: Oracle 8i Networking 101
Page 386: Oracle 8i Networking 101
Page 387: Oracle 8i Networking 101

Диагностикапроблем Nets

Page 388: Oracle 8i Networking 101

370 Глава 14

.редполагается, что с описанными ниже проблемами действительноприходилось сталкиваться персоналу служб технической поддержки вкомпьютерных компаниях. Я получила этот список по электронной поч-те. Как утверждалось в письме, он был недавно опубликован в статье изWall Street Journal.

Звонки в службу технической поддержки1. Компьютерная компания рассматривает возможность замены

команды "Press any key" на "Press the Enter key" из-за потока теле-фонных звонков с вопросами о том, где находится клавиша"any".

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

3. В службу поддержки поступил звонок от человека, который жа-ловался, что система не читает файлы с его старых дискет. Ког-да поиск магнитов и источников тепла не дал результатов,выяснилось, что клиент наклеил на дискеты этикетки, а потомвставил дискеты в пишущую машинку, чтобы напечатать текст.

4. Другого клиента попросили выслать копию дефектных дискет,Через несколько дней от него пришло письмо с ксерокопией. ,

5. Технический консультант посоветовал клиенту вставить проб-лемный флоппи-диск обратно в дисковод и закрыть дверцу.Клиент попросил подождать. Было слышно, как он положилтелефонную трубку на стол, встал и прошел по комнате, чтобызакрыть входную дверь.

6. Другой клиент сообщил, что он не может заставить свой компь-ютер отправить факс. После 40 минут разбирательств консуль-тант обнаружил, что клиент пытался отправлять факс, держалист бумаги перед экраном монитора и нажимая кнопку "Send".

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

8. Позвонивший клиент был в ярости, поскольку компьютеробозвал его "дефективным" и "инвалидом". Консультанту при-шлось объяснять, что сообщения компьютера "bad command" и"invalid entry" не нужно принимать на свой счет.

Page 389: Oracle 8i Networking 101

Диагностика проблем Nets 371

9. Рассерженная женщина никак не могла заставить свой компью-тер включиться. Убедившись, что компьютер подключен к ро-зетке, технический консультант спросил, что происходит принажатии на сетевой выключатель. В ответ он услышал: "Я стораз нажимала на эту ножную педаль, и никакого результата"."Ножная педаль" на поверку оказалась мышью.

10. Покупательница позвонила в службу поддержки и сказала, чтоее совершенно новый компьютер не подает признаков жизни.Она распаковала компьютер, включила его в сеть и 20 минутсидела рядом в ожидании. На вопрос: "Что происходит принажатии на сетевой выключатель?" она ответила встречнымвопросом: "А что такое сетевой выключатель?"

11. Один пользователь пожаловался, что при каждой попыткевхода ему выдается сообщение "Access Denied". Выяснилось, чтоон набирал свое имя и пароль прописными буквами. Консуль-тант: "Отлично, попробуйте еще раз, но теперь строчными бук-вами". Пользователь: "Но на моей клавиатуре только прописныебуквы!"

Что общего у этих ситуаций, помимо комичности? Во всех случаяхлюди пытались решить проблему, не обладая достаточными знаниями,делая неверные предположения или неправильно истолковывая получен-ные сообщения. Не знаю, как вы, но я в ходе своей профессиональной де-ятельности не раз совершала ошибки по тем же причинам. Когда вылихорадочно пытаетесь понять, отчего стала недоступной операционнаясистема, база данных или сеть, очень легко прийти к невернымзаключениям.

Общие принципы диагностикиДумаю, что никто из нас не сможет сохранять полное спокойствие, столк-нувшись с необходимостью быстро решить проблему. В таких ситуацияхочень легко зациклиться на каком-нибудь одном рассуждении или подхо-де еще до того, как будет собрано достаточно информации. Поэтому яхочу с самого начала дать один очень важный совет: никогда ничего не пред-полагайте заранее! Кроме того, я советую сохранять конфигурацию Net8максимально простой. Если вам придется обращаться за помощью к ко-му-то еще, то чем менее сложной будет ваша среда, тем быстрее этот"кто-то" сможет понять, где возникли затруднения. Вам также следует за-документировать свою среду Net8 и поддерживать актуальность этой до-кументации. Я понимаю, что это довольно скучно и не всегда просто.Трудно придумать занятие, которое доставляло бы мне меньше удоволь-ствия. Однако при наличии среды, которую могут поддерживать другие,вы будете чувствовать себя свободнее в поисках других возможностейпрофессионального роста.

Page 390: Oracle 8i Networking 101

372 Глава 14

В этой главе я опишу некоторые шаги, которые можно предпринятьпри возникновении проблем, предположительно связанных с Net8, а так-же возможные подходы к решению этих проблем. Я пользуюсь этими ме-тодами на протяжении многих лет и нахожу их очень эффективными.Надеюсь, что они принесут пользу и вам.

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

Как бы вы отреагировали на мое заявление, если бы мы сейчас находи-лись рядом? Просто посочувствовали или начали советовать разные сред-ства, помогающие быстрее заснуть?

Обычно возникает желание дать какие-нибудь советы, не так ли? Вымогли сказать, что в подобной ситуации выпиваете стакан теплого моло-ка, или беретесь за скучную книгу, или раскладываете пасьянс, или броди-те по Интернету.

Но если вы помните мой совет, данный чуть выше, то не будете делатьникаких предположений, а поинтересуетесь, почему я не могла заснуть.Если вы зададите мне этот вопрос, то я отвечу, что за окном спальни поч-ти всю ночь орал кот.

Теперь, при наличии дополнительной информации, вы можете взгля-нуть на мою проблему с другой стороны и начать поиск альтернативныхрешений. Лучше поняв ситуацию, вы могли бы посоветовать найти теле-фон местного управления по контролю за животными или купить берушина тот случай, если кот вернется. Просто поразительно, как одна малень-кая деталь порой помогает увидеть ситуацию в новом свете и начать по-иск решения в совершенно другом направлении.

Таким образом, помимо рекомендаций ничего не предполагать зара-нее и сохранять конфигурацию максимально простой я хочу дать следую-щие общие советы:

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

• Убедитесь, что вы имеете дело с самой проблемой, а не с ееследствием.

• Убедитесь, что вы собрали все имеющиеся факты.• Не бойтесь задавать вопросы.• Имейте мужество сказать: "У нас еще недостаточно

информации, чтобы сделать определенный вывод".• Не бойтесь менять направление поиска или рассматривать

альтернативные решения.

Page 391: Oracle 8i Networking 101

Диагностика проблем Nets 373

• Принимайте во внимание все доступные средства (файлы журналови трассировки, опытных специалистов по системному и сетевомуадминистрированию, глобальную службу поддержки Oracle и т.д.).

• Старайтесь держать пользователя, который сообщил о проблеме, вкурсе дела. Если люди могут найти себе другое занятие, они обычноне слишком беспокоятся из-за того, что разрешение проблемы зани-мает много времени. Что их действительно беспокоит, так это от-сутствие какой-либо информации.

• По возможности старайтесь точно оценить время, которое потребу-ется на устранение проблемы. При этом всегда лучше дать завышен-ную оценку и закончить работу раньше, чем недооценить сложностьситуации и потом объяснять "неожиданные" задержки. Настроивпользователей на более длительное ожидание, вы можете оказатьсяв реальном выигрыше. К сожалению, проблемы зачастую решаютсяне столь быстро, как нам хотелось бы.

При диагностике проблем с Net8 я обнаружила, что некоторые ошиб-ки имеют обыкновение повторяться. Мой технический рецензент ЯнФиклинг говорит следующее: "Когда система некоторое время работает, апотом внезапно перестает работать, причина часто заключается в том,что кто-то внес изменение в файл конфигурации. Чтобы быстро прове-рить, так ли это, достаточно посмотреть на даты файлов. Если дата близ-ка к сегодняшней, следует заняться поиском изменений, сравниваятекущий файл с его резервной копией, сделанной до момента последнеймодификации". Это действительно хороший совет, который стоит иметьв виду.

Ниже приведены некоторые рекомендации, которые следует учиты-вать при решении проблем, возникших после установки, конфигурирова-ния и первоначальной отладки Net8. Подразумевается, что в течениекакого-то времени все работало нормально. О диагностике проблем, ко-торые могут возникать в процессе установки, я расскажу позже.

• Убедитесь, что проблема действительно связана с Net8, а не с други-ми компонентами сети.

• Проверьте, можно ли выполнить тест с заглушкой (loopback) принепосредственном входе на сервер.

• Если этот тест проходит, проверьте, можно ли установить соедине-ние клиента с сервером при помощи Net8.

• Если вы конфигурировали прослушивающий процесс, проверьтефайл listener.ora на синтаксические ошибки (например, непарныескобки).

• Проверьте, нет ли в файле tnsnames.ora ошибочных записей (непра-вильное имя хоста, неправильное имя экземпляра).

• Убедитесь, что файлах listener.ora и tnsnames.ora указаны одинако-вые номера портов.

• Просмотрите файлы журналов и трассировки. Возможно, там со-держится более подробная информация о возникшей ошибке.

Page 392: Oracle 8i Networking 101

374 Глава 14

Поставив перед собой определенные задачи, можно приступать к су-жению области поиска и сбору дополнительной информации о проблеме,с которой столкнулись вы или ваши пользователи.

Локализация проблемыЗаявления пользователей часто носят слишком общий характер, напри-мер, "база данных не работает" или "Oracle сломался". Перед тем какприступать к различным проверкам, выясните как можно больше подроб-ностей. Не бойтесь задавать вопросы, но старайтесь вести себя спокойнои доброжелательно. Пользователи не должны чувствовать себя так, какбудто они оказались перед испанской инквизицией. Возможные вопросыперечислены в таблице 14.1. Там же приведена информация, которуюможно извлечь из ответов. Не исключено, что для получения информа-ции, которая поможет начать решение проблемы, вам придется задатьодин и тот же вопрос несколько раз или в разных вариациях. Главнаяцель состоит в том, чтобы выявить реальную проблему и быстро найтиэффективное решение. Чем больше информации вы получите "по горя-чим следам", тем выше шансы на достижение этой цели.

Таблица 14.1.Диагностические вопросы и собираемая информация

Вопрос Собираемая информация

К какой базе данных или приложениювы пытались обратиться?(Если в рабочей среде несколькобаз данных или приложений.)

Входили ли вы сегодня в эту базу данных?В какое время?

Если нет, когда вы успешно входилипоследний раз?

Какие сообщения об ошибках(если они были) вы видели?Был ли в сообщении какой-нибудь номер?

Не меняли ли вы в последнее времясвой пароль?

Какие действия вы уже предпринимали?

Удавалось ли вам сегодня соединятьсяс какими-нибудь другими базами данныхили серверами?

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

Временные рамки проблемы.

Временные рамки проблемы.

По сообщению и номеру можно установить,относится ли проблема к Oracle, операционнойсистеме или сети.

Пользователи часто забывают, что ониизменили пароль.

Иногда пользователи пытаются самостоятельноустранить проблему. Об их действиях нужнознать, чтобы не повторять процесс заново.Возможно, вы посоветуете что-то еще, о чемони не знали.

Связана ли проблема с клиентской машиной,сервером или сетью.

Page 393: Oracle 8i Networking 101

Диагностика проблем Nets 375

Таблица 14.1 (продолжение)Диагностические вопросы и собираемая информация

Вопрос Собираемая информация

Были ли у вас проблемы с компьютеромв последнее время?

Не устанавливались ли в последнее времяна ваш компьютер новые продукты?

Не производилось ли в последнее времяобновление каких-либо продуктов,установленных на вашем компьютере?

Могут ли другие служащие вашего отделаобращаться к базе данных, с которой выпытались соединиться?

Не заменялись ли в последнее времяна вашем компьютере какие-нибудь файлы?

Неполадки с компьютером могли сделатьневозможным соединение с базой данныхили узлом сети.

При установке нового продукта мог бытьперезаписан сетевой драйвер.

При обновлении продукта мог бытьперезаписан сетевой драйвер.

Проблему может испытывать только одинпользователь или весь отдел.

Более новый файл tnsnames.ora мог бытьперезаписан при восстановлении каталогаили набора файлов.

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

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

Функционирует ли база данных?В системе UNIX или Compaq OpenVMS о запуске базы данных можно су-дить по наличию фоновых процессов Oracle. Если в качестве сервера ис-пользуется машина с Windows NT, то вам нужно проверить, запущен ливыполняемый файл Oracle. Нажмите клавиши CTRL+ALT+DEL или щелк-ните правой кнопкой мыши на панели задач, чтобы вызвать менеджер за-дач, и убедитесь в присутствии oracle.exe (для OracleSi) или oracle8.exe(для OracleS). Конечно, если в системе запускается более одной базы дан-ных Oracle, нужно быть уверенным, что фоновые процессы относятсяименно к рассматриваемой базе данных.

Допустим, что все процессы на месте. Однако это еще не означает, чтобаза данных функционирует. Например, если кто-то остановит базу дан-ных с помощью утилиты Server Manager (svrmgrl), выдав команду shut-down immediate, shutdown abort или shutdown normal, то службаWindows NT и выполняемый файл Oracle могут продолжать работу.Поскольку в Windows NT не всегда можно открыть сеанс telnet, войдите всистему напрямую, в привилегированном режиме, и воспользуйтесьsvrmgrl, чтобы соединиться с базой данных как internal. Введите

Page 394: Oracle 8i Networking 101

376 Глава 14

команду show sga. Если выходные данные будут выглядеть примерно так,как показано ниже, то база данных функционирует.

G Total System Global Area 40396044 bytesFixed Size 70924 bytesVariable Size 23470080 bytesDatabase Buffers 16777216 bytesRedo Buffers 77824 bytesSVRMGR>

Если сервер работает под управлением UNIX, войдите на него черезtelnet, вызовите утилиту svrmgrl, соединитесь как internal и введитекоманду show sga. Если команда пройдет нормально, то база данных фун-кционирует. Если во время этого теста будет выдано сообщение об ошиб-ке, то возможно, что неправильно установлены переменные среды илифоновый процесс Oracle (например, PMON) остановился и не смог пере-запуститься. Команда, которая показывает фоновые процессы, и примерее выходных данных приведены ниже.

Q ps -ef | grep ora I

oracle 2387 1

grep -v grep

0 21:03:11 ?LISTENER -inheritoracle 2299oracle 2301oracle 2303oracle 2305

oracle 2307oracle 2309oracle 2311oracle 2313

11111111

0 20:23:13 ?0 20:23:14 ?0 20:23:14?0 20:23:14?0 20:23:14 ?0 20:23:14 ?

0 20:23:15 ?0 20:23:15 ?

0:00 /free/oracle/products/815/bin/tnslsnr

0:00 ora_pmon_orcl0:00 ora_dbwO_orcl0:00 ora_lgwr_orcl0:01 ora_ckpt_orcl0:06 ora_smon_orcl0:00 ora_reco_orcl0:00 ora_sOOO_orcl0:00 ora_dOOO_orcl

Убедившись, что база данных запущена и функционирует, приступай-те к локализации проблемы.

ВниманиеВ OracleSi вместо svrmgr можно использоватьутилиту SQL*Plus. Введите команду sqlplusи соединитесь как internal.

Доступна ли база данных непривилегированнымпользователям!Следующее, что нужно выяснить,— не находится ли база данных в режимеограниченного доступа. Рискуя открыть брешь в системе безопасности,поделюсь с вами одним секретом. Я всегда держу непривилегированнуюучетную запись в каждой из баз данных, которыми управляю. Обычно яназываю пользователя этой учетной записи так, чтобы ее "фиктивность"была очевидна — например, использую название кухонного предмета, та-кого, как DISH (тарелка), и пароль, легко запоминающийся по ассоциа-ции, скажем, WASHER (посудомоечная машина) или RAG (тряпка).

Page 395: Oracle 8i Networking 101

Диагностика проблем Net8 377

Единственная привилегия, которую я даю этой записи,— create session.Для тех из вас, кто не работает администратором базы данных, но хотелбы знать, как создается такая запись, привожу соответствующийсинтаксис:

Q create user DISH identified by RAGdefault tablespace USERS temporary tablespace TEMP;grant CREATE SESSION to DISH;

Здесь указаны табличные пространства USERS и TEMP. Вам следуетубедиться, что табличные пространства, которые вы объявите в своемоператоре создания пользователя, действительно существуют. И, разуме-ется, привилегии вашей учетной записи должны допускать создание по-льзователя. В крайнем случае попросите своего администратора создатьдля вас непривилегированного пользователя.

Вспомните, что сейчас вы соединены непосредственно с сервером.Задача состоит в том, чтобы определить, может ли непривилегирован-ный пользователь соединяться с базой данных. Следовательно, можновоспользоваться протоколом локального обмена. Если проблема связанас сетью, то на этом этапе ее выявить не удастся. Но если сеть ни при чем,то эти первые быстрые проверки помогут сэкономить время и усилия,которые вы могли бы затратить на поиски несуществующей сетевойпроблемы.

Чтобы соединиться с базой данных через непривилегированную учет-ную запись, введите

Q sqlplus DISH/RAG

где DISH — имя пользователя, a RAG — пароль. Если база данных не пере-ведена в режим ограниченного доступа, вы должны увидеть примерноследующий заголовок соединения:

Q SQbPlus: Release 8.1.6.0.0 - Production on Tue May 2 14:34:38 2000(c) Copyright 1999 Oracle Corporation. All rights reserved.

Connected to:OracleSi Enterprise Edition Release 8.1.6.0.0 - ProductionWith the Partitioning option

; • ' ' • ' . • . • • " , • ->•-• • ' .

JServer Release 8 . 1 . 6 . 0 . 0 - ProductionSQL>

Выходные данные будут варьироваться в зависимости от используе-мой версии Oracle и установленных опций. Здесь важно лишь то, что сое-динение работает. Итак, посмотрим, что мы выяснили к этому моменту:

• База данных запущена и функционирует.• База данных не находится в режиме ограниченного доступа.• Непривилегированный пользователь может обращаться к базе

данных с уровня операционной системы без привлечения сетевыхкомпонентов.

Page 396: Oracle 8i Networking 101

Глава 14

Теперь нужно убедиться в том, что прослушивающий процесс, серверимен Oracle и менеджер соединений запущены и доступны.

Не связана ли проблема с прослушивающимпроцессом, сервером имен Oracleили менеджером соединений?Во всех утилитах Control, предназначенных для управления перечислен-ными компонентами поддержки сети, есть команда status или stats. Сле-довательно, чтобы проверить доступность этих компонентов, можно поочереди ввести следующие команды:

Q Isnrctl status <имя_прослушивающего_процесса>namesctl status <имя_сервера_имен>cmctl stats

Если какой-либо из процессов не запущен, то проблема найдена. Нодаже если они запущены, необходимо убедиться в возможности установ-ления соединений. Для проверки прослушивающего процесса можно вы-полнить тестирование с заглушкой. Я расскажу об этом в следующемразделе.

Чтобы проверить достижимость определенного сервера базы данныхчерез сервер имен Oracle, можно вызвать утилиту namesctl и ввести следу-ющую команду:

Q NAMESCTL> ping <имя_машины>

Например, для машины MARLENES-PC нужно ввести

Q NAMESCTL> ping MARLENES-PC

Если все в порядке, то команда ping покажет время, затраченноена установление контакта с сервером имен Oracle, и выведет подтвержде-ние. В противном случае нужно проверить, запущен ли сервер имен.О Запуске и останове сервера имен Oracle говорилось в главе 4.

Тестирование с заглушкойЕсли прослушивающий процесс доступен, то следующим шагом будетпроверка соединения с базой данных через Net8. Это делается с помо-щью так называемого тестирования с заглушкой (loopback). Его следуетвыполнять, пока вы соединены с сервером через telnet. Для экземпляра сименем SKDL процедура будет следующей:

1. Если вы работаете в UNIX, то убедитесь, что переменные средытекущего сеанса указывают на нужный экземпляр, введя командуenv | grep ORACLE_SID. В Windows NT нужно открыть окно DOSи ввести команду set ORACLE_SID-SKDL.

2. Для выполнения самого теста введите sqlplus DISH/RAG@SKDL.

3. Если соединение было успешно установлено, введите команду exit.

Page 397: Oracle 8i Networking 101

Диагностика проблем Nets _ 379

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

Чтобы сначала закончить самую простую диагностическую процедуру,предположим, что в ходе тестирования с заглушкой вы успешно соедини-лись с базой данных. Тем самым вы проверили, что с помощью Net8 сер-вер может соединиться сам с собой.

Проверка соединения клиент-серверПеред попыткой установить соединение клиент-сервер убедитесь, что смашины клиента успешно выполняется описанная выше команда ping("NAMESCTL> ping"). Это будет означать, что сервер, с которым вы соби-раетесь устанавливать соединение, потенциально достижим. Следующийтест заключается в установлении соединения между клиентской машинойи сервером. Если в вашей рабочей комнате есть машина с установленнойклиентской частью Net8 и правильно сконфигурированным файломtnsnames.ora, попробуйте обратиться к базе данных с этой машины. В слу-чае успеха можно предположить, что проблема связана с сетью. Вот неко-торые источники проблем, на которые следует обратить внимание:

• Кабельные соединения между клиентской машиной и базой данных• Сетевое оборудование• Неправильное конфигурирование клиентского аппаратного

и программного обеспечения« Периодически исчерпывающиеся ресурсы сервера, вследствие

чего он не может обслуживать все запросы на соединения

Если вы не являетесь постоянным сетевым администратором, то врядли сможете сделать что-то серьезное по первым двум пунктам или аппа-ратной части третьего. Проверьте клиентское программное обеспечениеи убедитесь, что файлы конфигурации не были заменены устаревшимиверсиями (это вполне возможно, если на машине клиента проводилосьвосстановление диска по резервным копиям).

Когда я буду рассказывать о различных номерах ошибок Net8 и связан-ных с ними сообщениях, вы увидите, что некоторые номера указываютна возможную нехватку ресурсов сервера. Если проблема действительносвязана с периодическим исчерпанием ресурсов, обратитесь за дополни-тельными разъяснениями к своему системному администратору.

Журналы, файлы трассировкии сообщения об ошибках

Перед тем как мы займемся расшифровкой сообщений об ошибках Orac-le, встречающихся в файлах журналов и трассировки Net8, следует сде-лать одно предупреждение. При диагностировании сетевых проблемследует постоянно иметь в виду, что сообщения об ошибках, представлен-ные в файлах журналов и трассировки Net8, могут не совсем точно

Page 398: Oracle 8i Networking 101

380 Глава 14

описывать реальную проблему. Когда NetS сталкивается с ошибкой ниже-лежащего сетевого уровня, он обязан о ней сообщить. Однако описаниеошибки, доступное NetS, не всегда объясняет истинную причину произо-шедшего. Как следствие, сообщения NetS иногда могут вводить в заблуж-дение и запутывать. Конечно, все сказанное справедливо и для другихобластей Oracle, но для сетевой — особенно.

Часть представленной здесь информации в том или ином виде содер-жится в последнем разделе электронной документации, в главе 12 руко-водства администратора NetS версии 8.1.6. Включены сюда такжевыдержки из текста, размещенного на Web-сайте службы поддержкиOracle (www.oracle.com/support/oracleinstall/networking/net8.htm).Приведенная там информация относится к установке, но многие из отме-ченных ошибок могут возникать и позже, при изменении файлов liste-ner.ora или tnsnames.ora с целью добавления, модификации или удаленияэкземпляра.

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

Проблемы с listener.oraПервое, что вы попытаетесь сделать после установки Oracle и созданияодной или нескольких баз данных,— это запустить прослушивающий про-цесс NetS. Как упоминалось в главе 3, по умолчанию прослушивающемупроцессу присваивается имя LISTENER с паролем ORACLE. В главе 7было показано, как конфигурировать прослушивающий процесс с помо-щью NetS Assistant.

Однако конфигурирование прослушивающего процесса — это лишьполовина дела. Вы должны убедиться, что файл tnsnames.ora содержитимена сетевых служб, Которые будут использоваться для соединения с эк-земпляром. Создание имени сетевой службы описывалось в главе 7.

Практическая отладка — шаг за шагомОдно из последних действий, выполняемых при создании имени сетевойслужбы,— это тестирование соединения. Для этого упражнения я сконфи-гурировала на своем хосте MARLENES-PC прослушивающий процесс сименем LIST1, назначив ему порт 1525 протокола TCP/IP. Затем я при-ступила к созданию нового имени сетевой службы, предназначенного длясоединения с базой данных SKDL.world через порт 1525. После вводаимени службы SKDL мне было предложено протестировать соединение,и я щелкнула на кнопке Test. Результат показан на рис. 14.1. Тест не про-шел. Что было сделано неправильно?

Page 399: Oracle 8i Networking 101

Диагностика проблем Nets 381

Expect connecting to the database to take from one to several seconds to complete. If it takes longer,please wait; the reason for any failure will be displayed, to change the userid and password used for thetest press Change Login.

When finished testing press Close.

d: scott, password: tiger{Attempting to connect using userid: scott{The test did not succeed.|ORA-12541:TNS:no listener

There maybe an error in the fields entered, . , . .or the server may not be ready for a conn ection.

Change Login... I Testj C l o s e !

Рис. 14.1. Результаты первого теста соединения

Ошибка OR A-124 51Как видите, я получила сообщение об ошибке "ORA-12541: TNS: поlistener" ("отсутствует прослушивающий процесс"). Первое, что можнопроверить в такой ситуации,— запущен ли прослушивающий процесс. Нокак? Я работала в Windows NT, поэтому воспользовалась окном служб, вы-брав пункт меню Start >• Programs >• Settings >• Control Panel и щелкнув напиктограмме Services. Как видно из рис. 14.2, прослушивающий процессLIST1 в списке запущенных служб отсутствовал.

Seryjce : . . ,- Status

OiadeOraHomeSIAppServeiListenerОгас1еОгаНоте81 OientCacheОгас1еОгаНоте81 CMAdminOracieOiaHome81CManDradeOraHome81 DalaGalhererОгас1еОгаНоте81 ManagemenlServeiOiacteOraHomeBINamesSKDL. worldOiacleOraHome81TNSListener StalledOiacleServiceSKDL StalledOiacleWebAssislantO. , ' ; • • ' • • ' ' ' . ' ''•'••'. -.:'•"'. .'

Slartup Parameters:

Startup gose

Manual .±J

Manual >' Jiarl

ManualManual IМ»,,и| 1 !• ••' :'';;

Manual r.-il->rR'

^ , Startup...

HWPloftos...

И*

Рис. 14.2. Окно Services без службы LIST1

В UNIX проверку можно выполнить с помощью утилиты ListenerControl. Подумайте, как бы вы стали это делать.

Page 400: Oracle 8i Networking 101

Глава 14

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

Q Isnrctl start LIST1Посмотрев на рис. 14.3, вы увидите, что сначала я получила ошибку

с номером 1060, поскольку запись о службе отсутствовала. Однако файлHstener.ora находился в нужном каталоге, и в конце концов прослушиваю-щий процесс успешно запустился. Кстати, чтобы проверить состояниепрослушивающего процесса с помощью утилиты Listener Control (какв UNIX, так и в Windows NT), нужно ввести команду Isnrctl status<имя_прослушивающего_процесса>. Приведенный ниже сценарий быст-ро покажет состояние всех прослушивающих процессов в системе UNIX:

Q for loop in 'ps -ef|grep tnslsnrjgrep -v grep|awk '{print $ 9 } ' 'do

Isnrctl status Sloopdone I more

icrosoft<R>"Windows NT<TM>> Copyright 1785-1996 Microsoft Corp.

:s>lsnrctl

SNRCTL for 32-bit Windows: Vers ion 8.1.6.0.0 - Production on 83-МЙУ-2ИИ0 18:05:?

c> Copyright 1998, 1999, Oracle Corporation. Й11 rights reserved.

Welcome to LSNRCTL, type "help" for information.

:NRCTL> start iistitarting tnslsnr: please wait...

ailed to open service <OracleOraHome81TNSListenerlistl>, error 1860.NSLSNK for 32-bit Windows: Uersion 8.1.6.0.В - Productionysten parameter file is D:\Oraclo\Ora81SnetworkSadnlnMlstener.oraog messages written to D:\Oracle\Ora814networkMog\listl.logistening on: <DESCRIPIION-<ftDI>RESS-<PROTOCOL-tcpXHOST-marlenes-pc><PORT-lS2S» i

nnecting to CDESCRIPTION-<eDDRESS-<PROTOCOL-TCPXHOST-narlenes-pcXPORT-152S»

flTUS of the LISTENER

liasersion.on

tart Dateptimrace Levelecurity

IMP.stener Parameter File

istener Log Pileentices Summary...

SKDL has 1 service handler<s>w command completed successfully

-NRCTL> _

listlTNSLSNR for 32-bit Windows: Uersion 8.1.6.0.0 - Produc

03-ПЙУ-2000 18:06:150 days 0 hr. 0 nin. 2 secoffOFFOFFD:\Oracle\Ora81\netuork4adninSlistener.oraD:\Oracle\Ora81Snetwork\losMistl.log

Рис. 14.3. Окно DOS с выходными данными Isnrctl

Не сомневаюсь, что теперь мы обнаружим в окне служб запись 6 но-вом прослушивающем процессе. Текущий вид этого окна показан нарис. 14.4.

Page 401: Oracle 8i Networking 101

Диагностика проблем Net8 383

Servjce Status Startup

OracleOraH ome81 ClientCache

OracleOraH ome81CMAdmin

OracleOraH ome81CMan

OracleOraH ome81 DataG atherer

OradeOiaHomeSIManagementServer

OracleOraH ome81NamesSKDLworld

OracleOraH ome81 TNSListener

OracleServiceSKDL

OracleWebAssistantO

Manual

Manual

Manual

Manual

Manual

Manual

Started Manual

Manual

Manual

j

j

jj

Dose

Sjop

Startup Parameters:

:• S>ar.lup...

: ВД Profiles...

НФ.

Рис. 14.4. Окно Services с запущенной службой LIST1

Ошибка OR A-12514После запуска прослушивающего процесса логично еще раз протестиро-вать соединение. Я использовала для этого пункт Test Service в раскрыва-ющемся меню Command. Результаты показаны на рис. 14.5.

Как видите, тест опять не прошел. На этот раз было выдано сообще-ние об ошибке "ORA-12514: TNS:listener could not resolve SERVICE_NAMEgiven in connect descriptor" ("прослушивающий процесс не смог разре-шить имя службы, указанное в дескрипторе соединения"). Ну что же, покрайней мере, ошибка ORA-12541 осталась позади. Судя по сообщению,что-то не так с именем службы. Заглянув в файл конфигурации, я

Expect connecting to the database to take from one to several seconds to complete. If it takes longer,please wait; the reason for any failure will be displayed.To change the userld and password used for thetest press Change Login.

When finished testing press Close.

Initializing first test to use userld: scott, password: tigerAttempting to connect using userid: scottThe test did ngt succeed.ORA-1251«: TNS:listener could not resolve SERVICE_NAME given In connect descriptor

There may be an error In the fields entered,or the server may not be ready for a connection. |

Change Login...j Test j Close!

Рис. 14.5. Результаты теста соединения после запускапрослушивающего процесса

Page 402: Oracle 8i Networking 101

384 Глава 14

обнаружила опечатку в имени экземпляра. Это одна из тех ошибок, кото-рые легче всего допустить, но и проще всего исправить. Однако тест и наэтот раз не прошел. В чем же дело? Оказывается, я забыла указать имя до-мена. После добавления имени .WORLD к имени службы тест успешно за-вершился. Результаты показаны на рис. 14.6.

Expect connecting to the database to take from one to several seconds to complete. If it takes longer,please wait; the reason for any failure will be displayed. To change the userid and password used for thetest press Change Login.

When finished testing press Close.

Initializing first test to use userid: scott, password: tigerAttempting to connect using userid: scottThe connection testwas successful.

'.. ' *•НВюШНВВВНННЯВВШНЯЯШл',

Change Login...! Test! Close i

Рис. 14.6. Успешное завершение теста

Проблемы, связанные с ручным конфигурированиемИтак, чему вас научил этот пример? Прежде всего, вы узнали, что означа-ют два сообщения об ошибках Net8 и как решать проблемы, на которыеони указывают. Вы также узнали, что после устранения одной проблемыможет появиться другая. Это очень распространенная ситуация. Однакоя чувствую, что у вас в голове вертится вопрос: как я определила, где ис-кать возможные причины? На вашем месте я бы обязательно этимзаинтересовалась.

Для быстрого решения проблем с Net8 нужно, с одной стороны, пони-мать, какие компоненты должны присутствовать на своих местах дляуспешного запуска прослушивающего процесса, а с другой стороны —иметь достаточный опыт решения этих самых проблем, чтобы чувство-вать, где искать причины. Лично мне свойственно повторять одни и теже ошибки снова и снова. Спустя некоторое время я уже знаю, на что сле-дует обратить внимание в первую очередь. Иногда направление поискаподсказывают сами сообщения об ошибках, как это было в рассмотрен-ном выше примере. Однако, как я уже говорила, иногда эти сообщениямогут дезориентировать.

Теперь допустим, что вы решили не использовать Net8 Assistant дляконфигурирования прослушивающего процесса и имен сетевых служб.Хотя Net8 Assistant — замечательный инструмент, он может оказаться не-доступен по тем или иным причинам. В этом случае вы можете сделать

Page 403: Oracle 8i Networking 101

Диагностика проблем Nets 385

копию образцового файла listener.ora (или tnsnames.ora) и модифициро-вать ее так, чтобы создать основной прослушивающий процесс (или не-обходимые имена служб). Образцовые файлы рассматривались в главе 3.Вы можете найти их в каталоге $ORACLE_HOME/network/admin/samples (система UNIX) или ORACLE_HOME\ network\admin\samples(система Windows NT).

При ручном конфигурировании прослушивающего процесса я частоделаю следующую ошибку: указываю один номер порта (например, 1521)в файле listener.ora, а потом забываю, какой номер был использован, иуказываю в файле tnsnames.ora другой порт (например, 1526). Хотя одинпроцесс вполне может прослушивать несколько портов, два разных про-цесса не могут разделять один и тот же порт. Если вы используете болееодного прослушивающего процесса, будьте очень аккуратны при назначе-нии портов.

Другой проблемой, которую зачастую трудно выявить, являются не-парные скобки. Если вы вернетесь к главе 3, то увидите, что каждая за-пись файла содержит много открывающих "(" и закрывающих ")" скобок.Следить за тем, чтобы каждая открывающая скобка имела парную ей за-крывающую, довольно утомительно. При подсчете скобок я поступаютак: поднимаю один палец для каждой открывающей скобки и опускаюодин из поднятых пальцев, когда встречаю закрывающую скобку. Сколь-ко пальцев останется поднято, когда я достигну последней закрывающейскобки, столько скобок пропущено. Другой способ — выделять каждуюпару скобок отступом, чтобы было легче увидеть, где не хватает закрыва-ющей скобки. Ниже приведен пример файла listener.ora. Попробуйтеопределить, есть ли там непарные скобки.

Q LISTENER =(ADDRESS_LIST =

(ADDRESS =(PROTOCOL = IPC)(KEY = oracle.wo rid))

(ADDRESS =(PROTOCOL = TCP)(Host = marlenes-pc)(Port = 1526))

STARTUP_WAIT_TIME_LISTENER = 0CONNECTJIMEOUT^LISTENER = 10TRACE_LEVEL_LISTENER = 0SID_LIST_LISTENER =

(SID_LIST =(~SID_DESC =

(GLOBAL_DBNAME = marlenes-pc)(SID_NAME = ORCL)))

PASSWORDS_LISTENER = (oracle)

Здесь пропущена одна скобка. Открывающая скобка в ADDRESS_LISTне имеет парной закрывающей. Где она должна стоять? Если вы скажете"сразу за двумя закрывающими после значения 1526", то будете совершен-но правы.

Page 404: Oracle 8i Networking 101

Глава 14

Третья проблема, с которой я периодически встречаюсь,— неправиль-ное конфигурирование базового сетевого протокола, используемогоNet8. Эта проблема тесно связана с конкретными сетевыми продуктами,и ее рассмотрение выходит за рамки данной главы.

Теперь поговорим о расположении файлов конфигурации Net8. На-помню, что для нормального функционирования Net8 требуются файлыlistener.ora, tnsnames.ora и sqlnet.ora. Когда вы пытаетесь соединиться сэкземпляром, Net8 ищет их в определенном порядке, начиная с рабочегокаталога, откуда было запущено приложение. Так, если ваше приложениезапущено из каталога D:\Ora81\Oracle\MyApps\, то Net8 начнет поискфайлов конфигурации с этого каталога. Если они там отсутствуют, то сле-дующим будет просмотрен каталог, указанный в переменной средыTNS_ADMIN. Если вы не можете найти определение этой переменной всвоей системе Windows NT, посмотрите в реестре. Не исключено, что ввашей системе эта переменная вообще отсутствует.

При отсутствии переменной TNS_ADMIN проверяется каталог$ORACLE_HOME/network/admin/ (в UNIX) или ORACLE_HOME\network\admin (в Windows NT). Чтобы проверить, правильно лиустановлена переменная ORACLE_HOME, в UNIX можно использоватькоманду env | grep ORACLE_HOME, а в Windows NT просмотретьреестр.

Если вы определите переменную TNS_ADMIN в реестре, то все компо-ненты Oracle и Net8 будут использовать только один файл tnsnames.ora.Это значительно упрощает обновление Net8.

Пожалуйста, не редактируйте реестр, если вы не знакомы с тем, какэто делается. Любая ошибка может нарушить работу операционной сис-темы. Обязательно сделайте резервную копию реестра перед выполнени-ем описанных ниже действий. Сделав эти предупреждения, привожуинструкцию по созданию переменной TNS_ADMIN в реестре.

1. Чтобы создать запись в реестре Windows NT, необходимо вос-пользоваться программой regedt32. Для ее запуска можно выбратьпункт меню Start >• Run и ввести команду regedt32 в строке Open.

2. После входа в редактор реестра выберите записьНКЕУ_ЬОСАЬ_MACHINE и дважды щелкните на разделе SOFTWARE. (Обратитевнимание на маленький знак плюса (+) на изображении папки. Дваж-ды щелкнув левой кнопкой мыши, вы увидите в правой панели спи-сок программ, установленных на машине.)

3. Дважды щелкните на разделе ORACLE. В нем вы найдете один илинесколько разделов с именами HOMED, HOME1 и т.д. НОМЕОотносится к первому установленному продукту, НОМЕ1 — ковторому и т.д. Вам нужно добавить параметр TNS_AJDMIN во все этиразделы. Если у вас установлена версия 8.1.5, необходимо такжедобавить параметры LOCAL в каждый из разделов, за исключениемтого, который относится к самой базе данных.

4. Щелкните на НОМЕх (например, НОМЕО).

Page 405: Oracle 8i Networking 101

Диагностика проблем Nets 387

5. Раскройте меню Edit в верхней части окна.

6. Выберите пункт Add Value (Добавить параметр) и введите в появив-шемся окне следующее: Value Name: TNS_ADMIN, Data Type:REG_SZ. После щелчка на кнопке ОК откроется окно редакторастрок (String Editor). Введите в поле String путь к каталогу, в которомнаходятся ваши файлы listener.ога и tnsnames.ora (например,D:\Oracle\ora81\network\admin).

7. Если у вас установлена версия 8.1.5, раскройте меню Edit еще раз.

8. Выберите пункт Add Value и введите в появившемся окне следующиезначения: Value Name: LOCAL, Data Type: REG_SZ. После щелчка накнопке ОК откроется окно редактора строк (String Editor). Введитев поле String псевдоним для базы данных 8.1.5 (например, DB815).

9. Повторите шаги с 4-го по 8-й для каждого НОМЕх.

10. Выйдите из редактора реестра.

Руководство по диагностике наиболеераспространенных ошибок

В этом разделе мы рассмотрим некоторые сообщения об ошибках, кото-рые наиболее часто встречаются при работе с Net8. Они перечислены втаблице 14.2. Непосредственно под текстами сообщений я указала воз-можные причины их выдачи.

Таблица 14.2.Сообщения об ошибках Nets и их возможные причины

Номер ошибки Сообщение

ORA-12154 TNS: could not resolve database name (невозможно разрешитьимя базы данных)Причина: Nets не смог найти в файле tnsnames.ora имя базы данных,соответствующее указанному в строке соединения псевдониму.

ORA-12198 TNS: could not find path to destination(невозможно найти путь к точке назначения)Причина: клиент не смог найти нужную базу данных.

ORA-12203 TNS: unable to connect to destination(невозможно соединиться с точкой назначения)Причина: это сообщение общего характера с несколькими возможнымипричинами. Первое, что нужно проверить,— соответствует ли установленныйпротокол Oracle базовому сетевому протоколу. При отсутствии драйвераподдержки протокола в файл sqlnet.log или клиентский файл трассировкиобычно выводятся сообщения об ошибках ОНА-12203, ОНА-12538и ORA-00508.

ORA-12224 TNS: no listener (отсутствует прослушивающий процесс)Причина: запрос на соединение не был выполнен, поскольку не удалосьустановить соединение с прослушивающим процессом. Возможно, что онне запущен.

Page 406: Oracle 8i Networking 101

388 Глава 14

Таблица 14.2 (продолжение)Сообщения об ошибках Nets и их возможные причины

Номер ошибки Сообщение _______

ORA-12500 TNS: listener failed to start a dedicated server process (прослушивающийпроцесс не смог запустить процесс выделенного сервера)Причина: это сообщение носит общий характер и может быть вызваноодной или несколькими из четырех возможных причин:Проблемы с компоновкой программ и разрешениямина выполнение операцийНехватка ресурсовОшибка при запуске выделенного процесса на сервереНеправильная настройка среды операционной системы

ORA-12533 TNS: illegal ADDRESS parameters (недопустимые параметры ADDRESS)Причина: неправильно указаны параметры протокола в разделе addressдескриптора соединения в файле tnsnames.ora.

ORA-12545 TNS: name lookup failure (невозможно найти имя)Причина: не удается установить контакт с прослушивающим процессомна удаленном узле.

ORA-12560 TNS: protocol adapter error (ошибка адаптера протокола)Причина: прослушивающий процесс не смог запустить процесс,соединяющий пользователя с сервером базы данных.

ORA-12571 TNS: packet writer failure (сбой в процедуре записи пакетов)Причина: ошибка при передаче данных.

ORA-03113 TNS: End of file on communication channel (конец файла в канале связи)Причина: преждевременная регистрация конца файла при передаче данных.Это может говорить об отказе линии связи (как минимум временном)или остановке сервера.

ORA-03121 TNS: no interface driver connection-function not performed (нет соединенияс драйвером интерфейса — функция не выполнена)Причина 1: неправильно указан префикс SQL'Net версии 1 в строкесоединения. Этот префикс должен иметь вид Т:, X: или:Р:.Пример: sqlplus nelson/hot_shot@T:marlenes-pc:skdlПричина 2: на клиентской машине, не имеющей локальной базы данных,были указаны только имя пользователя и пароль. •

Теперь разберем эти ошибки более подробно. Вы получите достаточ-но информации, позволяющей хотя бы в общих чертах понять, в чемдело, и советы, с каких действий можно начать разрешение проблемы.

OR А-12154: TNS: could not resolve database nameНа первый взгляд эта ошибка понятна и легко устранима. Однако со вре-менем вы увидите, что невозможность разрешить имя базы данныхможет быть вызвана многими причинами. Мой прошлый опыт свидетель-ствует, что над устранением этой ошибки можно биться очень долго. Приналичии нескольких каталогов $ORACLE_HOME иногда трудно опреде-лить, какой из файлов tnsnames.ora используется. Дело усугубляется тем,

Page 407: Oracle 8i Networking 101

Диагностика проблем Nets 389

что в версиях младше 8.1.5 Oracle Enterprise Manager хранит свою собст-венную копию сетевого программного обеспечения и файлов конфигура-ции. Net8 "видит" два файла tnsriames.ora в разных каталогах и, таксказать, приходит в замешательство. Вы, со своей стороны, можете неосознавать, что в системе есть два файла конфигурации. Как следствие,диагностика сильно усложняется.

Бывает и так, что в системе только один файл listener.ora и один файлtnsnames.ora, и ошибка ORA-12154 возникает, казалось бы, без всяких ви-димых причин. Недавно я провела несколько дней в попытках устранитьтакую ошибку и в конце концов, благодаря помощи двух удивительно тер-пеливых сотрудников Oracle — Питера Повинека и Пьера Бодина — обна-ружила, что в файле sqlnet.ora стояла ссылка на службу имен Oracle:

Q NAMES.DIRECTORY_PATH= (ONAMES)

При наличии такой записи Net8 вообще не использует файлtnsnames.ora. Ошибка исчезла, как только я изменила запись следующимобразом:

Q NAMES.DIRECTORY_PATH= (TNSNAMES,ONAMES)

Поиск причины, которая привела к выдаче этого сообщения об ошиб-ке, можно начать с просмотра всех каталогов Oracle с целью поиска до-полнительных копий файла tnsnames.ora. Этот подход хорошо работает,если версия вашей РСУБД не ниже, чем 7.3.4. Корпорация Oracle реко-мендует использовать для соединений Net8 самую последнюю версиюпрослушивающего процесса.

В главе 12 руководства администратора Net8 для OracleSi, Release 2предлагается следующий алгоритм поиска причин ошибки TNS-12154:

1. Проверить, что файл tnsnames.ora существует.

2. Проверить, нет ли в системе множественных копий tnsnames.ora.Если такие копии найдены, поместить в каждую из них уникальнуюзапись, чтобы было проще определить, какой файл использует Net8.

3. Проверить, что имя сетевой службы, указанное в строке соедине-ния, отображено в дескриптор соединения.

4. Проверить, нет ли дублирующихся копий файла sqlnet.ora.

5. При использовании доменных имен проверить, что файл sqlnet.oraсодержит параметр names.default_domain. Если этот параметр от-сутствует, в строке соединения необходимо указывать доменноеимя.

6. Если доменные имена не используются, а этот параметр указан, уда-лить или закомментировать его.

7. Если соединение устанавливается из диалогового окна, проверить,не используется ли символ "@" перед именем сетевой службы встроке Host.

8. Активизировать трассировку клиента и повторить операцию.

Page 408: Oracle 8i Networking 101

390 Глава 14

ORA-12198: TNS: could not find path to destinationЭто сообщение говорит о том, что клиент не смог определить местона-хождение базы данных, с которой он намеревался установить соедине-ние. В частности, вы получите это сообщение, если неправильно введетеимя сетевой службы. Следовательно, в первую очередь нужно убедиться,что имя вводится без ошибок и в полном соответствии с тем, как оно объ-явлено в файле tnsnames.ora. Затем нужно проверить:

• Правильно ли указано имя службы в разделе address файлаtnsnames.ora.

• Находится ли файл tnsnames.ora в нужном каталоге.

• Запущен ли прослушивающий процесс на том сервере,с которым вы пытаетесь соединиться.

• Если для входа используется диалоговое окно, не вводится лисимвол "@" перед именем сетевой службы.

ORA-12203: TNS: unable to connect to destinationЭто сообщение носит общий характер и может скрывать истинные при-чины ошибки. Чтобы не тратить время зря, вы должны сначала опреде-лить, в чем именно состоит проблема, и лишь потом приступать ккаким-либо исправлениям. Первое, что следует сделать при полученииэтого сообщения,— проверить последний по времени файл sqlnet.logна наличие других ошибок ORA. Этот файл находится в каталоге$ORACLE_HOME/network/log (платформа UNIX) или ORACLEJHOME\network\log (платформа Windows NT). Далее в этой главе показано, какчитать файлы журналов и трассировки. Если после анализа файла журна-ла вы придете к выводу, что вторичные ошибки отсутствуют, проверьте,подходит ли к вашей ситуации какой-либо из приведенных в таблице 14.3сценариев. В этой таблице перечислены возможные причины выдачи со-общения TNS-12203 и действия, которые можно предпринять для исправ-ления каждой из ситуаций.

Если вы успешно устанавливали соединения Net8, а потом внезапноначали получать сообщения об ошибках ORA-12203 и не можете найти ихпричину, то в качестве крайней меры на Web-сайте службы поддержкиOracle рекомендуется переустановить Net8 и адаптер TCP/IP. Что этоможет дать?

Если вы используете Windows NT и недавно устанавливали новый илиобновляли существующий продукт (неважно какой — Oracle или другогопроизводителя), то не исключено, что какие-то области реестра были пе-резаписаны или испорчены. Спустя некоторое время это может прояви-ться некорректной работой продуктов. При переустановке Net8 иадаптера TCP/IP информация в реестре будет восстановлена и проблемаисчезнет.

Page 409: Oracle 8i Networking 101

Диагностика проблем Nets 391

Таблица 14.3.Причины выдачи сообщения TNS-12203 и рекомендуемые действия

Причина Действия

Установленный протокол Oracleне соответствует базовомусетевому протоколу.

1. Проверьте файл sqlnet.log или файл трассировкиклиента на наличие других номеров ошибок. Еслидрайвер поддержки протокола отсутствует, вы увидитесообщения ORA-12203, ORA-12538 и/или ORA-00508.2. В системе UNIX запустите программу adapters изкаталога $ORACLE_HOME/bin, чтобы проверить,установлен ли подходящий протокол Oracle. Вы должныувидеть список установленных транспортных протоколовNet8, например IPC, TCP/IP, BEQueath, SSL и RAW.

Проверьте, существует ли указанное имя в файлеtnsnames.ora и правильно ли указана адреснаяинформация (в частности, хост и порт).

Убедившись, что база данных запущена,сделайте следующее:1. Проверьте, запущен ли прослушивающий процесс.Для этого введите командуIsnrctl status <имя_прослушивающего_процесса>.Если используется стандартный прослушивающийпроцесс LISTENER, то имя указывать не обязательно.2. Если прослушивающий процесс не запущен, введитекоманду Isnrctl start <имя_прослушивающего_процесса>.3. Проверьте, находится ли файл tnsnames.ora в нужномкаталоге.

Не функционирует прослушивающий Проверьте, запущен ли прослушивающий процесс,процесс в системе назначения. как было описано выше.

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

Net8 не смог найти дескрипторсоединения, указанный в файлеtnsnames.ora.

Проблемы на нижележащих сетевыхуровнях.

Файл tnsnames.ora находитсяне в том каталоге.

Несогласованность параметров(Н08Т=имя_сервера)протокола TCP/IP или(8ВЖЕ=приложение_1п8)протокола SPX у клиента и сервера.

Проверьте функционирование базового сетевогопротокола, используя утилиты операционной системы.Например, для TCP/IP попробуйте выполнить pingудаленной системы.

По умолчанию файлы listener.ora, tnsnames.ora и sqlnet.oraрасполагаются в каталоге $ORACLE_HOME/network/admin(система UNIX) или ORACLE_HOME\network\admin(система Windows NT). Если вы поместили их в другойкаталог, например, /etc в системе UNIX, проверьте, указанли он в переменной среды TNS_ADMIN.

При использовании протокола TCP/IP имена хостов,указанные файлах listener.ora клиента и сервера, должнылибо совпадать, либо как минимум транслироватьсяв один и тот же IP-адрес. Это особенно важно длясерверов с множественными IP-адресами, присвоеннымиразным интерфейсным адаптерам. Для протокола SPXимена служб обязаны совпадать.

Page 410: Oracle 8i Networking 101

392 Глава 14

Таблица 14.3 (продолжение)Причины выдачи сообщения TNS-12203 и рекомендуемые действия

Причина Действия

Nets не смог найти каталог Проверьте, указан ли каталог ORACE_HOME\binORACLE_HOME. в переменной среды PATH. В Windows NT базовым

каталогом для OracleSi по умолчанию являетсяOracle\0ra81.

В том случае, когда на машину с Windows NT устанавливалось несколь-ко версий Oracle и реестр пришел в полный беспорядок, может потребо-ваться предварительное удаление всего программного обеспеченияOracle. Программа установки иногда не справляется с этой задачей, и тог-да необходимо действовать грубыми методами. Разумеется, если у васесть ценная база данных, к которой сохранился нормальный доступ, топеред полным удалением Oracle следует сделать ее резервную копию илизащитить каким-либо другим способом.

Удаление выполняется следующим образом:

1. Остановите все службы Windows NT.

2. Удалите из реестра следующие разделы:HKEY_LOCAL_MACHINE/SOFTWARE/ORACLEHKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/SERVICES/Oracle*

3. Удалите с диска каталоги Oracle.

4. Удалите все системные переменные, относящиеся к Oracle.

5. Удалите ссылки на каталоги Oracle из переменной PATH.

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

OR А-12224: TNS: no listenerСогласно этому сообщению соединение не удалось установить из-за того,что прослушивающий процесс не был запущен или вообще отсутствует.Однако настоящая причина может заключаться в том, что указанный ад-рес назначения не совпадает с адресом, который используется прослуши-вающим процессом.

Например, если прослушивающему процессу назначен порт 1521, а впараметре port файла tnsnames.ora указан номер 1525, то вы получитеименно такое сообщение.

Другая возможность, которую следует иметь в виду при устраненииэтой ошибки,— несовместимость версий клиентского и серверного про-граммного обеспечения. Если вы работаете с двумя разными версиямисетевого программного обеспечения Oracle, то узнайте в службе под-держки, какие версии сертифицированы и как обстоят дела с ихсовместимостью.

Page 411: Oracle 8i Networking 101

Диагностика проблем Nets 393

OR A-12500: TNS: listener failed to starta dedicated server processДля UNIX-клиента сообщение об ошибке ORA-12500 почти всегда обу-словлено проблемой с компоновкой выполняемого файла, который выпытаетесь использовать, в частности, SQL*Plus. Все остальные возмож-ные причины связаны с сервером:

• Нехватка ресурсов• Ошибка при запуске выделенного процесса на сервере• Неправильная конфигурация среды операционной системы

Диагностика ошибки TNS-12500 на стороне клиента Первое, чтоследует предпринять при возникновении этой ошибки,— проверить,скомпонован ли необходимый адаптер протокола с используемым прило-жением. В системе UNIX это делается с помощью программы adapters,расположенной в каталоге $ORACLE_HOME/bin. Рассмотрим конкрет-ный пример.

Допустим, вы пытались запустить SQL*Plus и получили рассматривае-мое сообщение об ошибке. Перейдите в каталог $ORACLE_HOME/bin ивведите следующую команду:

Q adapters sqlplus

На экран будет выведено примерно следующее:

[_) Nets Protocol Adapters linked with SQL*Plus are:BEQ Protocol AdapterIPC Protocol AdapterTCP/IP Protocol AdapterRAW Protocol Adapter

Nets Naming Adapters linked with SQL*Plus are:Oracle TNS Naming AdapterOracle Naming Adapter

Если в разделе "Protocol Adapters" пусто, то возможно, что Ha вашейплатформе используются разделяемые библиотеки. Это означает, что се-тевой код загружается динамически. Можно определить, какую разделяе-мую библиотеку использует клиент. Как правило, это библиотекаlibclnttsh.so, находящаяся в каталоге $ORACLE_HOME/lib. Однако опре-деление местонахождения разделяемых библиотек зависит от платфор-мы. Например, в системе Solaris после ввода команды

Q $ Idd sqlplus

может быть выведено следующее:

Q libclntsh.so.1.0 => /u2/app/oracle/product/V816/lib/libclntsh.so.8.0

Узнав, где находится разделяемая библиотека, перейдите в этот ката-лог и повторите команду adapters, указав в качестве параметра имя биб-лиотеки (если указать полное имя файла, то каталог можно не менять).

Page 412: Oracle 8i Networking 101

394 Глава 14

Если на вашей платформе не используются разделяемые библиотеки,то попробуйте вручную найти ссылки на протокол внутри выполняемогофайла. В случае SQL*Plus и TCP/IP соответствующая команда будет вы-глядеть так:

Q nm sqlplus | grep nttini

nttini — это обозначение адаптера TCP/IP в SQL*Net версии 2 и Net8.Каждый адаптер протокола имеет свое собственное обозначение. Неко-

; торые из этих обозначений приведены в таблице 14.4.

Таблица 14.4.Обозначения адаптеров протоколов

Адаптер

TCP/IP

DECNET

Ш6.2

SPX

IPC

BEQ

Обозначение

nttini

ntdini

ntlini

ntsini

ntusini

ntpini

Если это не дало результата, перекомпонуйте выполняемый файлвручную. Легко сказать, но как это сделать? Начнем с того, что перед пе-рекомпоновкой любого выполняемого файла всегда следует делать егорезервную копию, чтобы при необходимости можно было вернуться на-зад. Кроме того, перед любой перекомпоновкой, особенно если речьидет об одном из выполняемых файлов Oracle, не забудьте остановитьбазу данных. Теперь приступим непосредственно к перекомпоновке, взявв качестве примера SQL*Plus.

Если у вас есть достаточные привилегии для выполнения этих дейст-вий, то перейдите в каталог $ORACLE_HOME/sqlplus/lib и введитеследующие команды:

Q make -f ins_sqlplus.mkinstall

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

Если ошибка ORA-12500 не исчезла, то следующее, что можно прове-рить,— это определения переменных ORACLEJHOME и ORACLE_SID, aтакже LD_LIBRARY_PATH. Проблемы часто возникают из-за отсутствияили неправильной установки этих переменных. Кроме того, можно по-пробовать изменить значение параметра AUTOMATIC_IPC в файлеsqlnet.ora на OFF (или добавить этот параметр, если он отсутствует).

Page 413: Oracle 8i Networking 101

Диагностика проблем Nets 395

Диагностика ошибок TNS-12500 на стороне сервера Теперь посмотрим, какие проблемы могут возникать на сервере UNIX. В первой ча-сти этого раздела вы видели, что сообщение ORA-12500 можетвыдаваться при неправильной компоновке адаптера протокола с приклад-ным выполняемым файлом. В этой части мы займемся выявлением компо-новочных проблем для прослушивающего процесса и выполняемого файлаOracle. К выдаче этого сообщения могут также приводить неправильноустановленные разрешения или переменные среды. .••'.

Чтобы определить, правильно ли скомпонован прослушивающийпроцесс, перейдите в каталог $ORACLE_HOME/bin и введите командуadapters, рассмотренную выше. На этот раз нужно указать в качестве па-раметра файл tnslsnr:

Q adapters tnslsnr

Вы увидите примерно следующие выходные данные:

Q Nets Protocol Adapters linked with tnslsnr are:BEQ Protocol AdapterIPC Protocol AdapterTCP/IP Protocol AdapterRAW Protocol Adapter

Net8 Naming Adapters linked with tnslsnr are:Oracle TNS Naming AdapterOracle Naming Adapter

Как вы уже знаете, если в разделе "Protocol Adapters" ничего не указа-но, то возможно, что на вашей платформе используются разделяемыебиблиотеки, то есть сетевой код загружается динамически. Выше говори-лось, как найти динамическую библиотеку и выполнить дополнительныепроверки, поэтому здесь эти шаги не приводятся.

Если ни одна из проверок не дала положительного результата, попро-буйте вручную перекомпоновать выполняемый файл Net8 (для этого нуж-но иметь соответствующие привилегии операционной системы).Перейдите в каталог $ORACLE_HOME/network/lib и введите следующиекоманды: -, • ,

Q make -f ins_network.mkinstall

Кстати, в Oracle версии 8.1.5 и выше достаточно ввести просто relinknetwork.

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

Чтобы проверить компоновку выполняемого файла Oracle, перейдитев каталог $ORACLE_HOME/bin и введите команду adapters с аргументом"oracle" вместо "tnslsnr". Далее действуйте так, как описано выше. Если выпридете к выводу, что нужна перекомпоновка, то выполните из каталога$ORACLE_HOME/rdbms/lib следующие команды:

Page 414: Oracle 8i Networking 101

396 Глава 14

Q make -f ins_rdbms.mkinstall

В OracleSi достаточно ввести relink oracle.Если проблемы остались, то проверьте разрешения для выполняемых

файлов tnslsnr и Oracle. Для этого нужно перейти в каталог $ORACLE_HOME/bin и ввести

Q Is -I tnslsnr

Вы должны увидеть следующее:

Q -rwsr-xr-x oracle dba

Если вы введете

Q Is -I oracle

то результат должен быть точно таким же. Если разрешения отличаютсяот показанных, то их можно изменить следующими командами:

Q chmod 4755 tnslsnrchmod 4755 oracle

Команда chmod изменяет режим защиты указанного файла. Числа по-казывают, какой объем привилегий будет предоставлен. Каждое из чиселсоответствует определенной группе привилегий. Разрешения UNIX ука-зываются в следующем порядке: User (пользовательские), Group (группо-вые) и Other (прочие). Буква "г" обозначает разрешение на чтение,которому соответствует число 4. Буква "и/1 обозначает разрешение на за-пись, ему соответствует число 2. Буква V обозначает разрешение на вы-полнение, ему соответствует число 1.

Числа могут складываться. Например, число 6 показывает наличиеразрешений на чтение и запись (4 + 2). Когда в команде chmod указанычетыре числа (см. табл. 14.5), крайнее левое имеет специальноезначение.

Если владелец файла или выполняемого модуля — не учетная записьoracle, вы можете изменить владельца, использовав следующие команды:

Q. chown oracle tnslsnrchown oracle oracle

ВниманиеНекоторые операционные системы UNIX позволяютвыполнять команду смены владельца (chown) толькопри наличии корневых привилегий.

После изменения привилегий или владельца необходимо перезапу-стить прослушивающий процесс или экземпляр базы данных, чтобы из-менения вступили в силу. Как и раньше, вам следует проверитьправильность установки переменных среды ORACLE_HOME, ORACLE_SID и LD LIBRARY PATH.

Page 415: Oracle 8i Networking 101

Диагностика проблем Nets 397

Таблица 14.5.Привилегии файла и каталога в UNIX

Буква Число Значение для файла Значение для каталога

SUID

SGID

SVTX

Разрешает чтение.

Разрешает запись.

Разрешает выполнение.

Программа будет запускатьсяс разрешениями владельцафайла.

Программа будет запускатьсяс разрешениямиидентификатора группы.

Разрешает просмотрсодержимого.

Разрешает добавлениеи удаление файлов.

Разрешает выполнятькоманду cd.

Новые файлы,созданныев каталоге, будут наследоватьтот же идентификатор группы,что и каталог.

Для удаления файлапользователь должен владетьэтим файлом или всемкаталогом.

ДиаГНОСТИКа нерегулярных ОШИбоК TNS-12500 Если вы получае-те сообщения об ошибках ORA-12500 нерегулярно, то вероятно, что сер-веру не хватает ресурсов. Учтите, что поиск исчерпанного ресурса можетоказаться непростой задачей. В таблице 14.6 перечислены причины, покоторым могут быть исчерпаны те или иные ресурсы, и возможные дей-ствия, которые помогут смягчить проблему.

Таблица 14.6.Причины исчерпания ресурсов и принимаемые меры

Причина Принимаемые меры

Значение параметраprocesses в файле init.oraслишком мало.

Увеличьте значение этого параметра.

Значения параметров ядра UNIX Увеличьте значения системных параметров пргосслишком малы для поддержки или maxuprc.требуемого количествапроцессов или пользователей.

Недостаточный размер файла Увеличьте файл подкачки,подкачки.

Page 416: Oracle 8i Networking 101

398 Глава 14

Таблица 14.6 (продолжение)Причины исчерпания ресурсов и принимаемые меры

Причина Принимаемые меры

Задействовано средство, трассировки Otrace.

!

Недостаточно системныхресурсов для обслуживаниявсех параллельных запросовна соединения.

По умолчанию использование Otrace разрешено, что можетпривести ко многим проблемам.

Чтобы отключить Otrace:1. Остановите базу данных Oracle.2. Перейдите в каталог $ORACLE_HOME/otrace/admin.3. Удалите все файлы с расширением .dat.4. Перезапустите базу данных.

Чтобы в файлы трассировки не добавлялись новые записи:1. Установите переменную среды EPC_DISABLED=TRUEв профиле или сценарии входа для учетной записи,являющейся владельцем программного обеспечения Oracle.Это предотвратит трассировку прямых соединенийс сервером.2. Добавьте параметр (ENVS='EPC_DISABLED=TRUE')в раздел SIDJDESC раздела SIDJJST в файле listener.ora.Это предотвратит трассировку клиентских соединений.

Задействуйте многопоточный сервер:1. Остановите базу данных.2. Модифицируйте файл init.ora этой базы данных, включивв него следующие параметры:mts_dispatchers="(address=(<npOTOKOfl>)(<xocT>))^количество диспетчеров>)(<количество соединений>)"mts_max_dispatchers=<MaKCHMaflbHoe количестводиспетчеров>т18_8еп/ег5=<количество запускаемых разделяемыхсерверов>т15_глах_зегуег8=<максимальное количестворазделяемых серверов>mts_service=<HMfl SID>mts_listener_address=<aflpec прослушивающегопроцесса TNS>3. Перезапустите базу данных.Пример: mts dispatchers="(address=(proto-col=TCP)(host=MARLENES-PC)(port=5001)) (dispatchers=2)"mts_max_dispatchers= 10mts_servers=2mts_max_servers=4mts_service=SKDLmts listener address="(address=(protocol=TCP)(host=NELSONS-PC) (port=1521))"

Page 417: Oracle 8i Networking 101

Диагностика проблем Nets 399

Диагностика ошибки TNS-12500 в Windows NT В системе WindowsNT проблемы могут возникать, когда процесс, установивший и запустив-ший Oracle и прослушивающий процесс, принадлежит учетной записиAdministrator. Как и в системах UNIX и Open VMS, у вас должна быть от-дельная учетная запись для установки Oracle и сопутствующих продуктов.Чтобы проверить, запущены ли службы и является ли их владельцем по-льзователь Oracle, откройте окно служб (Start >• Settings >• Control Panel>• Services).

Найдя запись Огас1еОгаНоте81Т№<имя_прослушивающего_процес-са> (для OracleSi, Release 2) или OracleService<sid> (для OracleS.1.5),посмотрите, какой режим запуска установлен (автоматический или руч-ной) и запущена ли служба в данный момент. Учтите, что для версийболее ранних, чем OracleSi, будут присутствовать две записи — OracleSer-vice<sid> и OracleStart<sid>. Обе службы должны быть запущены. Если этоне так, запустите их вручную, щелкнув на кнопке Start в правой части диа-логового окна. Когда в качестве сервера Oracle используется машина сWindows NT, службы должны запускаться автоматически на этапе загруз-ки системы.

Еще одна типичная проблема — несовпадение SID, показанного дляOracleService, с тем значением, которое присутствует в файле listener.oraили в клиентском файле tnsnames.ora.

Пока мы находимся в окне служб, щелкните на записи для прослушива-ющего процесса, а потом — на кнопке Startup. Появится диалоговое окно,аналогичное показанному на рис. 14.7.

Убедитесь, что для входа используется системная учетная запись. Еслиэто не так, щелкните на переключателе System Account. Чтобы изменениевступило в силу, необходимо остановить и перезапустить прослушиваю-щий процесс.

Если ничего не помогло, то возможно, что вам следует просто переза-пустить экземпляр.

Swvice: OradeOiaHomeeiTNSLtttener

Startup Type

i Г Manual

i Г Cabled

Log On As:

<* System Account

Г AJow Service to Interact with Desktop

• Г Ihis Account f~

Г

Рис. 14.7. Установка режима запуска службы

Page 418: Oracle 8i Networking 101

400 Глава 14

Диагностика нерегулярных ошибок TNS-12500 в Windows NTJB системе Windows NT намного проще дойти до полного исчерпания ре-сурсов. Если сообщения ORA-12500 появляются нерегулярно, попробуйтеувеличить объем доступной памяти, либо удалив ненужные процессы,либо добавив физическую память. Чтобы устранить симптомы (по край-ней мере временно), можно также увеличить размер файла подкачки.

Средство трассировки Otrace может вызывать проблемы не тольков UNIX, но и в Windows NT. Его отключение выполняется следующимобразом:

1. Остановите базу данных.

2. Перейдите в каталог ORACLE_HOME\Otrace\admin.

3. Удалите все файлы с расширением .dat.

4. Перезапустите базу данных.

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

1. Установите в реестре параметр EPC_DISABLED=TRUE для той учет-ной записи, которая является владельцем программного обеспече-ния Oracle. Это предотвратит трассировку прямых соединений ссервером.

2. Добавьте параметр (ENVS='EPC_DISABLED=TRUE') в разделSID_DESC раздела SIDJLIST в файле listener.ога. Это предотвратиттрассировку клиентских соединений.

Еще одна возможная причина — слишком мало значение параметраprocesses в файле init.ora.

ORA-12533: TNS: illegal ADDRESS parametersЭта проблема понятна и легко устранима. Выдача сообщения ORA-12533говорит об ошибке в разделе address файла tnsnames.ora Внимательнопроверьте параметры протокола для того соединения, которое вы пыта-лись устанавливать, и внесите исправления.

ORA-12545: TNS: name lookup failureПо моему мнению, это сообщение несколько дезориентирует, хотя самапроблема относительно проста. Ошибка ORA-12545 говорит о невозмож-ности установить контакт с прослушивающим процессом на удаленномсервере. Одна из возможных причин — несоответствие параметровраздела address в клиентском файле tnsnames.ora и файле listener .ога.

Другая причина заключается в том, что прослушивающий процесс нефункционирует. Следовательно, вам нужно проверить, был ли запущенпрослушивающий процесс.

Page 419: Oracle 8i Networking 101

Диагностика проблем Net8 401

ORA-12560: TNS: protocol adapter errorЭто сообщение говорит лишь о том, что прослушивающий процесс несмог запустить процесс, обеспечивающий связь пользователя с базой дан-ных. Чтобы определить истинную причину, следует включить трассиров-ку и попытаться еще раз выполнить операцию. Просмотрев затем файлтрассировки, вы сможете получить лучшее представление о том, где насамом деле возникла проблема. Говоря о включении трассировки, я име-ла в виду средство сетевой трассировки Net8, а не Otrace.

ORA-12571: TNS: packet writer failureЭта ошибка возникает в процессе передачи данных, ее причина обычноне видна пользователю. Чтобы лучше понять, что произошло на самомделе, включите трассировку и попытайтесь еще раз выполнить опера-цию. Если информация из файла трассировки не поможет решить проб-лему, обратитесь в службу поддержки Oracle.

ORA-03113: TNS: end of file on communication channelПричины выдачи сообщений об ошибках ORA-12571 и ORA-03113 во мно-гом похожи. Оба сообщения свиде?ельствуют о преждевременном разры-ве соединения. Отчасти это может быть обусловлено большимрасстоянием между клиентом и сервером. Одно из возможных решенийсостоит в увеличении числа попыток повторного соединения для прото-кола TCP/IP. Для этого нужно внести изменения в реестр Windows на ма-шине клиента.

При операциях с реестром всегда есть риск принести больше вреда,чем пользы. Следует подходить к этому делу с большой осторожностью.Не забудьте сделать резервную копию перед внесением каких-либоизменений.

Вам предстоит добавить параметр TcpMaxDataRetransmissions (типаREG_DWORD) со значением 15 в реестр Windows NT на машине клиента.Ниже приводится подробное пошаговое описание этой процедуры.

1. Откройте меню Start и выберите пункт Run.Откроется диалоговое окно Run.

2. Введите regedt32 в поле Open и нажмите Enter. Использованиеregedt32 вместо regedit вызвано тем, что вы добавляете параметр, ане просто просматриваете или удаляете данные реестра.

3. Убедитесь, что в меню View установлен режим "Tree and Data".

4. Найдите окно с заголовком "HKEY_LOCAL_MACHINE on LocalMachine" и дважды щелкните на папке SYSTEM. На рис. 14.8 показанредактор реестра с окном HKEY_LOCAL_MACHINE и выбраннымразделом SYSTEM.

5. Дважды щелкните на папке CurrentControlSet. •6. Дважды щелкните на папке Services.

7. Дважды щелкните на папке Tcpip.

14 Зак. 726

Page 420: Oracle 8i Networking 101

402 Глава 14

Рис. 14.8. Редактор реестра с окном HKEY_LOCAL_MACHINE

8. Щелкните на папке Parameters.

9. Выберите в меню Edit пункт Add Value.

10. В поле Value Name введите TcpMaxDataRetransmissions.

11. Выберите REG_DWORD в раскрывающемся списке Data Type.

12. Щелкните на кнопке ОК.

13. В диалоговом окне DWORD Editor введите число 15 в поле Dataи убедитесь, что выбран переключатель Hex.

14. Щелкните на кнопке ОК.

В панели данных должен появиться новый параметр. Если этого непроизошло, повторите описанные шаги.

Если на машине клиента установлена Windows 95, то для увеличениячисла попыток повторной передачи нужно добавить в реестр параметрMaxDataRetries типа REGJDWORD со значением 15. Это делается практи-чески так же, как и в Windows NT, однако вместо regedt32 используетсяregedit. Первые шесть шагов полностью совпадают, а остальные шаги,начиная с седьмого, перечислены ниже.

7. Дважды щелкните на папке vxd.

8. Щелкните на папке MSTCP.

9. В меню Edit выберите New, а затем String Value.

10. В правой панели появится поле со строкой "New Value #1".Введите вместо нее MaxDataRetries и нажмите Enter.

11. Щелкните правой кнопкой на новом параметре и выберитев появившемся контекстном меню пункт Modify.

12. Введите число 15 в поле Value Data.

Page 421: Oracle 8i Networking 101

Диагностика проблем Nets 403

В панели данных должен появиться новый параметр. Если этого непроизошло, повторите описанные шаги.

Другая причина, по которой можно получить сообщение ORA-03113,заключается в том, что Net8 пытается передать пакет пять раз, пока не за-фиксирует отказ сети. Значение 5 — это число попыток передачи пакета,устанавливаемое по умолчанию для протокола TCP/IP в Windows 95 иWindows NT. С другой стороны, сервер может не получить последнийпереданный пакет. В этом случае возвращается ошибка с номером 54, ин-терпретируемая как "connection reset/network is busy" ("сброс соедине-ния/занятость сети"). Получив такую ошибку, Net8 предполагает, чтосервер отключился, и закрывает соединение. Необходимо проверить,что произошло на самом деле — отказ сети (возможно, временный) илиотключение сервера.

Если вам потребуется дополнительная информация по диагностикеэтой ошибки, обратитесь к документации на операционную систему.

OR А-03121: no interface driver connection—function not performedВы получите это сообщение, если по ошибке укажете в строке соедине-ния Net8 префикс в стиле SQL*Net версии 1. Очевидное решение — не ис-пользовать перечисленные ниже префиксы:

' Т:

• X:• Р:

Другая возможная причина состоит в том, что на клиентской машине,не имеющей локальной базы данных, в строке соединения были указанытолько имя пользователя и пароль. Решение столь же очевидно — убеди-тесь, что вводится полная строка соединения.

, П'|-' I . '

Файлы журналов и трассировки Net8У меня довольно необычная аллергия — на перец (как приправу). Я могубез опасений есть все, что угодно, но даже небольшая добавка черногоили белого перца вызывает у меня аллергическую реакцию. Определитьпричину было нелегко, поскольку я никогда не использую эту приправупри готовке и никогда не добавляю ее перед едой. Как же мне удалосьнайти источник проблем? Поскольку аллергия возникала только на рес-торанную еду, при каждом проявлении симптомов я сразу же интересова-лась, какие ингредиенты использовались для приготовления блюд.Собрав статистику за несколько недель, я смогла определить, что единст-венным постоянно присутствующим ингредиентом был перец. Затем япровела решающий тест — намеренно добавила перец в свою обычнуюпищу, которая никогда не вызывала аллергии, и получила ту же самую ре-акцию. Таким образом я убедилась, что во избежание неприятностей мнене следует есть пищу, приправленную перцем.

14*

Page 422: Oracle 8i Networking 101

404 Глава 14

Проанализируем мой подход. Я сталкивалась с проблемой каждый раз,когда происходило определенное событие. Записывая все факты, кото-рые, по моему мнению, могли быть причиной, я в конце концов смогланайти корреляцию и поставить диагноз, после чего выработала эффек-тивное решение. Ключом к успеху послужило то, что я протоколировалавсе события, приводившие к проблеме. По существу, NetS делает то же са-мое. Когда происходит событие, свидетельствующее о наличии пробле-мы, он сохраняет запись об этом событии в файле журнала. Кроме того,NetS сохраняет трассировочную информацию, позволяющую узнать, чтопроисходило до появления проблемы.

В этой части главы я расскажу о том, как использовать файлы журна-лов и трассировки NetS для выявления и разрешения проблем с сетьюOracle.

Изучение файлов журналовЕсли вы не указали, где должны размещаться файлы журналов, топо умолчанию NetS будет создавать их в каталоге $ORACLE_HOME/network/log (в UNIX) или ORACLE_HOME\network\log (в Win-dows NT). Когда файл журнала генерируется на клиентской машине, онпомещается в текущий рабочий каталог пользователя.

NetS добавляет запись в файл журнала каждый раз, когда сталкиваетсяс ошибками или предпринимает какие-либо действия. Сообщения обошибках, которые выводятся на экран, не всегда содержат достаточноинформации, чтобы начать поиск причин. Файл журнала NetS предо-

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

Вас интересует, что именно находится в файлах журналов NetS? Когдапрослушивающий процесс в ходе обработки клиентского запроса на сое-динение сталкивается с какой-либо ошибкой, информация о ней записы-вается в журнал. Вспомните, что в главе 2 мы говорили о стекепротоколов Oracle. NetS ведет стек ошибок, отражающий состояние про-граммных компонентов различных уровней. Однако ошибки не будутфиксироваться, пока вы не включите режим протоколирования у клиен-тов или на серверах имен Oracle. Управлять протоколированием (в томчисле заменять и удалять файлы журналов) могут только администрато-ры или пользователи, которым были предоставлены соответствующиепривилегии. Помимо ошибок журнал прослушивающего процесса содер-жит данные аудита для каждого из клиентских запросов на соединение, атакже большую часть выданных команд управления прослушивающимпроцессом.

Догадываетесь ли вы, какая проблема может возникнуть при хранениив файле журнала всей этой информации? Совершенно верно, файл можетвырасти до очень больших размеров. Если вы разрешаете протоколиро-вание на уровне Admin или Support, то должны контролировать размерфайла, чтобы он не стал слишком громоздким.

Page 423: Oracle 8i Networking 101

Диагностика проблем Nets 405

Пример файла журналаЯ только что запустила свой прослушивающий процесс, имеющий стан-дартное имя LISTENER. Запуск прошел без ошибок, и в файл журналапрослушивающего процесса была записана следующая информация:

Q TNSLSNR for 32-bit Windows: Version 8.1.6.0.0 - Production on 12-MAY-2000 19:36:57(c) Copyright 1998, 1999, Oracle Corporation. All rights reserved.

• :

System parameter file is D:\0racle\0ra81\network\admin\listener.oralog messages written to D:\0racle\0ra81\network\log\lsnr.ldgTrace information written to D:\0racle\0ra81\network\trace\lsnr.trcTrace level is currently 16

, •Listening on: (DESCRIPTION(ADORESS=(PROTOCOL=tcp)(HOST=ma rlenes-pc)(PORT=1521)))TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE

Поскольку ошибки отсутствовали, информации не очень много. Преж-де всего вы видите используемую версию РСУБД, а также дату и время за-пуска прослушивающего процесса. Далее показано местонахождениефайла конфигурации, файла журнала и файла трассировки. Это полезнаяинформация, поскольку при наличии в системе нескольких файлов кон-фигурации вы сможете точно узнать, какой из них использовался при за-пуске прослушивающего процесса. Разумеется, если вы указали дляфайлов журналов и трассировки нестандартные каталоги и забыли, какиеименно, то для просмотра журнала придется сначала выполнить его по-иск. В следующей строке показан установленный уровень трассировки, аеще ниже — протокол, имя хоста и прослушиваемый порт. Последняястрока вызывает некоторое недоумение, не так ли? Для удобства приведуее еще раз:

Q TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE

Эта строка выглядит бессмысленно. Можете ли вы сказать, для чегоона может использоваться и почему находится в файле lsnr.log? Подумай-те над этим вопросом, когда будете просматривать следующий листинг.

Теперь посмотрим, какая информация записывается в файл журналапри возникновении ошибок. Вот пример записей из моего файла lsnr.log:

Q TNSLSNR for.32-bit Windows: Version 8.1.6.0.0 - Production on 10-MAY-2000 04:20:29(c) Copyright 1998, 1999, Oracle Corporation. All rights reserved.

System parameter file is D:\0racle\0ra81\network\admin\listener.oraLog messages written to D:\ORACLE\Ora81\network\log\lsnr.logTrace information written to D:\ORACLE\Ora8T\network\trace\lsnr.trcTrace level is currently 6

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=marlenes-pc)(PORT=1521)'))TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE

10-MAY-2000 04:20:31(CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=theriml1))(COMMAND=sta-tus)(ARGUMENTS=64)

Page 424: Oracle 8i Networking 101

406 Глава 14

(SERVICE=LISTENER)(VERSION=135290880))* status * 406NNC-00406: name "LISTENER_marlenes-pc" does not existNNC-00406: name "SKDL.world" does not existNNC-00406: name "PLSExtProc" does not exist

10-MAY-2000 04:21:10 * service_register * SKDL * 010-MAY-200004:21;40(CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=theriml1))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=135290880)) * status * 406NNC-00406: name "LISTENERjnarlenes-pc" does not existNNC-00406: name "SKOL.world" does not existNNC-00406: name "PLSExtProc" does not exist

10-MAY-2000 04:24:08 * service_died * SKDL * 12547TNS-12547: TNS:lost contact

TNSLSNR for 32-bit Windows: Version 8.1.6.0.0 - Production on 10-MAY-2000 10:14:24

(c) Copyright 1998, 1999, Oracle Corporation. All rights reserved.

System parameter file is D:\0racle\0ra81\network\admin\listener.oraLog messages written to D:\0racle\0ra81\network\log\lsnr.logTrace information written to D:\0racle\0ra81\network\trace\lsnr.trcTrace level is currently 6

Listening on: (DESCRIPTION^ADDRESS=(PROTOCOL=tcp)(HOST=marlenes-pc)(PORT=1521)))TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODETNS-01155: Incorrectly specified SID_LIST_listener parameter in LISTENER.ORANL-00305: the specified path name does not existNo longer listening on:(DESCRIPTION=(ADDRESS=(PROtOCOL=tcp)(HOST=marlenes-pc)(PORT=1521)))

Как видите, объем информации довольно большой. Попробуем раз-бить этот листинг на части, чтобы разобраться, что произошло. Фактиче-ски здесь представлены две записи, сделанные в разные моментывремени и относящиеся к двум разным ошибкам. Сейчас я немного забегувперед и приведу несколько строк, на которые хотела бы обратить вашевнимание в первую очередь.

Q TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE10-MAY-2000 04:20:31(CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=theriml1) )(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=135290880)) * status * 406

Первая строка уже была показана раньше, но на этот раз под ней нахо-дится дополнительная информация. Теперь вам понятно назначениеэтой строки? Она используется в качестве заголовка. Если вы вниматель-но просмотрите листинг, то заметите, что некоторым данным предшест-вует заголовок, а некоторым — нет. Попробуйте найти второй заголовоки относящиеся к нему данные. Учтите, что информация, указанная в квад-ратных скобках ([]), может отсутствовать. В частности, это справедливодля показанного выше фрагмента. Там присутствует отметка времени иданные о соединении, но нет сведений о протоколе, а информация о

Page 425: Oracle 8i Networking 101

Диагностика проблем Nets } 407

событии не дополнена значением SID. Код состояния равен 406. Преждечем переходить к анализу ошибок, возникших в моей среде, хочу дать вамвозможность самим определить, в чем состояли проблемы, и подумать овозможных путях их разрешения.

' г . • -•

Сетевые уровни и сообщения об ошибкахИнтерфейс Net8 взаимодействует с несколькими различными уровнями,каждый из которых имеет свое обозначение. Эти обозначения и соответ-ствующие им уровни приведены в таблице 14.7.

Таблица 14.7..* » ы .«Уровни сетевого интерфейса Net8

Обозначение Описание

NR Уровень сетевой маршрутизации (Network Routing)

NN Уровень сетевого именования (Network Naming) (сервер имен Oracle)

NS Уровень сетевого сеанса (Network Session) (основной и вспомогательныйуровни)

NA Собственные службы (Native Services), включая сетевую аутентификацию(Network Authentication, NA) и сетевое шифрование (Network Encryption,NAE)

NT Сетевой транспорт (Network Transport) (основной и вспомогательныйуровни, а также уровень операционной системы)

Информация о том, с каким уровнем взаимодействовал Net8 при воз-никновении ошибки, может помочь в определении ее причин и способовустранения. Сообщения об ошибках, содержащиеся в первой части лис-тинга, содержат аббревиатуру NNC. Таким образом, можно с легкостьюопределить, что все эти ошибки связаны с уровнем сетевого именования.Это указывает на то, что нужно искать проблемы с разрешением имен иконфигурацией соединения. Кроме того, можно проверить, запущен липрослушивающий процесс. Заметьте, что сообщения об ошибках повторя-ются дважды, причем во второй раз они подводят ближе к корням пробле-мы. Видно, что прослушивающий процесс перестал отзываться исоединение оборвалось. Согласитесь, это несколько сужает область поис-ка. Подумайте сами, что можно сделать для устранения данной проблемы.

Посмотрим, что можно сказать о второй ошибке. Аббревиатура NLотсутствует, поэтому можно предположить, что мы имеем дело с общейошибкой сетевого уровня (Network Layer). Поскольку сообщениеоб ошибке имеет вид "TNS-01155: incorrectly specified SID_LIST_listener parameter in LISTENER.ORA", следует проверить параметрыsid_list_LISTENER в файле listener.ora.

После небольшой практики вы легко сможете определять, на какомуровне интерфейса Net8 возникают ошибки. Это помогает лучше понятьих причины. Но если диагностика и разрешение проблемы вызывают за-труднения, не тратьте время понапрасну. Звоните в службу поддержкиOracle.

Page 426: Oracle 8i Networking 101

408 Глава 14

Изучение файлов трассировкиЕсли вы не указали, где должны размещаться файлы трассировки, топо умолчанию Net8 будет создавать их в каталоге $ORACLE_HOME/network/trace (в UNIX) или ORACLE_HOME\network\trace (в Win-dows NT). В OracleSi, Release 2 v8.1.6.0.0 инструмент Net8 Assistant содер-

,, жит ошибку. Когда вы создаете прослушивающий процесс и включаететрассировку, необходимые параметры не записываются в файл liste-ner.ora. Для включения трассировки необходимо отредактировать этотфайл вручную, поместив в него следующие параметры:

Q. ТЯАСЕ_1_ЕУЕ1_<имя_прослушивающего_процесса> = <уро,вень_трассировки>ТНАСЕ_РИЕ_<имя_прослушивающего_процесса>= <имя_файла>ТВАСЕ_01НЕСТОНУ_<имя_прослушивающего_процесса> = <каталог>

В моем файле listener.ora эти параметры определены таким образом:

Q TRACE_LEVEL_LISTENER = SUPPORTTRACE_FILE_LISTENER = LSNRTRACE_DIRECTORY_LISTENER = D:\0racle\0ra81\network\trace

Имя прослушивающего процесса — LISTENER, файл будет названIsnr.trc и размещен в каталоге D:\Oracle\Ora81\network\trace.

Имейте в виду, что трассировка — это очень ресурсоемкий процесс.Ее следует использовать только в тех случаях, когда причины проблем спрослушивающим процессом не удается выявить другими способами. Незабывайте выключать трассировку после устранения проблем.

Файлы и параметры трассировкиКаждый компонент Net8 генерирует свой собственный файл трассиров-ки. Эти файлы перечислены в таблице 14.8.

Таблица 14.8.Файлы трассировки Nets

Имя файла Компонент, генерирующий файл

sqlnet.trc

svr_<pid>.trc

names.trc

Клиент

Сервер

Прослушивающий процесс

,

cman <pid>.trc (в UNIX) Шлюзовой процесс менеджера соединений Oraclecman<pid>.trc (в Windows NT) (CMGW)

cmadm_<pid>.trc (в UNIX) Административный процесс менеджера соединенийcmadm<pid>.trc (в Windows NT) Oracle (CMADMIN)

Как упоминалось выше, для включения трассировки соединений про-слушивающего процесса нужно поместить определенные параметры вфайл listener.ora. Устанавливая параметры в других файлах конфигура-ции Net8, можно собирать информацию о клиенте, сервере Oracle,

Page 427: Oracle 8i Networking 101

Диагностика проблем Net8 409

сервере имен Oracle или процессах менеджера соединений. В частности,управление трассировкой клиента и сервера осуществляется через пара-метры файла sqlnet.ora, которые перечислены в таблице 14.9.

Таблица 14.9.Параметры трассировки, устанавливаемые в файле sqlnet.ora

Параметр Описание

trace_level_client

,.,

.

, . :

trace_directory_client.

trace_file_client

trace_unique_client'

'"••

trace_level_server

,.

.

•.

••

trace_directory_server

trace file server

Степень детализации трассировочной информации для клиента.Может принимать числовые значения в диапазоне от 0 до 16(О — трассировка выключена, 16 — максимальная детализация)или символьные значения OFF, ADMIN, USER, SUPPORT.OFF (эквивалентен 0) — трассировка выключена.USER (эквивалентен 4) — трассировка для выявления ошибок,вызванных действиями пользователя.ADMIN (эквивалентен 6) — трассировка для выявлениясистемных ошибок.SUPPORT (эквивалентен 16)-трассировка, ориентированнаяна службу поддержки.

Каталог для клиентского файла трассировки. По умолчанию:$ORACLE HOME/network/trace (в UNIX) ,и ORACLE_HOME\network\trace (в Windows NT).

Имя файла трассировки для клиента. По умолчанию: sqlnet.trc.

Определяет, будет ли сохраняться уникальность клиентских фай-лов трассировки. Если установлено значение ON, то имя каждо-го файла трассировки дополняется идентификатором процесса,чтобы несколько файлов могли существовать одновременно.Если установлено значение OFF, то существующий файл переза-писывается при генерации нового файла. Уникальные именафайлов имеют вид sqlnet<pid>.trc.

Степень детализации трассировочной информации для сервера.Может принимать числовые значения в диапазоне от 0 до 16(О — трассировка выключена, 16 — максимальная детализация)или символьные значения OFF, ADMIN, USER, SUPPORT.OFF (эквивалентен 0) — трассировка выключена.USER (эквивалентен 4) — трассировка для выявления ошибок,вызванных действиями пользователя.ADMIN (эквивалентен 6) - трассировка для выявлениясистемных ошибок.SUPPORT (эквивалентен 16) —трассировка, ориентированнаяна службу поддержки.

Каталог для серверного файла трассировки. По умолчанию:SORACLE HOME/network/trace (в UNIX)и ORACLE_HOME\network\trace (в Windows NT).

Задает имя файла трассировки для сервера.По умолчанию: svr_<pid>.trc.

Page 428: Oracle 8i Networking 101

410 Глава 14

В файл sqlnetora можно включить дополнительные параметры трас-сировки tnsping.trace_level и tnsping.trace_directory, разрешающиеиспользование утилиты tnsping. Эта утилита позволяет определить до-стижимость службы в сети Net8. Параметр tnsping.trace_level можетпринимать числовые значения от 0 до 16 или символьные значенияOFF, USER, ADMIN, SUPPORT. Они аналогичны по смыслу значениямпараметра trace_level_server, описанным в таблице 14.9. Параметрtnsping.trace_directory задает каталог для файла трассировки tnsping.

Для управления трассировкой сервера имен Oracle используютсяпараметры names.trace_level names.trace_directory и names.trace_file,задающие уровень трассировки, каталог и имя файла; они аналогичны па-раметрам трассировки прослушивающего процесса, указываемым в фай-ле listener.ora, отличаясь от них только именами. Еще один параметр,names.trace_unique, обеспечивает уникальность имен файлов трасси-ровки, позволяя сохранять в одном каталоге несколько файлов. Дляэтого ему нужно присвоить значение ON. Имена файлов имеют видnames<pid>.trc, где pid — идентификатор процесса, выполняющеготрассировку.

В файле cman.ora можно указывать параметры tracing и trace_directo-гу. Если tracing=YES, то CMGW создает файл трассировки с именемcman^<pid>.trc (в UNIX) или cman<pid>.trc (в Windows NT). Значениеtrace_directory определяет каталог, в котором будут размещаться этифайлы.

Расшифровка выходных данныхВ 1993 году я провела несколько месяцев в Германии. Мне понравиласьэта страна, но я почти не умела говорить по-немецки. Однажды мне по-требовалось купить карту города, в котором я жила. С помощью немецко-го разговорника я выучила вопрос о том; где находятся карты городов.Я долго тренировалась, чтобы сказать эту фразу как следует. Набравшисьхрабрости, я вошла в местный книжный магазин и задала свой вопрос.Видимо, урок был выучен хорошо, поскольку продавец быстро что-то от-ветил и ушел. А я осталась стоять на месте в шоке, осознав, что совершен-но не представляю, как это перевести. Потратив массу времени на то,чтобы выучить вопрос, я ничего не предприняла для того, чтобы понятьответ.

Мне было неловко переспрашивать по-английски, поэтому я вышла измагазина и направилась вниз по улице, пока не увидела другой магазин скартами на витрине. На этот раз я сразу задала свой вопрос по-английскии получила карту. Мораль заключается в том, что можно собрать всютрассировочную информацию в мире, но если не знать, что она означает,это не принесет ни малейшей пользы.

Файлы трассировки позволяют узнать, какие пакеты передаются меж-ду узлами сети. Они помогают определить, с каким компонентом Net8связана проблема. Наконец, они содержат коды ошибок, которые помога-ют определить первоисточник этой проблемы.

Page 429: Oracle 8i Networking 101

Диагностика проблем Net8 411

Просмотр пакетовКак вы уже знаете, для пересылки информации по сети используютсяпакеты. Net8 не является исключением. Уровень трассировки SUPPORTпозволяет просматривать содержимое пакетов Net8. Чтобы лучше пони-мать значение кодов, которые вы увидите, обратитесь к таблице 14.10,где перечислены типы пакетов Net8.

Таблица 14.10.Типы пакетов Nets

ОбозначениеNSPTCN

NSPTAC

NSPTRF

NSPTRS

NSPDA

NSPCNL

NSPTMK

Расшифровка

СоединениеПриемОтказПовторная передачаДанные

:; ' 'УправлениеМаркер • • - ; • • •

Когда возникает проблема с соединением, в файл трассировки запи-сывается код ошибки. Сообщение об ошибке будет иметь префикс<ERROR> или <FATAL>. Типичный вид файла трассировки приведенниже.

Q nspsend: entry . .nspsend: plen-244, type=6ntpwr: entryntpwr: exit-<ERROR>- nspsend: transport write errornspsend: error exitnserror: entry-<ERROR>- nserror: nsres: id=0, op=65, ns=12541, ns2=12560; nt[0]=511, nt[1]=61, nt[2]=0-<ERROR>- nsopen: unable to open transportnricdt: Call failed..',nricdt: exit-<ERROR>- osnqper error from nricall-<ERROR>- osnqper nr err.code: 12203-<ERROR>- osnqper ns main err code: 12541-<ERROR>- osnqper ns (2) err code: 12560-<ERROR>- osnqper nt main err code: 511-<ERROR>- osnqper nt (2) err code: 61-<ERROR>- osnqper nt OS err code: 0osnqme: entryosnqme: reporting nr (1) error: (12203) as rdbms err (12203)osnqme:. exit-<ERROR>- onstns: Couldn't connect, returning 12203nricall: Exiting NRICALL with following termination result -1nricall: exit

Page 430: Oracle 8i Networking 101

412 Глава 14

osnqme: entryosnqme: reporting nr (1) error: (12203) as rdbms err (12203)osnqme: exit-<ERROR>- onstns: Couldn't connect, returning 12203-<ERROR>- osnqper: error from nricall

Здесь содержатся сообщения о реальных ошибках. Можете ли вы ска-зать, какая ошибка была возвращена через стек протоколов? Совершенноверно, ORA-12203. Найдя самый последний код ошибки NS, вы сможетелучше понять проблему, поскольку сеансовый уровень управляет соедине-нием. Наиболее важные сообщения об ошибках обычно находятся внизуфайла. Они с большей вероятностью отражают самые последние ошибкии источник проблемы.

В UNIX есть инструмент с названием оегг, который может дать болееподробную информацию о кодах возврата Net8. Для его вызова нужноввести следующее:

oerr tns <номер_ошибки>

Чтобы помочь вам разобраться в информации, содержащейся в фай-лах трассировки, Oracle также предоставляет инструмент с названиемTrace Assistant. Его можно использовать только при трассировке на уров-не 16 (SUPPORT). Командная строка Trace Assistant имеет следующийсинтаксис:

trcasst [опции] <имя_файла>

На рис. 14.9 показаны все доступные опции. Чтобы подробнее узнатьо том, как интерпретировать информацию, предоставляемую этим инст-рументом, обратитесь к руководству администратора Net8 версии 8.1.6(глава 12, раздел "Evaluating Net8 Traces").

\ Command Prompt;MicrosoftCR> Windows NT<TM><C> Copyright 1985-1996 Microsoft Corp.

€:\>trcasst

trace Assistant Utility for 32-bit Windows: Uersion 8.1.6.0.8 - Production on 15M1AY-2000 00:38:40

< c > Copyright 1997 Oracle Corporation. All rights reserved.

TNS-04202: Trace Assistant Usage ERROR: Not enough arguments

Usage: trcasst [options] <filename>[options 1 default values are: ~oilt — e —s<filename> is always the last argument

Options can be zero or more of the following:-o Enables display of SQL*Net and TTC information

After the -o the following options can be used:с or d for summary or detailed SQL*Net information respectivelyu or t for summary or detailed TTC information respectivelyЧ displays SQL commands <used together with u >

-s Enables display of statistical information-e Enables display of error information

After the -e, zero or one error decoding level may follow:0 or nothing, translates NS error numbers1 displays NS error translation plus all other errors2 displays error number without translation

C:S>

Рис. 14.9. Окно DOS с опциями инструмента Trace Assistant

Page 431: Oracle 8i Networking 101

Параметрыi

sqlnet.ora

Page 432: Oracle 8i Networking 101

414 Приложение А

й файл конфигурации Net.8 может содержать довольно многопараметров. В этом приложении вы найдете описания параметров изфайла sqlnetora. Параметры сгруппированы по профилям. Для каждогопараметра указаны значения по умолчанию и по возможности приведеныпримеры.

Имейте в виду, что в разных версиях Net8 могут встречаться разныепараметры или разные значения по умолчанию для одних и тех жепараметров. Обязательно проверяйте по документации, поставляемой сOracle, какие значения принимают используемые вами параметры.

Профиль клиента ONameПараметры профиля клиента OName приведены в таблице А.1.

Таблица А. 1.Параметры профиля клиента OName

Параметр Описание

names.dce.prefix Имя соты ОСЕ (префикс), используемое при поиске имен.По умолчанию: /.:/subsys/oracle/namesПример: names.dce.prefix = /.:/subsys/oracle/names

names.default_domain Домен, из которого клиент чаще всего запрашивает имена.Имя домена по умолчанию, заданное этим параметром(например, US.ACME), будет автоматически добавлятьсяк любому неквалифицированному имени, указанномув запросе к службе ONames. Имена, оканчивающиеся точкой(например, "rootserver."), считаются квалифицированнымии не дополняются доменом по умолчанию.По умолчанию: значение отсутствуетПример: names.default_domain = world

names.directoryjath Упорядоченный список адаптеров именования,используемых при разрешении имени. Приведенное нижезначение по умолчанию соответствует sqlnet версии 3.0.2и выше. В предыдущих версиях использовалось значение(TNSNAMES, ONAMES). Если указывается только одинэлемент, скобки можно опустить. Параметр распознаетсяв sqlnet версии 2.3.2 и выше. Допустимые значения:TNSNAMES (поиск в tnsnames.ora)ONAMES (служба имен Oracle)HOSTNAME (используется имя хоста или псевдонимимени хоста)NIS (сетевая информационная служба, называемаятакже "ур") CDS (сотовая служба каталога OSF ОСЕ)NDS (служба каталога Novell Netware)По умолчанию: TNSNAMES, ONAMES, HOSTNAMEПример: names.directory_path = (значение зависитот операционной системы)

Page 433: Oracle 8i Networking 101

Параметры sqlnet.ora 415

Таблица A.I (продолжение)Параметры профиля клиента OName

Параметр Описаниеnames.initialjetryjimeoutДиапазон значений: 1-600 секунд

names,max_open_connectionsДиапазон значений: 3-64

names.message_pool_stat_sizeДиапазон значений: 3-256

names.nis_meta_map

names.nds.name.context

Время, в течение которого клиент будет ожидать ответаот сервера имен. По истечении этого интервала запроснаправляется следующему серверу из спискапредпочтительных серверов (preferred jen/ere). Измеряетсяв секундах.По умолчанию: 15 (зависит от операционной системы)Пример: names.initialjetryjimeout = 30

Максимальное количество соединений, одновременнооткрываемых клиентом ONames. Обычно клиенты сохраняютсоединения с серверами открытыми до завершенияоперации (или сеанса namesctl). Если возникает необходи-мость открыть новое соединение, а максимум уже достигнут,то сначала будет закрыто соединение, котороене использовалось дольше всего.По умолчанию: 10Пример: names.maxjjpenjionnections = 10

Начальное число сообщений, размещаемых в клиентскомпуле сообщений. Этот пул снабжает клиента предварительноразмещенными сообщениями, которые можно использоватьдля выполнения запросов к серверам ONames. Сообщения,которые находятся в пуле и не используются, могутиспользоваться повторно. Если клиенту требуетсясообщение, а свободных сообщений в пуле нет, то будутразмещены дополнительные.По умолчанию: 10Пример: names.messagej)ooLstat_size = 10

Имя файла, который будет использоваться для отображенияатрибутов NIS в mapname NIS.По умолчанию: sqlnetmaps Пример: names.nisjnetajnap =sqlnet.maps

Контекст именования в дереве NDS, используемый дляразмещения объектов базы данных.По умолчанию: значение отсутствуетПример: cri=Payroll.o=Orac|e

Page 434: Oracle 8i Networking 101

416 ; - ; Приложение А

Таблица Л.1 (продолжение)Параметры профиля клиента OName

Параметр Описание ____: __:

names.preferred_servers Список серверов ONames в регионе клиента. Запросы будутнаправляться по каждому из указанных адресов, покане будет получен ответ или не исчерпается список(и возможное число попыток). Адрес следующего видауказывает, что в сообщениях к серверу ONames должныиспользоваться удаленные операции Oracle (RPC):(description =(address=(protocol=tcp)(host=nineva)(port=1383))(connect data=(rpc=on)))

i По умолчанию: значение зависит от операционной системыПример: names.preferred servers = (address^fprotocoHpc)(key=n23))

(addressjist =(address=(protocol=tcp)

(host=nineva)(port=1383))(address=(protocol=tcp)

(host=cicada)(port=1575)))

names.requestjetries Количество попыток обращения к каждому серверуДиапазон значений: 1-5 из списка preferred.servers.

По умолчанию: 1Пример: names.requestjetries - 2

Профиль namesctlВ таблице А. 2 приведены параметры профиля утилиты Names Control(namesctl).

Таблица Л.2.Параметры профиля namesctl

Параметр ' Описание • ' " • '

namesctl.internal_encrypt_password Если установлено значение TRUE, то namesctl будетЗначения: TRUE/FALSE передавать пароль серверу имен в незашифрованном

виде. Одновременно это позволит указывать незашиф-рованный пароль в параметре narnes.server_passwordфайла names.ora.По умолчанию: FALSEПример: namesctl.internal_encrypt_password = FALSE

namesctl.internal_use Значение TRUE позволяет использовать внутренние не-Значения: TRUE/FALSE документированные команды namesctl. Эти команды на-

чинаются с символа подчеркивания (_). См. текст послетаблицы.По умолчанию: FALSEПример: namesctLintemaljJse = TRUE ,

Page 435: Oracle 8i Networking 101

Параметры sqlnet.ora 417

Таблица А.2 (продолжение)Параметры профиля namesctl

Параметр Описание

namesctl.no initial serverЗначения: TRUE/FALSE

namesctl.noconfirmЗначения: TRUE/FALSE

namesctl.server_password

namesctl.trace levelЗначения: {OFF, USER, ADMIN,SUPPORT, 0-16}

namesctl.trace file

namesctl.trace_directory

namesctl.tracejinique

Если установлено значение TRUE, то namesctl не будетвыводить сообщения об ошибках при невозможностисоединиться с сервером имен по умолчанию.По умолчанию: FALSEПример: namesctl.no jnitial_server = FALSE

Если установлено значение TRUE, то namesctlне будет запрашивать подтверждение на выполнениеответственных операций (stop, restart, reload). Этоочень полезно при использовании сценариев namesctl.По умолчанию: FALSEПример: namesctl.noconfirm = TRUE

Автоматически устанавливает пароль при выполненииответственных операций (stop, restart, reload). Парольтакже можно установить вручную, с помощью командыset password в сеансе namesctl.По умолчанию: значение отсутствуетПример: namesctl.server_password = mangier

Уровень трассировки namesctl:О или OFF - трассировка выключена4 или USER — трассировка на уровне пользователя10 или ADMIN — трассировка на уровне администратора16 или SUPPORT — трассировка для глобальной службыподдержки OracleПо умолчанию: OFF (0)Пример: namesctl.traceJevel = ADMIN

Имя файла с выходными данными сеансатрассировки namesctl.По умолчанию: namesctl.trcПример: namesctl.tracejile = namesctl.trc

Каталог, в котором сохраняются файлы трассировкиnamesctl.По умолчанию: $ON/traceПример: namesctl.trace_directory = /oracle/network/trace

Определяет, будет ли каждому файлу трассировки при-сваиваться уникальное имя. Если установлено значениеON, то имя каждого сгенерированного файла трасси-ровки дополняется идентификатором процесса.По умолчанию: FALSEПример: namesctl.tracejjnique = TRUE

Параметр namesctl.internal_use, будучи установлен в TRUE, разреша-ет использование недокументированных команд, перечисленных ниже.Что эти команды делают и что означает звездочка после некоторых из

Page 436: Oracle 8i Networking 101

418 Приложение А

них — не объясняется. Все команды начинаются с символа подчеркива-ния, указывающего на то, что они являются внутренними.

_add_data _create_name _delete_name

_full_status jreplacejata _newttl_name

_pause _remove_data _rename_name

_replace_data .start .walk*

После перевода namesctl во внутренний режим можно устанавливатьследующие параметры сервера имен:

.authorityjequired .autojefresh* .cache.checkpointjnterval

.cache.dump •. .default.autorefresh.expire .default.autorefresh.retry

_default_forwarders_only _forwarding_desired _max_reforwards

_modify_ops_enabled _next_cache_checkpoint _next_cache_flush

_next_stat_log _next_stat_reset jeload

_request_delay .restart .shutdown

Профиль собственных адаптеров именованияВ таблице А.З приведены параметры профиля собственных адаптеровименования (Native Naming Adapters).

Таблица А.З.Параметры профиля собственных адаптеров именования

Параметр Описание

names.dce.prefix Имя соты ОСЕ (префикс), используемое при поиске имен.По умолчанию: /.:/subsys/oracle/oamesПример: names.dce.prefix = /.:/subsys/oracle/names

names.nds.name_context Контекст имен NDS, используемый по умолчанию для поискаразрешаемого имени.По умолчанию: значение зависит от операционной системыПример: names.nds,name_context = personnel.acme

names.nis.metajnap Имя файла, который будет использоваться для отображенияатрибутов NIS в mapname NIS. В настоящее время этот параметрне используется.По умолчанию: sqlnet.maps

, Пример: не предоставлен

Профиль KerberosПараметры, которые можно указывать в профиле Kerberos, приведены втаблице А.4.

Page 437: Oracle 8i Networking 101

Параметры sqlnet.ora 419

Таблица А.4.Параметры профиля Kerberos

Параметр Описание

sqlnet.authentication_servicesЗначения: одно или несколькозначений из набора (beq, none, all,oss, kerberosS, cybersafe, securid,identix)

sqlnet.kerberos5_cc_nameЗначения: любое допустимоеполное имя файла

sqlnet.kerberos5_clockskewЗначения: любое положительноецелое

sqlnet.kerberos5_confЗначения: любое допустимоеполное имя файла

sqlnet.kerberos5_realmsЗначения: любое допустимоеполное имя файла

sqlnet.kerberos5_keytabЗначения: любое допустимоеполное имя файла

Разрешает использование одной или нескольких службаутентификации. Чтобы аутентификация выполняласьчерез сервер безопасности Oracle (Oracle SecurityServer), используйте (beq, oss).Если установлен пакет Advances Networkingс поддержкой KerberosS, то для разрешенияаутентификации через Kerberos используйте(beq, kerberosS).По умолчанию: значение отсутствуетПример: sqlnet.authentication_services = oss

Полное имя файла, содержащего кэш удостоверенийKerberos.По умолчанию: /tmp/krb5cc_<uid>Пример: sqlnet.kerberos5_cc,name = /tmp/mycc

Допустимая разница между временем отправкии временем получения удостоверения (в секундах).По умолчанию: 300Пример: sqlnet.kerberos5_clockskew = 250

Полное имя файла конфигурации Kerberos.По умолчанию: /krbS/krb.confПример: sqlnet.kerberos5_conf = /tmp/mykrb.conf

Полное имя файла трансляции области Kerberos.По умолчанию: /krb5/krb.realmsПример: sqlnet.kerberosSjealms = /tmp/mykrb.realms

Имя файла с секретным ключом KerberosПо умолчанию: /etc/v5srvtabПример: sqlnet.kerberos5_keytab = /tfnp/myvSsrvtab

Профиль адаптеров аутентификации CyberSafeи Identix из пакета Advanced NetworkingПараметры профиля этих адаптеров аутентификации, входящих в пакетAdvanced Networking, перечислены в таблице А.5. Чтобы сконфигуриро-вать CyberSafe, требуется несколько параметров. Как следует из табли-цы А.5, на главном сервере CyberSafe TrustBroker должен быть созданпринципал службы, содействующий аутентификации клиентов.

Page 438: Oracle 8i Networking 101

420 ___^__ Приложение А

Таблица Л.5.Профиль адаптеров аутентификации СуberSafe и Identixиз пакета Advanced Networking

Параметр Описание

sqlnet,authentication_gssapi_service Принципал службы CyberSafe.По умолчанию: значение отсутствуетПример: HYPERLINK mailto:sqlnet.authentication_gssapi_service=acme/[email protected]

sqlnet.identixjingerprintjnethod Метод аутентификации, используемый серверомIdentix.По умолчанию: значение отсутствует(должна использоваться аутентификация Oracle)Пример: sqlnet.identix_fingerprint_method = oracle

sqlnet.identix_fingerprint_database TNS-псевдоним сервера аутентификации Identix.По умолчанию: значение отсутствуетПример: sqlnet.identixjingerprint.database = ofm

sqlnet.identix_fingerprint_database_user Фиксированное имя пользователя службыаутентификации Identix.По умолчанию: значение отсутствуетПример: sqlnet.identix_fingerprint_database_user =ofm_client

Профиль адаптера аутентификации Radiusиз пакета Advanced NeworkingПараметры профиля этого адаптера приведены в таблице А. 6.

Таблица А.6.Параметры профиля адаптера аутентификации Radius !

Параметр и значение Описание ___

sqlnet.radius_authentication = <локальный_хост> Местонахождение сервера Radius

sqlnet.radius_authentication_port = 1654 Порт, используемый сервером Radius

sqlnet.radius_accounting = off Если сервер Radius поддерживает созданиеучетных записей, можно задействовать этувозможность

sqlnet.radius_challenge_response = off Включает/выключает режим "запрос-ответ"

sqlnet.radius_challenge_keyword = При использовании актив-карты введите ее<слово-вызов> ключевое слово, чтобы запросить слово-вызов

у сервера Radius Если используется что-либодругое, введите слово-вызов

sqlnet.radius_authentication_interface = Имя клиентского интерфейса, через которыйDefaultRadiuslnterface будет выполняться аутентификация по методу

"запрос-ответ"

Page 439: Oracle 8i Networking 101

Параметры sqlnet.ora 421

Таблица А.6 (продолжение)Параметры профиля адаптера аутентификации Radius

Параметр и значение Описание

sqlnet.radius_secret = Имя файла с секретным ключом Radius$ORACLE_HOME/security/radius.key

Профиль служб шифрованияи контроля целостности данныхВ этом разделе приведены параметры конфигурации служб шифрованияи контроля целостности данных, входящих в пакет Advanced Networking.Все эти параметры можно разделить на группы, в пределах которых допу-стимые значения и значения по умолчанию будут одинаковы. В первуюгруппу входят следующие параметры:

• sqlnet.crypto_checksum_client• sqlnet.crypto_checksum_server• sqlnet.encryption_client• sqlnet.encryption_server

Эти четыре параметра определяют, будет ли активизироваться службашифрования или контроля целостности данных. По умолчанию им при-сваивается значение ACCEPTED.

В таблице А. 7 перечислены возможные значения этих параметров иданы их описания. За более подробной информацией о пакете OracleAdvanced Security обращайтесь к главе 13.

Таблица Л.7.Значения параметров, управляющих активизацией служб шифрованияи контроля целостности данных

Значение Описание

ACCEPTED Служба активизируется только в том случае, если на другом концесоединения указано значение REQUESTED или REQUIREDи используется совместимый алгоритм.

REJECTED Служба не должна активизироваться. Если на другом конце указанозначение REQUIRED, то соединение не устанавливается.

REQUESTED Служба активизируется только в том случае, если на другом концесоединения указано значение ACCEPTED, REQUESTED или REQUIREDи используется совместимый алгоритм.

REQUIRED ., - Служба должна активизироваться. Если на другом конце указанозначение REJECTED или используется несовместимый алгоритм,то соединение не устанавливается.

Параметры второй группы определяют, какие алгоритмы будут испо-льзоваться службами шифрования и контроля целостности данных настороне клиента и сервера:

Page 440: Oracle 8i Networking 101

422 Приложение А

• sqlnet.crypto_checksum_types_client• sqlnet.crypto_checksum_types_server• sqlnet.encryption_types_client• sqlnet.encryption_types_server

Значением каждого из этих параметров может быть либо заключен-ный в скобки список алгоритмов, либо название отдельного алгоритма.К типам шифрования (encryption_types) относятся RC4_40, RC4_56,RC4_128, DES и DES40. (По умолчанию выбраны все алгоритмы.)Из типов криптографического контрольного суммирования (crypto_checksum_types) доступен только MD5, он же используется по умолчанию.

Последним параметром в этом профиле является sqlnet.crypto_seed(ключ шифрования). Его значение лежит в основе всех алгоритмов. Поумолчанию используется следующий ключ:

sqlnet.crypto_seed = "4fhfguweotcadsfdsafjkdsfqp5f201p45mxskdlfdasf"

Профиль сервера безопасности OracleПараметры этого профиля для версии 8.1.5 приведены в таблице А.8.Возможно, что в версии 8.1.6 они изменятся.

Таблица А.8.Параметры профиля сервера безопасности Oracle

Параметр Описание ,

oss.source.my_wallet Метод сохранения и получения идентификационных данных.По умолчанию: значение зависит от платформы, для UNIX это$HOME/oracle/ossПример: oss.source.my_wallet =

(source = (method = file)(method data = /dve/asriniva/oss/wallet).

)

oss.source.location Метод получения зашифрованных личных ключей.По умолчанию:oracle_security_service/oracle_security_service@oss (метод Oracle)Пример: oss.source.location =(source =

(method = oracle)(method.data =

(sqlnet.address = andreoss))

Профиль клиента SQLNet (2.x) и NetS.OВ таблице А.9 перечислены возможные параметры sqlnet.ora с указаниемверсий, в которых они поддерживаются.

Название NetS.O вместо Net8 используется намеренно. Первоначальнопредполагалось, что следующая после SQLNet 2 версия будет называтьсяNetS. Этого соглашения придерживались в документации и в первых

Page 441: Oracle 8i Networking 101

Параметры sqlnet.ora 423

выпусках новых продуктов. Однако с появлением OracleS было решеноизменить название версии, чтобы подчеркнуть ее принадлежностьк OracleS. Так появилось название NetS. Чтобы сохранить согласован-ность с фактическими номерами версий, в таблице А.9 используетсяобозначение 3.0.

В приведенных ниже описаниях термин "клиентская программа" мо-жет обозначать sqlplus, svrmgr или любую OCI-программу, написаннуюпользователями.

Таблица А.9.Параметры sqlnet.ora с указанием версий, в которых они появились

Параметр Назначение Значение по умолчанию/возможные значения

trace_level_clientПоддерживаетсяс версии 3.0

Устанавливает уровеньтрассировки клиентскойпрограммы.

tnsping.trace_directoryПоддерживаетсяс версии 2.3.3

automaticjpcПоддерживаетсяс версии 2.3.2

bequeathjletachПоддерживаетсяс версии 2.1

Указывает каталог, в которыйбудет записыватьсятрассировочная информациядля программы tnsping.

Определяет, будут лииспользоваться 1РС-адресана клиентском узле.

Отключает обработкусигналов в системах UNIX,чтобы клиентские программы,которые выполняют такуюобработку, не могли конфликтовать с Sqlnet/Net3.

sqlnet.clientjegistration Определяет уникальныйПоддерживается идентификатор для клиентскойс версии 2.0 машины, который передается

прослушивающему процессув каждом запросе на соединениеи включается в файл аудита,

По умолчанию: OFF (0)Возможные значения: {OFF, USER,ADMIN, SUPPORT, 0-16}О или OFF - трассировка выключена4 или USER — трассировкана уровне пользователя10 или ADMIN — трассировкана уровне администратора16 или SUPPORT - трассировка дляглобальной службы поддержкиOracle

По умолчанию:$ORACLE_HOME/network/traceВозможные значения: любоедопустимое полное имя каталога

По умолчанию: OFFВозможные значения: {ON, OFF}

По умолчанию: N0Возможные значения: {YES, N0}

По умолчанию: OFFВозможные значения: произвольнаябуквенно-цифровая строка длинойдо 128 символов,

Page 442: Oracle 8i Networking 101

424 Приложение А

Таблица Л.9 (продолжение)Параметры sqinet.ora с .указанием версий, в которых они появились

Параметр Назначение Значение по умолчанию/возможные значения

trace_directory_client

trace file client

traee_unique_client

log_directory_client

log_file_client

log_directory_server

trace_directory_server

trace file server

Указывает каталог, в которыйбудут записываться файлытрассировки клиента.

Указывает имя файла, в которыйбудут записываться результатытрассировки клиента.

Предотвращает перезаписьфайла трассировки припоследовательных запускахклиентской программы за счетприсваивания каждому файлууникального имени.

Указывает каталог, в которыйбудет записываться клиентскийфайл журнала.

Указывает имя файла журналадля клиентской программы.

Указывает каталог, в которыйбудут записываться файлыжурналов сервера.

Указывает каталог, в которыйбудут записываться файлытрассировки сервера.

Указывает имя файла, в которыйбудут записываться результатытрассировки сервера.

По умолчанию:$ORACLE_HOME/network/traceВозможные значения: любойдопустимый каталог с разрешениемна запись

По умолчанию:$ORACLE_HOME/network/trace/cli.trcВозможные значения: любоедопустимое имя файла

По умолчанию: OFFВозможные значения: {ON, OFF}

По умолчанию:$ORACLE_HOME/network/logВозможные значения: любоедопустимое полное имя каталога

По умолчанию:$ORACLE_HOME/network/log/sqlnet.logВозможные значения:только значение по умолчанию

По умолчанию:$ORACLE_HOME/network/trace

Возможные значения: любойдопустимый каталог с разрешениемна запись

По умолчанию:$ORACLE_HOME/network/trace

Возможные значения: любойдопустимый каталог с разрешениемна запись

По умолчанию:$ORACLE_HOME/network/trace/svr_<pid>.trc,где <pid> — идентификаторсерверного процесса в системахUNIXВозможные значения: любоедопустимое имя файла

Page 443: Oracle 8i Networking 101

Параметры sqlnef.ora 425

Таблица А.9 (продолжение)Параметры sqinet.ora с указанием версий, в которых они появились

Параметр Назначение Значение по умолчанию/возможные значения

trace level server

use dedicated server

use cman

tnsping.tracejevel

sqlnet.expire_time

disable oob

Устанавливает уровеньтрассировки сервернойпрограммы.

Определяет, будет липрослушивающий процесспорождать процессы выделенныхсерверов для сеансов даннойклиентской программы,

Сообщает прослушивающемупроцессу об использованиименеджера соединений.

Устанавливает уровеньтрассировки программы tnsping.

Задает период посылки пробныхпакетов для определенияактивности клиентского сеанса(это позволяет освобождатьресурсы, занятые неработающимиклиентами).

Запрещает внеполосныепрерывания, если базовыйтранспортный протокол(TCP, ОЕСпе*ипр.)ихне поддерживает.

По умолчанию: OFF (0)Возможные'значения: {OFF, USER,ADMIN, SUPPORT, 0-16}О или OFF — трассировка выключена4 или USER — трассировкана уровне пользователя10 или ADMIN — трассировкана уровне администратора16 или SUPPORT- трассировкадля глобальной службы поддержкиOracle

По умолчанию: OFFВозможные значения: {OFF, ON)

По умолчанию: FALSEВозможные значения: {TRUE,FALSE}

По умолчанию: OFF (0)Возможные значения: {OFF, USER,ADMIN, SUPPORT, 0-16}О или OFF — трассировка выключена4 или USER — трассировкана уровне пользователя10 или ADMIN — трассировкана уровне администратора16 или SUPPORT - трассировкадля глобальной службы поддержкиOracle

По умолчанию: 0 минутВозможные значения: любоенеотрицательное целое (единицыизмерения — минуты)Рекомендуемое значение: 10 минут

По умолчанию: OFFВозможные значения: {ON, OFF)

Page 444: Oracle 8i Networking 101

Page 445: Oracle 8i Networking 101

С{ТЭ1 LH-iuQ H

,

(Mi.H1

••

•• •

1

Параметрыnames.ora

, •• •

Page 446: Oracle 8i Networking 101

428

приложении А были перечислены параметры профиля клиентаOName, помещаемые в файл sqlnet.ora. Параметры, приведенные в этомприложении, относятся к серверу и помещаются в файл names.ora. Об ис-пользовании этих параметров говорилось в главе 4.

Таблица В.1 содержит параметры names.ora, доступные в OracleSi,Release 2. Везде, где это было возможно, указаны значения по умолчаниюи приведены примеры использования.

Таблица В.1.Параметры names.ora

Параметр Описание

names.addresses

names.admin_region

names.authorityjequired

names.auto_refresh_expire

names.autojefreshjetry

Список адресов, прослушиваемых сервером имен Oracle.Допускаются любые действительные адреса.По умолчанию: names.addresses = (address=(protocol=tcp)(host=oranamesrvrO)(port=1575)

Описание источника данных для административного региона.Если в этом параметре указана база данных, то она будетиспользоваться в качестве репозитория имен. Если значениене присвоено, то данные будут тиражироваться междукэшами серверов имен.По умолчанию: значение отсутствуетПример: names.adminjegion = (region=(description=(address=(protocol=tcp)(host=marlenes-pc) (port=1575)))(connect data= (service name=xyzcorp.us.com))(userid=NELSON)(password=RINGADING)(refresh=172800)(retry=2700)(expire=8700)(version=34619392))

Определяет, требуют ли системные запросыподтвержденных ответов.По умолчанию: FALSEПример: names.authority_required=TRUE

Время (в секундах), в течение которого сервер имен Oracleсохраняет в кэше адреса других серверов имен своегорегиона, полученные через параметр names.domainjiints.В конце этого интервала сервер посылает запрос к серверамбаз данных других регионов с целью регенерации адресов.По умолчанию: 600 секундДиапазон значений: 60—1209600 секундПример: names.auto_refresh_expire = 1200000

Интервал (в секундах), через который сервер имен Oracleпредпринимает очередную попытку связаться с серверамиимен Oracle, указанными в списке domain_hints.По умолчанию: 180 Диапазон значений: 60-3600Пример: names.autojefreshjetry = 180

Page 447: Oracle 8i Networking 101

Параметры names.ora 429

Таблица B.I (продолжение)Параметры names.ora

Параметр Описание

names.cache_checkpointjile

i

names.cache_checkpoint_interval

.... ••-

names.config_checkpoint_file

-

•names.connect timeout

names.defaultjorwarders.

-

names.defaultjorwarders_only

names.domain hints

Полное имя файла, в который сервер имен Oracleзаписывает контрольную точку кэша.По умолчанию: SORACLE HOME/network/names/ckpcch.ora(в UNIX)ORACLE_HOME\network\names\ckpcch.ora (в Windows NT)Пример: names.cache_checkpoint_file = O:\0racle\0ra81\network\names\cach~eck.ora

Период (в секундах) записи контрольной точки кэша.Каждый сервер имен Oracle может периодически записыватькэшированные данные в файл для защиты от сбоев призапуске.По умолчанию: 0 (запись запрещена)Диапазон значений: 10-2592000 секунд (3 дня)Пример: names.cache_checkpoint_interval = 24

Полное имя файла, в который сервер имен Oracleзаписывает контрольную точку конфигурации.По умолчанию: SORACLE HOME/network/names/ckpcfg.ora(в UNIX)ORACLE_HOME\network\names\ckpcfg.ora (в Windows NT)Пример: names.config_checkpoint_file = D:\0racle\0ra81\network\names\configck.ora

Время (в секундах), в течение которого сервер имен Oracleожидает завершения соединения с клиентом.По умолчанию: 3 секундыДиапазон значений: 1—600 секундПример: names.connectjimeout = 8

Список адресов других серверов имен Oracle, используемыхдля ретрансляции запросов.

• Пример: names.defaultjorwarders = (forwarder_list=(forwarder=(name=adminroot1.com)(address=(protocol=tcp)(port=4200)(host=marienes-pc))))

Если установлено значение TRUE, то сервер имен Oracleперенаправляет запросы только тем серверам имен, которыеперечислены в параметре names.defaultjorwarders.

Список имен, адресов и доменов всех серверов имен в од-ном или нескольких удаленных регионах, из которого серверимен Oracle может узнать о серверах имен других регионов.Как минимум содержит информацию о сервере имен корне-вого региона. Информация о серверах имен других регионовможет указываться в целях оптимизации.Пример: names.domainjiints =(hint_desc=(hintjist=(hint=(name=adminroot1.com)(address=(protocol=tcp)(host=marlenes-pc)(port=4200)))))

Page 448: Oracle 8i Networking 101

430

Таблица В.1 (продолжение)Параметры names.ora

Параметр Описание

names.domains

names.forwarding_available

names.forwarding_desired

names.keep_db_open

names.log_directory

names.logjile

Список доменов локального региона сервера имен, а такжевремя жизни {time-to-live, TTL) для данных об этих доменах.Пример: names.domains = (domain_list=(domain=(name=adminroot1.com)(min_ttl=86400))(domain=(name=com)(min_ttl=8640)))

Значение ON разрешает серверу имен Oracleперенаправлять клиентский запрос удаленному серверуимен. Если установлено значение OFF, то клиенты,не имеющие доступа к сети за пределами локальногодомена, не смогут разрешать имена.По умолчанию: ONЗначения: ON | OFFПример: names.forwarding_available = OFF

Значение TRUE разрешает серверу имен Oracle передаватьклиентам адрес удаленного сервера имен, тем самымперенаправляя их к этому серверу. Если установленозначение FALSE, то сервер имен Oracle сам соединяетсяс удаленным сервером имен от имени клиентов.По умолчанию: TRUE Значения: TRUE | FALSEПример: names.forwarding_desired = TRUE

Определяет, будет ли сервер имен пытаться сохранятьTNS-соединение с региональной базой данныхв промежутках между операциями. Если установленозначение FALSE, то соединение будет закрываться послекаждой загрузки, перезагрузки или проверки необходимостиперезагрузки.По умолчанию: TRUEЗначения: TRUE | FALSEПример: names.keep_db_open = FALSE

Каталог, в котором будет сохраняться файл журналаоперационных событий сервера имен Oracle.По умолчанию: SORACLE HOME/network/log (для UNIX)ORACLE_HOME\network\Tog (для Windows NT)Пример: names.log_directory = D:\0racle\0ra81\network\names

Имя файла, в который записывается информация обоперационных событиях сервера имен Oracle. Этот файлвсегда имеет расширение .log. He указывайте расширениев этом параметре.По умолчанию: namesПример: names.logjile = onames

Page 449: Oracle 8i Networking 101

Параметры names.ora 431

Таблица B.I (продолжение)Параметры names.ora

. . • . . - <

Параметр Описание

names.log_statsjnterval

.names.logjinique

names.max_open_connections.

''

iI • , •

names.maxjeforwards

names.messagej>ool_start_size<

••. : .• - r . .

-

names.nojnodifyjequests

;

names.no_region_database

Период (в секундах) полной выгрузки статистики в файлжурнала.По умолчанию: О (OFF)Диапазон значений: от 10 секунд и вышеПример: names.log_stats_interval = 12

Если установлено значение TRUE, то файлы журналов будутиметь уникальные имена, а следовательно, существующиефайлы не будут перезаписываться.По умолчанию: FALSEЗначения: TRUE | FALSEПример: names.log_unique = TRUE

Максимальное количество соединений, которое сервер именOracle может открывать одновременно.По умолчанию: 10 или сумма из одного соединениядля прослушивания, пяти для клиентов и одного для каждогоиз удаленных доменов, определенных в локальномадминистративном регионе, в зависимости от того,какая величина больше.Диапазон значений: 2-64Пример: names.max_open_connections = 52

Максимальное число попыток перенаправления операции.По умолчанию: 2Диапазон значений: 1—15Пример: names.maxjeforwards = 4

Начальное количество сообщений, размещаемых в пулесообщений сервера и используемых для входящих илиисходящих перенаправленных соединений.По умолчанию: 10Диапазон значений: 3-256Пример: names.message_pool_start_size = 15

Если установлено значение TRUE, то сервер отклоняетлюбые операции, которые модифицируют данные в егорегионе.По умолчанию: FALSEЗначения: TRUE | FALSEПример: names.nojnodifyjequests = TRUE

Если установлено значение TRUE, то сервер не ищетрегиональную базу данных.По умолчанию: FALSE Значения: TRUE | FALSEПример: names.no_region_database = TRUE

Page 450: Oracle 8i Networking 101

432

Таблица В.1 (продолжение)Параметры names.ora

Параметр Описание

names.password

names.region_checkpoint_file

names.reset stats interval

names.save_config_on_stop

names.server name

Пароль на выполнение привилегированных операций(таких, как STOP, RESTART, RELOAD). Предотвращаетнесанкционированное использование соответствующихкоманд утилиты namesctl. Если этот параметрустанавливается с помощью Net8 Assistant, то парольшифруется. Открытый пароль можно установить вручную.Если пароль вводится открытым текстом, убедитесь,что параметр namesctl.internal_encrypt_password в файлеsqlnetora имеет значение FALSE.По умолчанию: значение отсутствуетПример: names.password = 625926683431аа55

Полное имя файла, в который сервер имен Oracleзаписывает контрольную точку региональных данных(например, адресов доменов и адресов баз данных серверовимен в локальном регионе).По умолчанию: SORACLE HOME/network/names/ckpreg.ora(в UNIX)ORACLE_HOME\network\names\ckpreg.ora (в Windows NT)Пример: names.region_checkpoint_file = D:\0racle\0ra81\network\names\regionck.ora

Период (в секундах) накопления статистики, собираемойсервером имен Oracle. В конце каждого периода статистикаобнуляется.По умолчанию: 0 (статистика никогда не обнуляется)Диапазон значений: 0—10 секундПример: names.reset_stats_interval = 5

Если установлено значение TRUE, то при остановке сервераимен Oracle рабочая конфигурация сохраняется в файлеnames.ora. При этом значения параметров, установленныес помощью утилиты namesctl, заменяют предыдущиеустановки names.ora.По умолчанию: FALSEЗначения: TRUE | FALSEПример: names.save_config_on_stop = TRUE

Имя, уникально идентифицирующее сервер имен Oracle.Используется для ссылок на этот сервер во всех параметрахконфигурации.По умолчанию: ONAMES_<onames_server>Пример: names.serverjiame = namesrvl,xyzcorp.us.com

Page 451: Oracle 8i Networking 101

Параметры names.ora 433

Таблица В.1 (продолжение)Параметры names.ora

Параметр Описание

names.trace_directory

names.trace file

names.trace func

names.trace level

names.trace_unique

Имя каталога, в который записываются файлы трассировкисервера имен Oracle.По умолчанию: SORACLE HOME/network/trace (для UNIX)ORACLE_HOME\network\trace (для Windows NT)Пример: names.trace_directory = D:\0racle\0ra81\network\admin\trace

Имя файла с выходными данными сеанса трассировкисервера имен Oracle. Файл всегда имеет расширение .trc.По умолчанию: namesПример: names.tracejile = onames

Включает внутренний механизм контроля.По умолчанию: FALSEЗначения: TRUE | FALSEПример: names.tracejunc = TRUE

Уровень трассировки сервера имен Oracle.По умолчанию: OFFЗначения:OFF — трассировка выключенаUSER — трассировка на уровне пользователяADMIN — трассировка на уровне администратораSUPPORT — трассировка для глобальной Службыподдержки OracleПример: names.tracejevel = ADMIN

Если установлено значение ON, то имя каждогосгенерированного файла трассировки дополняетсяуникальным идентификатором процесса, что обеспечиваетодновременное существование множественных файловтрассировки.По умолчанию: ONЗначения: ON | OFFПример: names.trace_unique = ON

15 Зак. 726

Page 452: Oracle 8i Networking 101

Page 453: Oracle 8i Networking 101

•• •

I

.

• к . «ЮЙ.

• ;

." •' ; . -г

. . . : - .

Этот материал взят из руководства Net8 Administrator's Guide, Release 8.1.6..

.

Page 454: Oracle 8i Networking 101

436 ._ Глоссарий

ACLСм. список управления доступом.

APIСм. Net8 Open.

ASCIIАмериканский стандартный код для обмена информацией (AmericanStandard Code for Information Interchange), соглашение о представленииалфавитно'-цифровых символов в числовом виде. Используется в качест-ве сортирующей последовательности на большинстве компьютеров, заисключением мэйнфреймов IBM и совместимых с ними.

CDSСм. сотовая служба каталога.

cman.ога, файлФайл конфигурации, в котором указаны адреса протоколов для входящихзапросов и команд администрирования, а также параметры менеджерасоединений Oracle и правила управления доступом на уровне Net8.

DNSСм. система доменных имен.

ИОР-клиенты (HOP Clients)Клиенты, использующие универсальный межброкерный протокол(GIOP) для обращения к Java-интерфейсу базы данных. К таким клиентамотносятся:

• EnterpriseJavaBeans (EJB) ,,.• Серверы CORBA• Хранимые процедуры Java

IP-адрес (IP address)Используется для идентификации узла сети. Каждой машине присваива-ется уникальный IP-адрес, состоящий из номера сети и номера хоста.Обычно для этого адреса используется точечная десятичная запись, тоесть десятичные значения байтов разделяются точками (например,144.45.9.22).

Page 455: Oracle 8i Networking 101

Глоссарий ' 437

LDAPLightweight Directory Access Protocol (упрощенный протокол доступа ккаталогу). Система проектных соглашений для поддержки серверовкаталогов промышленного стандарта.

Idap.ora, файлФайл, создаваемый Net8 Configuration Assistant и содержащий следующуюинформацию, необходимую для доступа к каталогу:

• Тип каталога. ; • . •

• Местонахождение каталогаА " У *• Административный контекст по умолчанию, который будет исполь-зоваться клиентом или сервером для поиска или конфигурированияидентификаторов соединений

Файл Idap.ora размещается в каталоге $ORACLE_HOME/network/adminна платформах UNIX и ORACLE_HOME\network\admin на платформах WindowsNT.

LDIFLDAP Data Interchange Format (формат обмена данными LDAP). Набор

правил, определяющих способ представления данных во входныхфайлах утилит командной строки, предназначенных для работы скаталогом.

•Listener Control (Isnrctl), утилитаУтилита в составе Net8, предназначенная для управления прослушиваю-щим процессом, в частности, для его запуска, останова, а также получе-ния информации о состоянии.

'listener.ога, файлФайл конфигурации прослушивающего процесса, в котором указаны:

• Имя прослушивающего процесса• Адреса протоколов, по которым принимаются запросы

на соединения• Службы, для которых ведется прослушивание

Файл listener, ога обычно располагается в каталоге $ORACLE_HOME/network/admin на платформах UNDC и ORACLE_HOME\network\admin на плат-формах Windows NT.

Для баз данных Oracle 8.1 не требуется указывать имя службы, поско-льку регистрация службы в прослушивающем процессе производится ав-томатически. Статическое конфигурирование необходимо только в томслучае, если вы планируете использовать Oracle Enterprise Manager.

•.

Page 456: Oracle 8i Networking 101

438 Глоссарий

LU6.2, протоколLogical Unit Type 6.2. Используется в сетях SNA. Обеспечивает связьOracle-приложения, размещенного на PC, с базой данных Oracle, разме-щенной на хосте, поддерживающем архитектуру усовершенствованныхмежпрограммных связей (АРРС).

Microsoft Active DirectoryLDAP-совместимая служба каталога, входящая в состав Windows 2000Server. Хранит информацию об объектах сети и предоставляет эту ин-формацию пользователям и сетевым администраторам. Обеспечиваетдоступ пользователей к ресурсам сети с использованием процедурыединого входа.

Служба Active Directory может использоваться для хранения информа-ции о службах при использовании метода именования по каталогу.

MTSСм. многопоточный сервер.

.... . . . ; . . - , : . . • . . , .:,'.•

•Named Pipes, протоколИнтерфейсный протокол высокого уровня, обеспечивающий взаимодей-ствие между клиентскими и серверными процессами в распределенныхприложениях.

•names.ora, файлФайл конфигурации, содержащий параметры сервера имен Oracle.1 . .NDSСм. служба каталога Novell.

-Nets AssistantИнструмент с графическим интерфейсом пользователя, предоставляю-щий интегрированную среду для конфигурирования и управления Net8.Может использоваться как на стороне клиента, так и на стороне сервера.

С помощью Net8 Assistant можно конфигурировать:• Именование: определять идентификаторы соединений и отобра-

жать их в дескрипторы соединений, содержащие сетевые адресаи идентификаторы служб. Net8 Assistant поддерживает конфигу-рирование дескрипторов соединений через локальные файлыtnsnames.ora, централизованную LDAP-совместимую службу катало-га или сервер имен Oracle.

• Методы именования: конфигурировать различные способы разре-шения идентификаторов соединений в дескрипторы соединений.

• Прослушивающие процессы: создавать и конфигурировать прослу-шивающие процессы, принимающие клиентские запросы.

Page 457: Oracle 8i Networking 101

Глоссарий 439

Net8 Configuration AssistantИнструмент с графическим интерфейсом пользователя, предназначен-ный для конфигурирования основных сетевых компонентов после уста-новки. Позволяет конфигурировать:

• Имена прослушивающих процессов и адреса протоколов• Методы именования, которые будут использоваться клиентами

для разрешения идентификаторов соединений• Имена сетевых служб в файле tnsnames.ora• Доступ к серверу каталога

Nets OpenИнтерфейс прикладного программирования (API) Net8, позволяющийразрабатывать приложения, использующие уже развернутую сеть Net8.Net8 Open предоставляет приложениям универсальный интерфейс ковсем стандартным сетевым протоколам.

Программное обеспечение для удаленного доступа к данным, позволяю-щее устанавливать связи "клиент-сервер" и "сервер-сервер" в любой сети.Поддерживает распределенную обработку и распределенные базы дан-ных. Работает поверх многих коммуникационных протоколов и обеспе-чивает межпротокольное взаимодействие. Совместимо с SQL*Netверсии 2.

MlСм. сетевой интерфейс.

NISСи. сетевая информационная служба.

NNСетевое именование (Network Naming). Подуровень Net8, отвечающий заразрешение имен сетевых служб в сетевые адреса.

.

NPIСм. сетевой программный интерфейс.

NRСетевая маршрутизация (Network Routing). Подуровень Net8, отвечаю-щий за маршрутизацию запросов.

NSСм. сетевой сеанс.

: • • ' '

NTСетевой транспорт (Network Transport). См. транспорт.

Page 458: Oracle 8i Networking 101

440 Глоссарий

шociСм. интерфейс вызовов Oracle. (Oracel Call Interface).

OPIСм. программный интерфейс Oracle.

Oracle Database Configuration AssistantИнструмент, позволяющий создавать, удалять и модифицировать базыданных.

Oracle NamesСлужба каталога Oracle, представляющая собой систему серверов именOracle, обеспечивающих разрешение имени в адрес для каждой из при-сутствующих в сети служб Net8.

Oracle RdbБаза данных для 64-разрядных платформ Digital. Поскольку Oracle Rdbимеет свой собственный прослушивающий процесс, клиенты взаимодей-ствуют с ней таким же образом, как и с базой данных Oracle.

ORACLE_HOMEАльтернативное имя для каталога верхнего уровня в иерархии каталоговOracle. Используется в некоторых операционных системах.

OracleSi JserverОбеспечивает поддержку хранимых Java-процедур, JDBC, SQLJ, общей ар-хитектуры брокера объектных запросов (CORBA) и Enterprise JavaBeans(EJB) в базах данных OracleSi.

OSIСм. взаимодействие открытых систем.

RDBMS (Relational Database Management System)Реляционная система управления базами данных (РСУБД).

RDNСм. относительное отличительное имя.

RPCУдаленный вызов процедур (Remote Procedure Call).

••"Secure Socket Layer (SSL)Протокол промышленного стандарта, разработанный корпорациейNetscape Communicaions для защиты сетевых соединений. SSL обеспечива-ет аутентификацию, шифрование и контроль целостности данных, испо-льзуя инфраструктуру открытых ключей (Public Key Infrastructure, PKI).

Page 459: Oracle 8i Networking 101

Глоссарий 441

SIDСм. системный идентификатор Oracle.

. ' Я*° .SID_LIST_listener_nameРаздел файла listener.ora, в котором указан SID базы данных, обслуживае-мой прослушивающим процессом. Этот раздел действителен только длябаз данных версий 7.x и 8.0, поскольку в версии 8.1 информация об экзем-

• плярах автоматически регистрируется в прослушивающем процессе. Ста-тическое конфигурирование требуется и для других служб, в том числевнешних процедур и службы неоднородности, а также для некоторых ин-струментов управления, включая Oracle Enterprise Manager.

SPX,протоколПротокол последовательного обмена пакетами (Sequenced Packet Exchan-ge), разработанный фирмой Novell. Применяется во многих системахуправления сетями, в том числе Novell Advanced Netware.

•' ' • " 'SQL'NetПредшественник Net8. Продукт Oracle, работающий совместно с OracleServer и позволяющий двум и более компьютерам, на которых запущеныРСУБД Oracle или инструменты Oracle, обмениваться данными по сети.SQL*Net поддерживает распределенную обработку и распределенныебазы данных, работает поверх многих коммуникационных протоколов иобеспечивает межпротокольное взаимодействие.

•Krifimo,.'-.sqlnet.ora, файлФайл конфигурации клиента или сервера, в котором указывается:

• Имя домена, которое будет добавляться к неквалифицированнымименам служб или именам сетевых служб

• Последовательность, в которой клиент должен использоватьметоды именования при разрешении имен

• Параметры протоколирования и трассировки

• Информация о маршрутизации

• Предпочтительные серверы имен Oracle

• Параметры внешнего именования

« Параметры Oracle Advanced Security

Файл sq lnet .ora обычно размещается в каталоге $ O R A C L E _ H O M E/network/admin на платформах UNIX и ORACLE_HOME\network\admin на плат-формах Windows NT.

SSLСм. Secure Socket Layer.

Page 460: Oracle 8i Networking 101

442 Глоссарий

TCP/IP с SSLКомбинация протоколов TCP/IP и Secure Socket Layer,, обеспечивающаязащищенную связь клиентского приложения с удаленными базами дан-ных Oracle (если хост, на котором запущена база данных Oracle, поддер-живает TCP/IP и SSL).

TCP/IP, протоколПротокол управления передачей/протокол межсетевого взаимодействия(Transmission Control Protocol/Internet Protocol). Стандарт де-факто вИнтернете. Обеспечивает связь клиента с сервером по сети.

TNSСм. прозрачный сетевой субстрат.

• - . . ' .tnsnames.ora, файлФайл конфигурации, содержащий отображения между именами сете-вых служб и дескрипторами соединений. Используется при локаль-ном именовании. Обычно размещается в каталоге $ORACLE_HOME/network/admin на платформах UNIX и ORACLE_HOME\network\admin на плат-формах Windows NT.

ттсСм. Two-Task Common.

Two-Task Common (TTC)Реализация уровня представления данных в Oracle. Обеспечивает пре-образование между различными наборами символов и типами данных,используемыми клиентами и серверами.

UPIПрограммный интерфейс пользователя (User Program Interface).

• •

Page 461: Oracle 8i Networking 101

Глоссарий 443

•. . . • • • -Административный контекст (administrative context)Запись каталога, под которой размещается контекст Oracle (OracleContext). Административный контекст может быть контекстом име-нования каталога. Заносится в файл конфигурации каталога (Idap.ora)в процессе конфигурирования клиентского доступа к каталогу. Админист-ративный контекст определяет местонахождение контекста Oracle в ка-талоге, к записям которого предположительно будут обращатьсяклиенты.

Административный регион (administrative region)Организационная единица для администрирования компонентов сетиNet8. Каждый административный регион содержит:

• Один и более доменов• Один и более серверов имен Oracle• Одну и более баз данных с прослушивающими процессами

. ' .. • - . • •Администратор базы данных (database administrator, DBA)1) Лицо, отвечающее за эксплуатацию и обслуживание сервера Oracleили приложения базы данных. 2) Пользователь Oracle, который получилпривилегии администратора и может выполнять задачи по администри-рованию базы данных. Обычно эти значения совпадают. На многихсайтах есть несколько администраторов.

Адрес (address)Данные о местонахождении сетевого объекта (например, прослушиваю-щего процесса, менеджера соединений или сервера имен Oracle), исполь-зуемые для его идентификации. Адреса имеют определенный формат идолжны быть уникальными.

Адрес протокола (protocol address)Сетевой адрес, используемый при обращении к объекту сети по опреде1-ленному протоколу.

Адрес протокола указывается в файлах конфигурации клиента и полу-чателя запроса (прослушивающего процесса, сервера имен Oracle илименеджера соединений Oracle). Клиент использует этот адрес для направ-ления запроса на соединение к нужному сетевому объекту, а принимаю-щая сторона "прослушивает" этот адрес в ожидании запросов. Дляуспешного установления соединения клиент и приемник должны исполь-зовать одинаковые протоколы и адреса.

Архитектура клиент-сервер (client-server architecture)Программная архитектура, основанная на разделении обработки меж-ду двумя процессорами, один из которых выступает в роли клиентатранзакции, запрашивающего услуги, а другой — в роли сервера транзак-ции, предоставляющего услуги.

Page 462: Oracle 8i Networking 101

444 Глоссарий

Атрибут (attribute)Информационный элемент, описывающий некоторый аспект записи.Запись состоит из набора атрибутов, каждый из которых принадлежитобъектному классу. Кроме того, каждый атрибут имеет тип, определяю-щий, какого вида информация хранится в атрибуте, и значение, пред-ставляющее собой фактические данные.

Аутентификация NDSМетод аутентификации, при котором клиент получает доступ к серверами базам данных в едином дереве каталога NDS.

Балансировка нагрузки (load balancing)Равномерное распределение клиентских соединений между прослушива-ющими процессами, диспетчерами, экземплярами и узлами, позволяю-щее избежать перегрузки отдельных компонентов.

Net8 поддерживает балансировку нагрузки на уровне клиента (clientload balancing) и балансировку нагрузки на уровне соединения (connecti-on load balancing).

Балансировка нагрузки на уровне клиента (client load balancing)Балансировка нагрузки, при которой клиент может случайным образомвыбирать, к какому прослушивающему процессу направить запрос насоединение (если одна база данных обслуживается более чем одним про-слушивающим процессом). Рандомизация позволяет равномерно распре-делить нагрузку по обслуживанию входящих запросов на соединениямежду всеми прослушивающими процессами.

Балансировка нагрузки на уровне соединения(connection load balancing)Балансировка нагрузки, направленная на выравнивание количества ак-тивных соединений между различными экземплярами и диспетчерамиодной службы. Прослушивающие процессы принимают решение о марш-рутизации клиентских запросов, учитывая количество соединений, об-служиваемых каждым диспетчером, и загрузку узлов, на которыхзапущены экземпляры.

ШВзаимодействие открытых систем (Open Systems Interconnection, OSI)Эталонная модель сетевой архитектуры, разработанная Международнойорганизацией по стандартизации (ISO). Лежит в основе международныхстандартов, относящихся к архитектуре разнородных компьютерныхсетей.

В модели OSI определены семь уровней: физический (physical layer),канальный (data link layer), сетевой (network layer), транспортный (

Page 463: Oracle 8i Networking 101

Глоссарий 445

transport .layer), сеансовый (session layer), представления данных (presen-tation layer) и прикладной (application layer). Каждый уровень опираетсяна нижележащий и предоставляет услуги вышележащему уровню.

Виртуальный канал (virtual circuit). . . . . ,

Область разделяемой памяти, используемая диспетчером для размеще-ния клиентских запросов к базе данных и ответов на них. При поступле-нии запроса диспетчер помещает виртуальный канал в общую очередь.Свободный разделяемый сервер извлекает виртуальный канал из очере-ди, обслуживает запрос и освобождает канал перед тем, как извлечь изочереди другой виртуальный канал.

Внешнее именование (external naming)Метод разрешения имен сетевых служб, основанный на использованиисторонней службы именования, например NIS или NDS.

Внешние домены (foreign domains)Множество доменов, не управляемых из данного административногорегиона. Домены являются внешними только по отношению к региону;они никогда не бывают внешними в абсолютном смысле. Сетевой адми-нистратор обычно определяет домены как внешние по отношению к не-которому региону с целью оптимизации кэширования на сервере имен.

Внешние процедуры (external procedures)Функции или процедуры, написанные на языке третьего поколения(3GL), которые могут вызываться из кода PL/SQL. Для внешних проце-дур поддерживается только язык С.

Выделенный сервер (dedicated server)Сервер, обслуживающий одного клиента.

Net8 возвращает адрес существующего серверного процесса клиенту.Клиент еще раз посылает запрос на соединение по указанному адресу.Ср. многопоточный сервер.

. -/и»;»)' ИГМЙЭМНДЭОЗ '

Глобальная связь базы данных (global database link)Связь базы данных, обеспечивающая связь каждой базы данных в сети совсеми остальными базами данных. Благодаря этому любой пользовательлюбой базы данных может указывать глобальное имя объекта в SQL-опе-раторе или определении объекта. Глобальные связи баз данных могутхраниться на сервере имен Oracle.

Глобальное ИМЯ базы данных (global database name)Полное имя базы данных, уникально идентифицирующее ее среди другихбаз данных. Глобальное имя базы данных имеет вид "имя_базы_данных.до-мен_базы_данных", например, sales, us. acme. com.

Именная часть (sales) — это простое имя, которым была названа базаданных. Доменная часть (us.acme.com) указывает, в каком домене располо-жена база данных, тем самым обеспечивая уникальность глобального

Page 464: Oracle 8i Networking 101

446 Глоссарий

имени. Корпорация Oracle рекомендует по мере возможности опреде-лять домены баз данных так, чтобы они совпадали с сетевыми доменами.

Глобальное имя базы данных — это имя службы по умолчанию, указы-ваемое в параметре SERVICE_NAMES файла параметров инициализации.

Данные о соединении (connect data)Часть дескриптора соединения, которая определяет имя службы или сис-темный идентификатор (SID) базы данных назначения. В приведенномниже примере SERVICE_NAME определяет службу базы данных с именемsales.us.acme.com:

.••''••' • ' •(description(address= (protocol=tcp)(host=sales-pc)(port=1521)(connect_data=

(service_name=sales.us.acme.com)))

Данные топологии (topology data)Данные, используемые сервером имен Oracle для управления регулярнымфункционированием и связи с другими серверами имен Oracle. К ним от-носятся подстановки, имена серверов Oracle Names корневого региона исерверов Oracle Names любых делегированных регионов.

Делегированное администрирование (delegated administration)Метод администрирования сети Oracle Names, при котором управлениесетью делегируется одному и более административным регионам низше-го уровня. Называется также распределенным или децентрализованнымадминистрированием.

Делегированный административный регион(delegated administrative region)

Регион более низкого уровня иерархии, чем корневой. Любой регион, неявляющийся корневым.

Дескриптор соединения (connect descriptor)Специальным образом отформатированное описание конечной точки се-тевого соединения. Дескриптор соединения содержит информацию ослужбе назначения и сетевом маршруте.

Служба назначения идентифицируется именем службы (для баз дан-ных Oracle версии 8.1) или системным идентификатором (для баз данныхOracle версии 8.0 или 7). Сетевой маршрут как минимум содержит адреспрослушивающего процесса.

Децентрализованное администрирование(decentralized administration)См. делегированное администрирование.

1• I ^ • . . . . -

Page 465: Oracle 8i Networking 101

Глоссарий 447

Диспетчер (dispatcher)Процесс, обеспечивающий соединение многих пользователей с одним итем же сервером без создания процесса выделенного сервера для каждогоклиента. Диспетчер принимает входящие клиентские запросы и направ-ляет их процессам разделяемых серверов. См. также многопоточныйсервер.

Домен (domain)Любое дерево или поддерево в пространстве имен DNS (системы домен-ных имен). Чаще всего под доменом понимается группа компьютеров,имена которых содержат один и тот же суффикс — имя домена.

Домен по умолчанию (default domain)Домен, в который направляется основная часть клиентских запросов.Это может быть локальный домен, в котором находится клиент, или уда-ленный домен, к службам которого часто обращается клиент. Параметрконфигурации клиента default_domain определяет, какое имя домена дол-жно добавляться к неквалифицированному имени службы, указанному взапросе. Имя считается неквалифицированным, если в нем отсутствуетточка (.).

• I . • • • • . .Драйверы Java Database Connectivity (JDBC)Драйверы, при помощи которых Java-программисты могут обращаться кбазе данных.

. ' . - > • .

Запись (entry)Основной строительный блок каталога; содержит информацию об объек-те, представляющем интерес для пользователей каталога.

Запрос на соединение (connection request)Уведомление о желании установить соединение, посылаемое клиентомпрослушивающему процессу.

Ш . э;. - . - • . . . .

Идентификатор соединения (connect identifier)Имя сетевой службы или имя службы, разрешаемое в дескриптор соеди-нения. Чтобы инициировать запрос на соединение с какой-либо службой,пользователь указывает в строке соединения свое имя, пароль и иденти-фикатор соединения для этой службы:

CONNECT имя_пользователя/пароль@идентификатор_соединения

Именование по каталогу (directory naming)Метод именования, в котором имя службы базы данных или имени сете-вой службы разрешается в дескриптор соединения, хранящийся на цент-ральном сервере каталога.

Page 466: Oracle 8i Networking 101

448 Глоссарий

За счет централизованного администрирования имен служб баз дан-ных и имен сетевых служб сокращается объем работы, связанной с добав-лением или перемещением служб, Кроме того, каталог позволяетссылаться на службу базы данных непосредственно, без использованияпсевдонима в виде имени сетевой службы. Чтобы облегчить конфигури-рование, запись о службе базы данных автоматически добавляется в ката-лог во время установки.

Именование по хосту (host naming)Разрешение имен сетевых служб в среде TCP/IP при помощи существую-щей службы разрешения имен. В роли такой службы может выступатьDNS, NIS или просто централизованно ведущийся набор файлов/etc/hosts. Именование по хосту позволяет пользователям соединяться ссервером Oracle, указывая просто имя хоста или его псевдоним. Специа-льное конфигурирование клиентов не требуется. Этот метод рекоменду-ется для простых сред TCP/IP.

Имя пользователя (user name)Имя, под которым пользователь известен серверу Oracle и другим пользо-вателям. Каждому имени пользователя ставится в соответствие пароль.Для соединения с базой данных имя пользователя требуется вводитьвместе с паролем.

Имя сетевой службы (net service name)Простое имя службы, разрешаемое в дескриптор соединения. Чтобы ини-циировать запрос на соединение, пользователь указывает в строке соеди-нения свое имя, пароль и имя сетевой службы:

CONNECT имя_пользавателя/пароль@имя_сетевой_службыВозможны следующие варианты хранения имен сетевых служб:• Локальные файлы конфигурации tnsnames.ora на каждой

клиентской машине• Сервер каталога• Сервер имен Oracle• Внешняя служба именования — NDS, NIS или CDS

Имя службы (service name)Логическое представление базы данных для клиентов. База данныхможет быть представлена как множество служб, а служба может быть реа-лизована как множество экземпляров базы данных. Имя службы представ-ляет собой глобальное имя базы данных, составленное из имени базыданных и имени домена, которое определяется при установке или в про-цессе создания базы данных. Глобальное имя базы данных можно полу-чить из параметра SERVICE_NAMES в файле параметров инициализации.

Имя службы включается в ту часть дескриптора соединения, котораясодержит данные о соединении.

Page 467: Oracle 8i Networking 101

Глоссарий 449

Интернет-каталог Oracle (Oracle Internet Directory, OlD)Служба каталога, реализованная как приложение базы данных Oracle вер-сии 8.1. Позволяет получать информацию о распределенных пользовате-лях и сетевых ресурсах. OID объединяет функциональность протоколадоступа к каталогу LDAP версии 3, являющегося открытым стандартомИнтернета, с высокой производительностью, масштабируемостью, на-дежностью и доступностью программного обеспечения OracleSi Server.

,Интерфейс вызовов Oracle (Oracle Call Interface, OCI)Интерфейс прикладного программирования (API), позволяющий созда-вать приложения, которые используют собственные процедуры или вы-зовы функций языка третьего поколения для обращения к серверу базыданных Oracle и управления всеми фазами выполнения SQL-оператора.OCI поддерживает типы данных, соглашения о вызовах, синтаксис и се-мантику целого ряда языков третьего поколения, включая С, C++,COBOL и FORTRAN.

Информационное дерево каталога (Directory information Tree, DIT)Иерархическая древовидная структура отличительных имен (DN)записей на сервере каталога.

• . ' ' • • . •

Карта (тар)Файлы, используемые программой ypserv сетевой информационнойслужбы (NIS) при обработке запросов на разрешение имен.

Квалификатор связи (link qualifier)Квалификатор, добавляемый к глобальной связи базы данных. Позво-ляет использовать альтернативные установки для имени пользователяи пароля. Например, глобальная связь sales.us.acme.com может иметьКвалификатор emp.

• . „{0>*Клиент (client)Пользователь, приложение или компьютер, запрашивающий услуги, дан-ные или обработку у другого приложения или компьютера. В двухзадач-ной среде клиентом является пользовательский процесс. В сетевой средеклиентом является локальный пользовательский процесс, а сервер можетбыть как локальным, так и удаленным.

Контекст Oracle (Oracle Context)RDN вида cn=OracleContext, под которым хранится вся информация, от-носящаяся к программному обеспечению Oracle (включая записи дляименования по каталогу и обеспечения безопасности в масштабепредприятия).

Каталог может содержать один или несколько контекстов Oracle.Контекст Oracle может быть ассоциирован с контекстом именования покаталогу.

Page 468: Oracle 8i Networking 101

450 Глоссарий

Контекст именования по каталогу (directory naming context)Поддерево в структуре сервера каталога. Обычно представляет собойвершину некоторого организационного поддерева. В некоторых катало-гах допускается только один фиксированный контекст; в других возмож-но как полное отсутствие, так и наличие нескольких контекстов,конфигурируемых администратором.

Концентрация соединений (connection concentration)Группирование клиентских запросов на соединения с целью установле-ния единственного соединения с сервером. Реализуется менеджером сое-динений Oracle. Позволяет более экономно расходовать ресурсысервера.

Корневой административный регион (root administrative region)Административный регион высшего уровня. Содержит корневой домен.

Корневой домен (root domain)Домен высшего уровня в модели иерархического именования.

Корпоративная роль (enterprise role)Корпоративная роль аналогична обычной роли базы данных, за исключе-нием того, что она авторизована в множественных базах данных. Корпо-ративная роль относится к категории ролей, которым предоставляютсяпривилегии на отдельную базу данных. Она создается администраторомэтой базы данных. Корпоративная роль может предоставляться одному иболее корпоративным пользователям. Информация о предоставлении иотмене таких ролей хранится в каталоге. Кроме создания корпоративныхролей, администратор базы данных может предоставлять роли и приви-легии схеме базы данных. Каждый, кто использует эту схему, получает еелокальные роли и привилегии в дополнение к корпоративным ролям.

Корпоративный пользователь (enterprise user)Каждый корпоративный пользователь имеет идентификатор, уника-льный в пределах предприятия. Корпоративные пользователи соеди-няются с отдельными базами данных через схему. Корпоративнымпользователям присваиваются корпоративные роли, определяющие ихпривилегии доступа к базам данных.

.

Кэш (cache)Память, в которой сохраняются последние использовавшиеся данные,чтобы последующие запросы на доступ к тем же самым данным могли об-рабатываться быстрее.

Page 469: Oracle 8i Networking 101

Глоссарий - 451

:

Локальное именование (local naming)Метод разрешения имен сетевых служб, в котором для определения сете-вых адресов используется информация из файлов tnsnames.ora, разме-щенных на каждой клиентской машине. Локальное именование лучшевсего подходит для простых распределенных систем с небольшим коли-чеством редко изменяемых служб.

"• ' • ' • 'Локальный тест (loopback test)Соединение сервера с самим собой. Локальный тест позволяет прове-рить функционирование Net8 на стороне сервера.

Межброкерный Интернет-протокол(Internet Inter-ORB Protocol, HOP)Реализация универсального межброкерного протокола (GIOP) поверхTCP/IP или TCP/IP с SSL для соединений с OracleSi JServer.

Межпроцессная СВЯЗЬ (Interprocess Communication)Протокол, используемый клиентскими приложениями для связи с базойданных, когда эти приложения и прослушивающий процесс располагают-ся на одном узле.

Менеджер соединений Oracle (Oracle Connection Manager)Маршрутизатор, направляющий клиентский запрос либо к следующемупромежуточному узлу, либо непосредственно к серверу базы данных. Примаршрутизации запросов через менеджер соединений возможно исполь-зование таких его функций, как концентрация соединений, управлениедоступом на уровне Net8 и мультипротокольная поддержка.

: • '

Местные домены (domestic domains)Множество доменов, управляемых из данного административного регио-на. Домены являются местными только по отношению к региону; они ни-когда не бывают местными в абсолютном смысле. Альтернативноеназвание — локальные домены.

Метод аутентификации (authentication method)Метод обеспечения безопасности, позволяющий с высокой степенью до-стоверности идентифицировать пользователей, а также клиенты и серве-ры в распределенных средах. Методы сетевой аутентификации могуттакже обеспечивать единый вход для пользователей. В Oracle возможнаподдержка следующих методов аутентификации (в зависимости от того,установлены ли средства Advanced Oracle Networking):

• CyberSafe• SecurlD• RADIUS

Page 470: Oracle 8i Networking 101

452 Глоссарий

• Identix• Kerberos• SSL• Собственная аутентификация Windwos NT

Метод именования (naming method)Метод, используемый клиентским приложением для разрешенияидентификатора соединения в дескриптор соединения при попыткесоединиться со службой базы данных. Net8 поддерживает пять методовименования:

• Локальное именование• Именование по каталогу• Именование по хосту• Именование Oracle (Oracle Names)• Внешнее именование

МНОГОПОТОЧНЫЙ сервер (multi-threaded server, MTS)Сервер, конфигурация которого позволяет множеству пользовательскихпроцессов разделять очень небольшое число серверных процессов. Этоувеличивает количество поддерживаемых пользователей. В конфигура-ции MTS пользовательские процессы соединяются с диспетчером. Дис-петчер помещает входящие запросы в общую очередь. Свободныйпроцесс разделяемого сервера, входящий в разделяемый пул серверныхпроцессов, извлекает запрос из очереди. Это означает, что небольшойпул серверных процессов может обслуживать большое число клиентов.Ср. выделенный сервер.

Модель иерархического именования (hierarchical naming model)Инфраструктура, в которой имена распределены по множеству иерархи-чески связанных доменов. В сети Oracle Names иерархическая модельименования может использоваться как при централизованном, так и приделегированном администрировании.

Модель именования (naming model)Набор и структура доменов, в пределах которых могут размещатьсяимена.

В модели плоского именования есть только один домен.В модели иерархического именования домены образуют многоуровне-

вую иерархию. Домен высшего уровня называется корневым доменом(root domain).

Модель ПЛОСКОГО именования (flat naming model)Инфраструктура Oracle Names, в которой существует только один домен.Все имена в пределах этого домена должны быть уникальными.

Page 471: Oracle 8i Networking 101

Глоссарий 453

Мультиплексирование (multiplexing)Объединение данных многих сеансов для передачи по единственномутранспортному соединению с целью экономии ресурсов операционнойсистемы. Си. также концентрация соединений.

Мультипротокольная поддержка (multi-protocol support)Обеспечение взаимодействия клиента и сервера, использующих разныесетевые протоколы. Реализуется менеджером соединений Oracle.В SQL*Net версии 2 эти функции выполняло средство мультипротоколь-ного обмена (Multi-Protocol Interchange).

Ш ;'

Обработчик службы (service handler)Обработчиком службы может быть диспетчер многопоточного сервера,выделенный сервер или предварительно созданный выделенный сервер.

Обход ошибок (failover)См. обход ошибок соединения._ ., ,Обход ошибок соединения (connect-time failover)Перенаправление клиентского запроса к другому прослушивающемупроцессу, если первый не отвечает. Это возможно благодаря регистра-ции служб, в результате которой прослушивающий процесс узнает о фун-кционировании экземпляра еще до того, как попытается установитьсоединение.

Общая связь базы данных (public database link)Связь базы данных, созданная администратором в локальной базе данныхи доступная всем пользователям этой базы данных.

См. также связь базы данных, глобальная связь базы данных, частнаясвязь базы данных.

fОбъединение соединении (connection pooling)Способ минимизации числа физических сетевых соединений с многопо-точным сервером с целью более эффективного использования ресурсов имасштабирования нагрузки._ _ ,*qd £»мсс|*Д|И

Объектный класс (object class)Поименованная группа атрибутов. Чтобы присвоить записи определен-ные атрибуты, ей присваиваются объектные классы, содержащие этиатрибуты.

Все объекты, являющиеся экземплярами объектного класса, имеютодни и те же атрибуты.

Отличительное имя (Distinguished Name, DN)Имя записи на сервере каталога. DN определяет местонахождение запи-си в иерархии каталога LDAP, примерно так же, как путь файловой систе-мы определяет точное местонахождение файла.

Page 472: Oracle 8i Networking 101

454 Глоссарий

Относительное отличительное имя (Relative Distinguished Name, RDN)Локальное имя записи, которое не допускает дальнейшего разбиения начасти. Не позволяет уникально идентифицировать запись. В примереcn=sales, dc=us, dc=acme, dc=oom относительным отличительным именемявляется cn=sales.

Пакет (packet)Информационный блок, посылаемый по сети каждый раз, когда запраши-вается соединение или передача данных. Состав информации, содержа-щейся в пакете, зависит от его типа: "соединение", "подтверждение","перенаправление", "данные" и т.д. Информация пакета может быть по-лезна при диагностике ошибок.

Пакет данных (data packet)См. пакет.

Пара "ключевое слово-значение" (keyword-value pair)Комбинация из ключевого слова и значения, используемая в качествестандартной единицы информации в дескрипторах соединений и многихфайлах конфигурации. Эти пары могут быть вложенными, т.е. значениеможет представлять собой другую пару "ключевое слово-значение".

Параметр (parameter)Информация, передаваемая программе, команде или функции, напримерспецификация файла, ключевое слово или числовая константа.

Пароль (password)Строка (слово или фраза), используемая для защиты данных и известнаятолько их владельцу. Пароли вводятся вместе с регистрационным иденти-фикатором операционной системы, именем пользователя Oracle илиименем учетной записи с целью входа в операционную систему или при-ложение (например, в базу данных Oracle). Секретный пароль гарантиру-ет, что общеизвестным именем пользователя или идентификаторомсможет пользоваться только его настоящий владелец.

, , ••Поддержка брандмауэра (firewall support)См. управление доступом на уровне Net8.

Предварительно созданный выделенный сервер(prespawned dedicated server)Процесс выделенного сервера, запускаемый прослушивающим процес-сом до поступления каких-либо запросов на соединения. Предваритель-ное создание выделенных серверов уменьшает затраты времени наустановление соединений в тех случаях, когда многопоточный сервер(MTS) не используется или не поддерживается на данной машине. Приэтом системные ресурсы расходуются более эффективно, поскольку

Page 473: Oracle 8i Networking 101

Глоссарий 455

однажды созданный выделенный сервер не уничтожается после закры-тия соединения и может использоваться многократно.

Предпочтительный сервер имен Oracle(preferred Oracle Names server)Сервер имен Oracle, к которому клиент должен обращаться в первую оче-редь. Обычно это сервер, физически расположенный ближе всего к кли-енту или доступный по наиболее "дешевому" сетевому маршруту.

Программный интерфейс Oracle (Oracle Program Interface, OPI)Уровень, отвечающий за выдачу ответов на каждое из возможных сооб-щений, посылаемых интерфейсом OCI. Например, OCI-запрос навыборку 25 строк вызовет OPI-ответ, в котором будут возвращены 25 вы-бранных строк.

'Прозрачность местонахождения (location transparency)Свойство распределенной базы данных, позволяющее приложениямобращаться к таблицам, не зная их местонахождения. Для приложениявсе таблицы выглядят как находящиеся в одной базе данных, а их факти-ческое местонахождение определяется системой по имени таблицы. Водном SQL-операторе пользователь может ссылаться на данные, находя-щиеся на разных узлах; система автоматически передаст оператор (илиего части) удаленным узлам для выполнения. Перемещение данных меж-ду узлами не сказывается на пользователе или приложении.

Прозрачный обход ошибок приложения(Transparent Application Failover, TAP)Обход ошибок, возникших в. процессе выполнения приложения, реализу-емый в средах с высокой степенью доступности, таких как Oracle ParallelServer и Oracle Fail Safe. Позволяет клиентским приложениям автомати-чески восстанавливать разорванные соединения с базой данных, принеобходимости возобновляя выполнение оператора SELECT. Восстанов-ление соединения автоматически инициируется библиотекой OCI.

Прозрачный сетевой субстрат (Transparent Network Substrate, TNS)Технология, лежащая в основе Net8, менеджера соединений Oracle и име-нования Oracle, взаимодействующая с любым стандартным сетевымтранспортным протоколом.

Прослушивающий процесс (listener)Серверный процесс, отвечающий за прием запросов на соединения иуправление входящим трафиком сервера.

Когда клиент (или сервер, выступающий в роли клиента) обращаетсяк серверу с запросом на открытие сеанса, этот запрос в первую очередьпринимается прослушивающим процессом. Если клиенту разрешено уста-навливать соединение, то прослушивающий процесс передает запроссерверу.

Page 474: Oracle 8i Networking 101

456 Глоссарий

Протокол Oracle (Oracle Protocol)Набор правил, в соответствии с которыми осуществляется транспорти-ровка данных по сети. Существует несколько стандартных транспортныхпротоколов, например, TCP и SPX.

Протокол локального обмена (bequeath protocol)Если прослушивающий процесс находится на одном узле с сервером, тоон может создавать (порождать) выделенные серверы при получении за-просов на соединения. Выделенные серверы обслуживают только одинсетевой сеанс и существуют только на протяжении этого сеанса. Последо-вательность событий, происходящих при создании процесса выделенно-го сервера и передачи (букв. — "завещания") ему управления сетевымсеансом.

Протоколирование (logging)Запись сообщений об ошибках, информации о работе служб и статисти-ческих данных в файл журнала (log file). Когда экранного сообщения не-достаточно для понимания причин ошибки, администратор можетполучить из файла журнала дополнительную информацию. За счет реали-зации так называемого стека ошибок (error stack) файл журнала показы-вает состояние программных компонентов на различных уровнях.

См. также трассировка.

Профиль (profile)Набор параметров, определяющих конфигурацию Net8 на стороне кли-ента или сервера. Профиль хранится в файле sqlnet.ora.

Профиль клиента (client profile)Свойства клиента, в число которых могут входить предпочтительный по-рядок использования методов именования, параметры протоколирова-ния и трассировки, имя домена, из которого запрашиваются имена, идругие параметры, относящиеся к использованию средств Oracle Namesи Oracle Advanced Security.

Процесс PMONСпециальный процесс, осуществляющий мониторинг процессов базыданных. PMON отвечает за восстановление среды (очистку кэша и осво-бождение ресурсов) после сбоя в пользовательском процессе, а такжепроверяет функционирование процессов диспетчеров и серверов, пере-запуская их в случае сбоя. Кроме того, PMON принимает участие в проце-дуре регистрации службы, регистрируя информацию об экземпляре впрослушивающем процессе. 1

Псевдоним (alias)Альтернативное имя для существующего сетевого объекта. Созданныйпсевдоним и оригинальное имя сетевого объекта разрешаются в один итот же адрес. Сервер имен Oracle хранит псевдонимы для любого именисетевой службы, сервера базы данных или связи базы данных.

Page 475: Oracle 8i Networking 101

Глоссарий 457

fft '

Распределенная обработка (distributed processing)Распределение задач по обработке между разными компьютерами. Net8поддерживает распределенную обработку, обеспечивая прозрачное сое-динение приложений с удаленными базами данных.

Распределенное администрирование (distributed administration)См. делегированное администрирование.

РегионСм. административный регион.

Региональная база данных (region database)База данных Oracle, содержащая таблицы с информацией службы OracleNames.

Регистрация Служб (service registration)Автоматическая регистрация информации о запущенных службах впрослушивающем процессе. Выполняется процессом PMON. Регистра-ция служб позволяет избежать статического конфигурирования файлаlistener.ora.

При регистрации служб прослушивающему процессу передается следу-ющая информация: •,

• Имена служб для каждого запущенного экземпляра базы данных• Имена экземпляров базы данных• Адреса обработчиков служб (диспетчеров и выделенных серверов),

доступных в каждом экземпляре

Эта информация позволяет прослушивающему процессу надлежащимобразом направлять клиентские запросы на соединения.

• Информация о загруженности диспетчеров, экземпляров и узлов

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

Связь базы данных (database link)Сетевой объект, хранимый в локальной базе данных или в сетевом опре-делении, который идентифицирует удаленную базу данных, путь к этойбазе данных, а также (не обязательно) имя пользователя и пароль.

Общая или частная связь базы данных создается в локальной базе дан-ных администратором или пользователем.

В сети, где развернута служба Oracle Names, в каждой базе данных ав-томатически создаются глобальные связи, обеспечивающие доступ ковсем остальным базам данных этой сети. Глобальные связи хранятся в се-тевом определении.

Page 476: Oracle 8i Networking 101

458 Глоссарий

См. также глобальная связь базы данных, частная связь базы данных,общая связь базы данных.

Сеансовый уровень (session layer)Предоставляет услуги, необходимые для организации и синхронизации"диалога" между уровнями представления данных. Этот уровень открыва-ет и завершает сеансы связи между клиентами и серверами, а такжеуправляет передачей данных в ходе сеансов. Примером реализации сеан-сового уровня является подуровень NS в Net8.

Сервер имен Oracle (Oracle Names Server)Сервер службы Oracle Names, хранящий сетевые адреса служб наряду сих простыми именами, чтобы клиентские приложения могли запраши-вать соединения по простым именам вместо длинных адресов.

Сервер каталога (directory server)LDAP-совместимый сервер каталога, для обращения к которому использу-ется протокол LDAP. Каталог может обеспечивать централизованноехранение и поиск сетевых компонентов баз данных, пользовательских икорпоративных предпочтительных политик, аутентификационных дан-ных и привилегий пользователей, замещая локальные файлы на сторонеклиента и сервера.

Сетевая информационная служба (Network Information Service, NIS)Клиент-серверный протокол "желтых страниц" (Yellow Pages, yp), разра-ботанный компанией Sun Microsystems для распространения данных о си-стемной конфигурации (например, имен Пользователей и хостов) междукомпьютерами сети.

Сетевая служба (network service)В сети приложений Oracle — служба, предоставляющая определенныеуслуги своим клиентам. Например, сервер имен предоставляет клиентамуслуги по разрешению имен.

Сетевой администратор (network administrator)Лицо, осуществляющее управление сетью, в том числе установку, кон-фигурирование и тестирование сетевых компонентов. Как правило,администратор отвечает за ведение файлов конфигурации, создание де-скрипторов соединений и имен служб, псевдонимов, общих и частныхсвязей баз данных.

Сетевой интерфейс (Network interface, Ni)Универсальный интерфейс, через который клиенты, серверы или внеш-ние процессы получают доступ к функциям Net8. Уровень N1 обрабатыва-ет запросы на разрыв ("break") и сброс ("reset") соединения.

См. прослушивающий процесс.

Page 477: Oracle 8i Networking 101

Глоссарий 459

Сетевой набор символов (network character set)В Oracle: набор символов, допустимых в качестве значений в парах"ключевое слово-значение" (то есть в дескрипторах соединений и файлахконфигурации). К ним относятся цифры, буквы верхнего и нижнегорегистров, а также некоторые специальные символы.

Сетевой объект (network object)Любая служба сети, к которой возможно непосредственное обращениепо сетевому адресу, например, прослушивающий процесс или серверимен Oracle.

• . ' • ' ' ••'" 'Сетевой программный интерфейс (Network Program Interface, NPI)Интерфейс для межсерверных взаимодействий, выполняющий те жефункции, что и интерфейс OCJ для клиентов. Позволяет координи-рующему серверу конструировать SQL-запросы для вспомогательныхсерверов.

Сетевой протокол (network protocol)См. протокол Oracle.

.Сетевой сеанс (Network Session, NS)Подуровень Net8, отвечающий за установку и поддержку соединениямежду клиентским приложением и сервером.

Сеть (network)Группа из двух и более компьютеров, связанных посредством специаль-ного аппаратного и программного обеспечения с целью разделения дан-ных и/или периферийных устройств.

.Система доменных имен (Domain Name System, DNS)Система именования компьютеров и сетевых служб, организованных виерархию доменов. DNS используется в сетях TCP/IP для определенияместонахождения компьютеров по дружественным к пользователю име-нам. DNS разрешает дружественное имя в IP-адрес, который воспринима-ется компьютерами.

Net8 пользуется услугами DNS для трансляции имени хоста, указанно-го в адресе протокола TCP/IP, в 1Р,-адрес.

1 1 • ' L . • ' " ' ; , V

Системная глобальная область (System Global Area, SGA)Группа разделяемых структур памяти, в которых содержатся данные иуправляющая информация экземпляра'Oracle.

Системный идентификатор Oracle (System identifier, SID)Имя, идентифицирующее запущенный экземпляр базы данных Oracle вверсиях до 8.1. Для каждой базы данных существует как минимум один эк-земпляр, ссылающийся на эту базу данных.

SID включается в дескриптор соединения, указанный в файлеtnsnames.ora, и в определение прослушивающего процесса, содержащее-ся в файле listener.ora.

Page 478: Oracle 8i Networking 101

460 Глоссарий

Служба каталога Novell (Novell Directory Service, NDS)Распределенная вычислительная инфраструктура для хранения ин-формации о сетевых ресурсах. NDS обеспечивает простой доступ к сетинезависимо от физического местонахождения пользователя или запра-шиваемых ресурсов.

Использование NDS позволяет упростить администрирование сети,поскольку любые сетевые ресурсы могут быть представлены как объектысетевой файловой системы.

.Служба неоднородности (heterogeneous services)Интегрированный компонент, реализующий универсальную технологиюдоступа к системам, отличным от Oracle, с сервера Oracle. Служба неод-нородности позволяет:

• Использовать Oracle SQL для прозрачного доступа к данным, храни-мым в системах, отличных от Oracle (то есть точно так же, как еслибы эти данные находились на сервере Oracle).

• Использовать вызовы процедур Oracle для прозрачного доступак системам, службам или интерфейсам прикладного программиро-вания (API), не относящимся к Oracle, из распределенной средыOracle.

.Собственная аутентификация Windows NTМетод аутентификации, обеспечивающий клиенту доступ к серверуWindows NT и базе данных Oracle, запущенной на этом сервере, посредст-вом единого входа.

Соединение (connection)Взаимодействие между двумя процессами в сети. Соединения порождают-ся инициатором (клиентом), который запрашивает соединение с точкойназначения (сервером).

•Сообщение об ошибке (error message)Сообщение от компьютерной программы, информирующее о потенциа-льной проблеме или обстоятельствах, препятствующих выполнениюпрограммы или отдельной команды.

Сотовая служба каталога (Cell Directory Service, CDS)Метод внешнего именования, обеспечивающий прозрачное использова-ние инструментов и приложений Oracle для доступа к базам данныхOracleSi в среде распределенных вычислений (Distributed ComputingEnvironment, DCE).

Список управления доступом (Access Control List, ACL)Группа директив доступа, устанавливающих уровни доступа к определен-ным данным для определенных клиентов и/или групп клиентов.

Стек ПРОТОКОЛОВ (protocol stack)Комбинация конкретных реализаций уровня представления данных и се-ансового уровня.

Page 479: Oracle 8i Networking 101

Глоссарий 461

Строка соединения (connect string)Информация (имя пользователя, пароль и имя сетевой службы), переда-ваемая пользователем службе, с которой предстоит установить соедине-ние. Например:

CONNECT имя_пользователя/пароль@имя_сетевой_служб*'

Схема Oracle (применительно к LDAP)Набор правил, определяющих состав информации, хранимой на серверекаталога. Oracle имеет свою собственную схему, которая применяетсяко многим типам записей Oracle, включая записи Net8. В состав схемыOracle для записей Net8 входят атрибуты, которые могут содержатьзаписи.

Тиражирование служб (service replication)Копирование всех данных каталога с одного сервера на другой. Благода-ря этому службы требуется регистрировать только на одном сервереимен. В процессе тиражирования новые данные будут автоматически рас-пространены по всем активным серверам имен.

"Тонкий" драйвер JDBC (thin JDBC driver)Драйвер Oracle типа 4, предназначенный для разработчиков Java-аппле-тов и Java-приложений. Драйвер JDBC устанавливает прямое соединениес сервером базы данных Oracle через сокеты Java. Доступ к базе данныхосуществляется при помощи упрощенных реализаций Net8 и ТТС.

Точка назначения (destination)Сервер, являющийся конечной точкой соединения, у которого инициа-тор соединения запрашивает данные или услуги.

'Транспортный уровень (transport layer)Обеспечивает надежную доставку данных, реализуя управление переда-чей и контроль ошибок. В Net8 функции транспортного уровня выполня-ют протоколы Oracle.

Трассировка (tracing)Запись подробной информации о выполняемой операции в файл. Ре-зультатом работы средства трассировки является последовательность со-общений, описывающих отдельные этапы выполняемой операции.Администраторы используют трассировку для определения причиношибок; в нормальной ситуации она обычно не включается.

См. также протоколирование.

1

Узел (node)Компьютер или терминал, являющийся частью сети.

Page 480: Oracle 8i Networking 101

462 Глоссарий

Универсальный межброкерный протокол(General Inter-ORB Protocol, GIOP)Протокол уровня представления данных, используемый для обмена сооб-щениями в Java-соединениях.

Управление доступом на уровне Nets (Nets access control)Запрещение или разрешение доступа определенных клиентов к опреде-ленным серверам в соответствии с заданными правилами. Реализуетсяменеджером соединений Oracle. Называется также "поддержкойбрандмауэра".

Уровень представления данных (presentation layer)Управляет представлением информации, которой обмениваются компо-ненты прикладного уровня. Примерами реализаций сеансового уровняявляются Two-Task Common (TTC) и универсальный межброкерныйпротокол (GIOP).

Усовершенствованные средства безопасности Oracle(Oracle Advanced Security)Продукт, предоставляющий обширный набор средств для защиты сетейпредприятий и безопасного соединения с Интернетом, в том числе шиф-рование, контроль целостности данных, аутентификацию и единый вход.Интеграция промышленных стандартов позволяет достичь беспрецеден-тного уровня безопасности.

. • '• !

Утилита Oracle Connection Manager Control (cmcti)Утилита в составе Net8, предназначенная для управления менеджером со-единений Oracle, в частности, для его запуска, останова, а также получе-ния информации о состоянии.

Утилита Oracle Names Control (namescti)Утилита в составе службы Oracle Names, предназначенная для управле-ния серверами имен Oracle, в частности, для их запуска, останова, а так-же получения информации о состоянии.

Файл параметров инициализации (initialization parameter file)Файл с информацией, используемой для инициализации базы данных иэкземпляров.

Файлы конфигурации (configuration files)Файлы, которые используются для идентификации и описания компо-нентов сети. Значительную часть процесса конфигурирования составля-ет определение имен сетевых компонентов и связей между этимикомпонентами.

Page 481: Oracle 8i Networking 101

Глоссарий 463

Фиксированный сервер имен Oracle(well-known Oracle Names server)Сервер имен Oracle, адрес которого жестко закодирован на сервере именOracle и у клиентов службы Oracle Names. Чтобы узнать местонахожде-ние этого сервера имен, клиентам не нужно обращаться к файламконфигурации.

Централизованное администрирование (central administration)Метод администрирования сети Oracle Names, при котором вся сеть вхо-дит в один административный регион. При централизованном админист-рировании все серверы имен Oracle имеют информацию друг о друге иобо всех службах сети. Ср. делегированное администрирование.

Частная связь базы данных (private database link)Связь базы данных, созданная пользователем исключительно для личнс?-го пользования.

См. также связь базы даннвгх, глобальная связь базы данных, общаясвязь базы данных.

Экземпляр (instance)Экземпляр функционирующего программного обеспечения Oracle, вы-полняющего обращения к базе данных. При запуске базы данных (незави-симо от того, какой компьютер используется в качестве сервера) Oracleвыделяет в памяти область, называемую системной глобальной областью(System Global Area, SGA), и запускает один или несколько процессовOracle. SGA в совокупности с процессами Oracle и называется экземпля-ром. Экземпляр управляет данными и обслуживает пользователей. В ре-жиме параллельного сервера доступ к базе данных возможен через любойэкземпляр.

Page 482: Oracle 8i Networking 101

.

Page 483: Oracle 8i Networking 101

ганизсщиработы в сетиВсе для использования OracleS/ в сети

В книге, одобренной и рекомендованной корпорацией Oracle, рассмотреныосновные принципы построения сетей, взаимодействие компонентовсетевой архитектуры Oracle, описано аппаратное и программноеобеспечение, необходимое для успешного соединения компьютеровс базами данных. Пошаговые инструкции по конфигурированию сетиOracle иллюстрируются снимками экранов. Приведены общие сведенияо протоколах Интернета и шифровании.Эта книга научит:

Определять аппаратные и программные компонентыдля организации сети Oracle

Конфигурировать клиенты и серверы Oracleдля взаимодействия через Net8

Конфигурировать серверы имен Oracle

Работать с инструментами конфигурирования, включаяNet8 Assistant, Net8 Configuration Assistant и Connection Manager

Обеспечивать поддержку больших сетей при помощимногопоточности и балансировки нагрузки

Использовать Oracle WebDB, Internet Application Server (iAS)и сервер Internet Directory

Обеспечивать безопасность и диагностировать сетевые ошибки

Издательство "Лори"www.lory-press.ru

Oracle PressEDITION