2009-04-13 7 views
1

Nous avons une base de données Oracle 10 g et nous recevons le message ORA-00018: nombre maximal de sessions dépassé. nous configurons le paramètre comme ci-dessous;Oracle 10g Nombre maximal de sessions expirées

session 600 processus : 600

et son mode un serveur partagé. Nous mettons à jour à Session: 900 et Process: 750. et maintenant Oracle est en cours d'exécution, mais j'ai besoin de savoir si cela nous aide à continuer ou j'ai besoin de faire d'autres changements pour éviter l'erreur "ORA-00018: maximum nombre de sessions dépassé »

Quelqu'un peut-il aider plz Votre réponse est très apprécié

Cordialement Joseph

+0

Bonjour à tous Merci. nous résolvons ce problème. Maintenant, nous supprimons toutes les sessions inactives qui sont inactives pendant plus de 30 minutes inactives. J'espère que cela vous aidera aussi les gars. – Joseph

Répondre

1

Vous pouvez avoir des utilisateurs de prendre des sessions et ne pas les libérer du tout, ou les conserver pendant une longue période . Voir s'il y a des transactions de longue durée lorsque vous obtenez cette exception.

+0

Je n'ai pas pu me connecter quand j'ai eu une erreur .Si je redémarre la base de données, ididnt savait qui est connecté depuis longtemps – Joseph

+0

Lorsque cela se produit à nouveau, avant de redémarrer la base de données, voyez si vous pouvez récupérer les journaux des transactions. Il se peut que quelqu'un se connecte à votre base de données et ne libère pas ces connexions. – Elie

+0

Merci elie ill vérifier ce – Joseph

0

La meilleure façon de le savoir est de se connecter à la base de données et de vider la table de session v $ après 5-10 minutes. De cette façon, vous pouvez savoir que parfois tous les processus/applications maintenaient une connexion à la base de données. Il pourrait s'agir d'un bogue où un processus/daemon/service en cours d'exécution ne libère pas la session du tout. Un script simple si vous pouvez exécuter un travail cron pour vider la table de session $ v, il pourrait devenir visible.

+0

merci shamik. il vérifie ce – Joseph

+0

nous résolvons ce problème. Maintenant, nous supprimons toutes les sessions inactives qui sont inactives pendant plus de 30 minutes inactives. – Joseph

0

Voici comment je l'ai résolu, pour une base de données 12c:

contrôle le nombre de connexions utilisées

Loggin dans votre APB

sqlplus <username>/<pswd>@<hostname>:1521/<ServiceName> 

Vérifiez le nombre de connexions

SELECT 
    'Currently, ' 
    || (SELECT COUNT(*) FROM V$SESSION) 
    || ' out of ' 
    || VP.VALUE 
    || ' connections are used.' AS USAGE_MESSAGE 
FROM 
    V$PARAMETER VP 
WHERE 
    VP.NAME = 'sessions' 

Elle est affichée ys "Actuellement, n connexions m sont utilisées." Ici n> m. Cela devrait être le contraire.

Modifier le nombre maximum de sessions

Loggin comme sys dans votre APB

quit 
sqlplus/as sysdba 
alter session set container = PDB1; 

Modifier le nombre de sessions

alter system set sessions=100 scope=both sid='*'; 

Bounce la base de données

SQL> shutdown immediate 
SQL> startup 

ouvrir toutes les PDB (fermé par le rebondissement)

ALTER PLUGGABLE DATABASE ALL OPEN; 

contrôle à nouveau

sqlplus <username>/<pswd>@<hostname>:1521/<ServiceName> 

Exécutez la requête SQL contrôle

SELECT 
    'Currently, ' 
    || (SELECT COUNT(*) FROM V$SESSION) 
    || ' out of ' 
    || VP.VALUE 
    || ' connections are used.' AS USAGE_MESSAGE 
FROM 
    V$PARAMETER VP 
WHERE 
    VP.NAME = 'sessions' 

Il affiche « Actuellement n connexions hors m sont utilisées. "Maintenant n < m.

Questions connexes