Что может быть не так: ping работает нормально, но tnsping работает с перебоями - PullRequest
1 голос
/ 20 февраля 2009

У нас есть Oracle 10g, работающий на Windows Server 2003. На компьютере, на котором запущено приложение, использующее эту базу данных, несколько недель назад внезапно начались проблемы с подключением. Сегодня мы запустили автоматические обновления для Windows Server, и проблема только усугубилась. Я понимаю, что этой информации недостаточно для диагностики проблемы, но, возможно, вы можете указать мне правильное направление со следующим более конкретным сценарием:

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

Однако, когда мы запускаем tnsping, я видел 3 разных результата в течение нескольких минут друг от друга.

  1. tnsping возвращается просто отлично и в разумные сроки
  2. tnsping возвращается, но только через очень долгое время (несколько секунд)
  3. tnsping приводит к ошибке адаптера протокола ora-12560

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

Кто-нибудь может указать мне правильное направление?

Ответы [ 6 ]

1 голос
/ 10 марта 2009

Прежде чем привлекать оракула к этой проблеме, обратитесь за помощью к администратору сети для следующего теста. Сначала включите подробное ведение журнала в базе данных в слушателе. Включите вход в систему клиента через sqlnet. Перейдите к машине, которая имеет проблемы с tnsping, попросите администратора сети запустить сетевой инструмент для отслеживания tcp-пакетов оттуда. Выполните tnsping и посмотрите, какой пакет отправляется, какой поиск DNS выполняется, какой маршрут идет. В базе данных посмотрите, действительно ли слушатель получает пинг от клиента. Если нет, то посмотрите, где по сети к базе данных проблема. Это разрешение сервера имен? Это плохой сетевой кабель, плохой порт коммутатора и т. Д. Ваш сетевой администратор - ваш лучший друг для решения этой проблемы. Сделайте тот же тест через sqlplus с простым подключением и посмотрите, что клиент регистрирует.

1 голос
/ 23 февраля 2009

Перед вызовом Oracle я бы создал файл трассировки для случая сбоя.

TNSPING.TRACE_LEVEL

Назначение

Используйте параметр TNSPING.TRACE_LEVEL, чтобы включить трассировку утилиты TNSPING, на определенном уровне или выключить.

По умолчанию

от

Значения * off: для вывода без трассировки * пользователь: для информации о трассировке пользователя * admin: для административной трассировки * поддержка: для трассировки информации службы поддержки Oracle

Пример

TNSPING.TRACE_LEVEL = админ

1 голос
/ 20 февраля 2009

Я бы попробовал проверить следующее:

  • сделать трассировку с сервера приложений и с вашего компьютера, чтобы проверить, нет ли чего-то ненормального
  • проверьте tnsping с другой машины и попытайтесь определить шаблон
  • попробуйте сниффер tcp / ip, чтобы увидеть, что происходит на обоих концах соединения
  • получить поддержку оракула
1 голос
/ 20 февраля 2009

Чтобы устранить проблемы DNS из уравнения, укажите IP-адрес хоста в файле TNSNAMES.ora для вашего соединения вместо имени хоста. Вы используете DHCP?

Устранена ли проблема с оборудованием - пробовали ли вы другой сетевой адаптер?

0 голосов
/ 20 февраля 2009

Если сервер не настроил доменное имя на DNS-сервере, добавьте его IP-адрес и имя в файл хоста на сервере; известно, что это (сервер не может найти себя в DNS) может вызвать тайм-ауты tns.

0 голосов
/ 20 февраля 2009

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

...