DeepEdit!

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

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Методы трансляции имен

Фактически существует пять различных подходов к разрешению дескрипторов соединений: локальное именование (local naming), именование по каталогу (directory naming), сервер имен Oracle (Oracle Names server), именование по хосту (host naming) и внешнее именование (external naming). В этой главе нам предстоит изучить сервер имен Oracle, а в главе 5 будет подробно рассмотрено именование по каталогу. Тем не менее для полноты картины будут кратко описаны все возможные варианты с указанием их достоинств и возможных недостатков.
Вероятно, самым распространенным методом трансляции имен является локальное именование, поскольку оно относительно просто реализуется и может использоваться для разрешения имен сетевых служб в сетях с различными протоколами. Потенциальная проблема, о которой подробнее рассказано в следующем разделе, состоит в том, что при каждом изменении среды требуется модификация всех локальных конфигураций. Локальное именование лучше всего подходит для простых распределенных систем, в которых изменения служб происходят нечасто.
При использовании метода именования по каталогу имена служб вместе с информацией о соединениях хранятся в централизованном каталоге. Конфигурирование легко выполняется с помощью поставляемых с базой данных инструментов. Все изменения выполняются только в одном месте. Этот метод лучше всего работает в больших, сложных сетях с более чем 20 базами данных, в которых регулярно происходят изменения. Недостатком является то, что для разрешения имен необходимо обращаться к серверу каталога. В главе 5 вы увидите, почему это может стать потенциальной проблемой.
Сервер имен Oracle также обеспечивает централизованный подход к хранению сетевых имен и адресов. Любые изменения на серверах баз данных регистрируются только один раз и в одном месте — на сервере имен Oracle, после чего быстро становятся известны всем пользователям, число которых может достигать сотен и тысяч. Как и именование по каталогу, этот метод лучше всего работает в сложных сетях с не менее чем двумя десятками баз данных, в которых регулярно происходят изменения. К недостаткам сервера имен Oracle относится то, что он поддерживает только службы Oracle, а для его настройки и администрирования требуется прикладывать дополнительные усилия.
При именовании по хосту разрешение имен выполняется с помощью механизма трансляции IP-адресов, в роли которого может выступать служба доменных имен (Domain Name Services, DNS), сетевая информационная служба (Network Information Services, NIS) или централизованно ведущийся файл со списком хостов TCP/IP. Конфигурирование на стороне клиента сводится к минимуму — для установления соединения пользователю достаточно указать только имя хоста, что устраняет необходимость в файле 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). Затем (в Oracle8i, Release 2) появился сервер каталога (directory server), работающий по протоколу LDAP (Lightweight Directory Access Protocol — упрощенный протокол доступа к каталогу). Как уже говорилось, LDAP будет описан в главе 5, а в этой главе выясним, что представляет собой сервер имен Oracle и как он работает.
 









jAntivirus