Очень длительное время открытия SQL-соединения - PullRequest
5 голосов
/ 02 марта 2010

Недавно мы перенесли нашу производственную базу данных Oracle 9.2.0.6 из 32-битного RAC Windows (2 узла) в 64-битную среду Linux.В 64-разрядной среде Linux объем памяти в 8 раз больше, чем в 32-разрядной среде Windows, а в 64-разрядной среде Linux более быстрый диск (RAID 10 по сравнению с RAID 5 в Windows)

Однако после этой миграции мы заметили, что время соединения sql значительно увеличилось.Некоторое время это займет 16 секунд, чтобы открыть соединение.Мы использовали разные драйверы (JDBC, ODBC, OCI) и SQLPlus.Но мы не заметили никакой разницы во времени соединения sql.Мы исследовали сеть, но не обнаружили никаких проблем с сетью.

Некоторое время для открытия одного соединения требуется около 16 секунд.Эта база данных имеет около 50000 пользовательских схем.

Кто-нибудь может подсказать, что можно сделать, чтобы сократить время открытия соединения?Буду признателен за вашу помощь.

Ответы [ 5 ]

3 голосов
/ 06 февраля 2014

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

2 голосов
/ 16 марта 2017

Я также испытывал очень медленное установление соединения с SQL Developer 4.1.5.21 в Mac OS против Oracle 12.1.0.2.0.

Чтобы проанализировать это, я установил Oracle Instant Client , чтобы проверить связь напрямую с sqlplus. Когда я пытался соединиться с sqlplus, он выдал следующую ошибку:

$ sqlplus <USER>/<PASSWORD>@<HOST>:<PORT>/<SERVICE>
SQL*Plus: Release 12.1.0.2.0 Production on Thu Mar 16 10:50:44 2017

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

ERROR:
ORA-21561: OID generation failed

Затем я нашел запись в блоге Oracle ORA-21561: сбой генерации OID и добавил имя хоста (полученное командой hostname) к строке 127.0.0.1 в /etc/hosts:

127.0.0.1 localhost MacBook-Pro.local

Исправлена ​​ошибка ORA-21561 в sqlplus, а также медленное установление соединения в SQL Developer.

2 голосов
/ 31 декабря 2011

если внезапно tnsping становится очень медленным (значит, раньше все работало нормально), но пинг до того же сервера базы данных быстрый, наиболее вероятная причина - слишком большой файл listener.log :

$ ORACLE_HOME / сети / Журнал / listener.log

Некоторые ОС (по моему опыту SunOS) сталкиваются с записью в очень большую проблему производительности текстового файла (превышающую 4 ГБ?), Поэтому удаление файла из файла журнала / очистка журнала немедленно решит проблему tnsping.

2 голосов
/ 02 марта 2010

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

Сказав это, проверьте файл sqlnet.ora, расположенный на машине, с которой вы подключаетесь (т.е. /network/admin/sqlnet.ora), и посмотрите, есть ли у вас такая строка, как:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

Если это так, попробуйте изменить его на:

SQLNET.AUTHENTICATION_SERVICES= (NONE)

Сохраните и повторите попытку подключения через SQLPlus.

Кроме того, проверьте значение, установленное для NAMES.DIRECTORY_PATH. Убедитесь, что метод, который вы используете для подключения к вашему экземпляру, является первым в списке. Например, мы используем TNSNAMES и читаем:

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

Надеюсь, это поможет.

1 голос
/ 03 марта 2010

Вещи, которые могут указывать на проблемные области:

От клиента:

  • все ли клиенты проявляют проблему?
  • пинг сервер достаточно быстро?
  • tnsping dbname медленно?
  • вы можете нормально подключиться через telnet?

С сервера:

  • пинг клиент достаточно быстро?
  • nslookup клиента по имени и IP быстро?
  • tnsping dbname медленно?
  • Является ли sqlplus user @ dbname быстрым или медленным?
  • быстрое прямое соединение на сервере? Т.е. экспорт ORACLE_SID = дБ; пользователь sqlplus / pw
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...