DeepEdit!

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

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

Диагностика ошибок на стороне сервера

Теперь посмотрим, какие проблемы могут возникать на сервере UNIX. В первой части этого раздела вы видели, что сообщение        может выдаваться при неправильной компоновке адаптера протокола с прикладным выполняемым файлом. В этой части мы займемся выявлением компоновочных проблем для прослушивающего процесса и выполняемого файла Oracle. К выдаче этого сообщения могут также приводить неправильно установленные разрешения или переменные среды.
Чтобы определить, правильно ли скомпонован прослушивающий процесс, перейдите в каталог $ORACLE_HOME/'bin и введите команду adapters, рассмотренную выше. На этот раз нужно указать в качестве параметра файл tnslsnr:
adapters tnslsnr
Как вы уже знаете, если в разделе "Protocol Adapters" ничего не указано, то возможно, что на вашей платформе используются разделяемые библиотеки, то есть сетевой код загружается динамически. Выше говорилось, как найти динамическую библиотеку и выполнить дополнительные проверки, поэтому здесь эти шаги не приводятся.
Если ни одна из проверок не дала положительного результата, попробуйте вручную перекомпоновать выполняемый файл Net8 (для этого нужно иметь соответствующие привилегии операционной системы).
Перейдите в каталог $ORACLE_HOME/network/lib и введите следующие
команды:
make -f ins network.mk install
Кстати, в Oracle версии 8.1.5 и выше достаточно ввести просто relink network.
После успешной компоновки сетевого выполняемого файла с адаптером протокола соединение должно заработать.
Чтобы проверить компоновку выполняемого файла Oracle, перейдите в каталог $ORACLE_HOME/bin и введите команду adapters с аргументом "oracle" вместо "tnslsnr". Далее действуйте так, как описано выше. Если вы к выводу, что нужна перекомпоновка, то выполните из каталога следующие
make -f ins rdbms.mk install
В Oracle8i достаточно ввести relink oracle.
Если проблемы остались, то проверьте разрешения для выполняемых файлов tnslsnr и Oracle. Для этого нужно перейти в каталог $ORACLE_ НОМЕ/bin и ввести
tnslsnr
Вы должны увидеть следующее: Q   -rwsr-xr-x oracle dba
Если вы введете
oracle
то результат должен быть точно таким же. Если разрешения отличаются от показанных, то их можно изменить следующими командами:
chmod 4755 tnslsnr chmod 4755 oracle
Команда chmod изменяет режим защиты указанного файла. Числа показывают, какой объем привилегий будет предоставлен. Каждое из чисел соответствует определенной группе привилегий. Разрешения UNIX указываются в следующем порядке: User (пользовательские), Group (групповые) и Other (прочие). Буква "г" обозначает разрешение на чтение, которому соответствует число 4. Буква "w" обозначает разрешение на запись, ему соответствует число 2. Буква V обозначает разрешение на выполнение, ему соответствует число 1.
Числа могут складываться. Например, число 6 показывает наличие разрешений на чтение и запись (4 + 2). Когда в команде chmod указаны четыре числа (см. табл. 14.5), крайнее левое имеет специальное значение.
Если владелец файла или выполняемого модуля — не учетная запись oracle, вы можете изменить владельца, использовав следующие команды:
oracle tnslsnr
chown oracle oracle

Внимание
Некоторые операционные системы UNIX позволяют выполнять команду смены владельца (chown) только при наличии корневых привилегий.

После изменения привилегий или владельца необходимо перезапустить прослушивающий процесс или экземпляр базы данных, чтобы изменения вступили в силу. Как и раньше, вам следует проверить правильность установки переменных среды ORACLE_HOME, ORACLE_ SID и LD LIBRARY PATH.
Диагностика нерегулярных        Если вы получаете сообщения об ошибках ORA-12500 нерегулярно, то вероятно, что серверу не хватает ресурсов. Учтите, что поиск исчерпанного ресурса может оказаться непростой задачей. В таблице 14.6 перечислены причины, по которым могут быть исчерпаны те или иные ресурсы, и возможные действия, которые помогут смягчить проблему.
 









jAntivirus