2010-03-02 2 views
5

Récemment, nous avons migré notre base de données de production Oracle 9.2.0.6 de Windows 32 bits RAC (2 nœuds) à l'environnement Linux 64 bits. L'environnement Linux 64 bits a 8 fois plus de mémoire que l'environnement Windows 32 bits et Linux 64 bits a un disque plus rapide (RAID 10 comparé au RAID 5 de Windows). Cependant, après cette migration, nous avons remarqué que le temps de connexion à SQL a été considérablement augmenté. Quelque temps, il faut 16 secondes pour ouvrir une connexion. Nous avons utilisé différents pilotes (JDBC, ODBC, OCI) et SQLPlus. Mais, nous n'avons remarqué aucune différence dans le temps de connexion sql. Nous avons étudié le réseau, mais nous n'avons remarqué aucun problème avec le réseau.Temps d'ouverture de la connexion SQL très long

Parfois, il faut environ 16 secondes pour ouvrir une seule connexion. Cette base de données a environ 50000 schéma d'utilisateur.

Quelqu'un peut-il me dire ce qui peut être fait pour réduire le temps d'ouverture de la connexion? Votre aide serait appréciée.

+0

serverfault.com serait un meilleur endroit pour demander, et un meilleur endroit pour trouver une réponse – skaffman

+0

j'ai le même problème, et trouver solutio [http://oracleprof.blogspot.com/2009/08/slow-network- connection-w-11g.html] (http://oracleprof.blogspot.com/2009/08/slow-network-connection-w-11g.html) n dans –

Répondre

2

Il existe de nombreuses raisons possibles à cela, et sans plus d'informations, il est difficile d'en déterminer la cause première.

Cela dit, vérifiez votre fichier sqlnet.ora situé sur la machine de votre connexion à partir (c.-à-<oracle_home> /network/admin/sqlnet.ora) et voir si vous avez une ligne telle que:

SQLNET.AUTHENTICATION_SERVICES= (NTS) 

Si oui, essayez de le changer à:

SQLNET.AUTHENTICATION_SERVICES= (NONE) 

Enregistrer et faites une nouvelle tentative connexion via SQLPlus.

Vérifiez également la valeur que vous avez définie pour NAMES.DIRECTORY_PATH. Assurez-vous que la méthode que vous utilisez pour vous connecter à votre instance est la première de la liste. Par exemple, nous utilisons TNSNAMES et le nôtre lit:

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) 

Espérons que cela aide.

+2

Pour les connexions TCP avec Net * 8, le serveur doit être capable de résoudre les noms d'hôte et les adresses IP. La résolution de nom la plus rapide est une recherche dans le fichier/etc/hosts sur le serveur. (Résolution de noms est influencée par /etc/resolv.conf) – spencer7593

+0

sqlnet.ora a le réglage de SQLNET.AUTHENTICATION_SERVICES = (NONE) NAMES.DIRECTORY_PATH = (TNSNAMES) Nous sommes en mesure de reproduire avec problème différent machine conducteur différent. Nous sommes également capables de reproduire à partir de SQLPLUS. La latence du réseau n'est pas un problème. Cette lenteur arrive au hasard. Cependant, nous avons pu établir une corrélation entre cette lenteur avec CPU spikes.At le temps de connexion lente, des pointes CPU à 100%. Nous avons également remarqué que la valeur R du système croise le nombre de CPU. Ce qui indique le goulot d'étranglement du processeur. – user284534

1

choses qui pourraient indiquer les problèmes:

À partir du client:

  • sont tous les clients présentant le problème?
  • est ping serveur raisonnablement rapide?
  • est tnsping nombase lent?
  • pouvez-vous vous connecter normalement avec telnet?

A partir du serveur:

  • est ping client raisonnablement rapide?
  • est nslookup du client par son nom et IP rapide?
  • est tnsping nombase lent?
  • est sqlplus utilisateur @ nombdd rapide ou lent?
  • est une connexion directe sur le serveur rapide? C'EST À DIRE., Export ORACLE_SID = db; sqlplus user/pw
+0

Oui, tous les types de clients présentent le problème. Ping est très rapide. Tnsping n'est pas lent. Oui, nous pouvons normalement nous connecter en utilisant telnet. Ping au client est également très rapide La lenteur se produit de manière aléatoire. D'une certaine manière, nous avons remarqué qu'environ 30 à 40 connexions sont ouvertes simultanément, alors les pics de CPU de base de données à 100% et les connexions sont ralenties. – user284534

2

si tout à coup le tnsping est devenu très lent (signifie qu'il est un système tout juste avant), mais ping sur le même serveur de base de données est rapide, la raison la plus possible est le fichier listener.log est trop grand:

$ORACLE_HOME/network/log/listener.log

Certains OS (SunOS mon expérience) se réunira par écrit à un très grand problème de performance de fichier texte (dépasser 4G?), donc la queue/nettoyer le fichier journal résoudre immédiatement le tnsping prend très longtemps problème.

2

Il était DNS dans notre cas. Après notre admin a commenté toutes les entrées DNS du côté du serveur du système a commencé à répondre sans délai.

2

J'ai aussi des établissements de connexion très lente avec SQL Developer 4.1.5.21 sur Mac OS contre Oracle 12.1.0.2.0.

Pour analyser cela, j'ai installé Oracle Instant Client pour vérifier la connectivité directement avec sqlplus. Quand j'ai essayé de se connecter avec sqlplus il m'a donné l'erreur suivante:

$ 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 

J'ai ensuite trouvé entrée de blog Oracle ORA-21561 : OID generation failed et a ajouté le nom d'hôte (tel qu'il est retourné par la commande hostname) au 127.0.0.1 -ligne dans /etc/hosts:

127.0.0.1 localhost MacBook-Pro.local 

Ce corrigé l'erreur ORA-21561 en sqlplus ainsi que la mise en place de connexion lente dans SQL Developer.

Questions connexes