Что может быть не так: ping работает нормально, но tnsping работает с перебоями
У нас есть Oracle 10g, работающий на Windows Server 2003. На компьютере, на котором запущено приложение, использующее эту базу данных, несколько недель назад внезапно начались проблемы с подключением. Сегодня мы запустили автоматические обновления для Windows Server, и проблема только усугубилась. Я понимаю, что этой информации недостаточно для диагностики проблемы, но, возможно, вы можете указать мне правильное направление со следующим более конкретным сценарием:
С этой машины мы можем без проблем пропинговать сервер, и, находясь физически близко и в интранете, вы получаете очень быстрый возврат.
Однако, когда мы запускаем tnsping, я видел 3 разных результата в течение нескольких минут друг от друга.
- Tnsping возвращается очень хорошо и в разумные сроки
- tnsping возвращается, но только через очень долгое время (несколько секунд)
- tnsping приводит к ошибке адаптера протокола ora-12560
В то же время я могу без проблем запустить сервер со своей машины.
Может кто-то указать мне верное направление?
6 ответов
Я бы попробовал проверить следующее:
- сделать трассировку с сервера приложений и с вашего компьютера, чтобы проверить, нет ли чего-то ненормального
- проверьте tnsping с другой машины и попытайтесь определить шаблон
- попробуйте сниффер tcp/ip, чтобы увидеть, что происходит на обоих концах соединения
- привлечь поддержку оракула
Перед вызовом Oracle я бы создал файл трассировки для случая Fail.
TNSPING.TRACE_LEVEL
Цель
Используйте параметр TNSPING.TRACE_LEVEL, чтобы включить или отключить трассировку утилиты TNSPING.
По умолчанию
от
Значения * off: без вывода трассировки * user: для информации трассировки пользователя * admin: для информации трассировки администрирования * support: для информации трассировки службы поддержки Oracle
пример
TNSPING.TRACE_LEVEL= админ
Прежде чем привлекать оракула к этой проблеме, обратитесь за помощью к администратору сети для следующего теста. Сначала включите подробное ведение журнала в базе данных в слушателе. Включите вход в систему клиента через sqlnet. Перейдите к машине, которая имеет проблемы с tnsping, попросите администратора сети запустить сетевой инструмент для отслеживания tcp-пакетов оттуда. Выполните tnsping и посмотрите, какой пакет отправляется, какой поиск DNS выполняется, какой маршрут идет. В базе данных посмотрите, действительно ли слушатель получает пинг от клиента. Если нет, то посмотрите, где по сети к базе данных проблема. Это разрешение сервера имен? Это плохой сетевой кабель, плохой порт коммутатора и т. Д. Ваш сетевой администратор - ваш лучший друг для решения этой проблемы. Сделайте тот же тест через sqlplus с простым подключением и посмотрите, что клиент регистрирует.
Чтобы устранить проблемы DNS из уравнения, укажите IP-адрес хоста в файле TNSNAMES.ora для вашего соединения вместо имени хоста. Вы используете DHCP?
Вы устранили проблему с оборудованием - пробовали ли вы другой сетевой адаптер?
Убедитесь, что в сети нет другого компьютера с таким же IP-адресом. Один из методов - отключить компьютер от сети и посмотреть, можно ли по-прежнему пропинговать его. Если вы можете, то это проблема.
Если на сервере нет настройки доменного имени на DNS-сервере, добавьте его IP-адрес и имя в файл хоста на сервере; это (сервер не может найти себя в DNS), как известно, вызывает тайм-ауты tns.