|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() |
Bonjour à tous.
J'ai un gros gros problème : J'utilise Oracle 8i, et mes procédures PL/SQL Web me retournent cette erreur : Code :
ORA-04031: impossible d'affecter 33512 octets de mémoire partagée ("shared pool","HTP","pl/sql source","pl/sql source")
Je sais bien que des sujets similaires à ceci ont déjà été postés sur le forum, j'ai creusé partout, mais aucun des solutions n'a résolu mon problème. J'ai essaié d'augmenter progressivement le shared pool en allant de shared_pool_size = 80M jusqu'à 512M, ainsi que le shared_pool_reserved_size mais j'ai toujours cette erreur. Voici quelques informations qui pourraient vous aider à diagnostiquer mon cas : OS : Windows 2000 CPU : 2.66 Ghz RAM : 3 Go Environ 100 utilisateurs connectés simmultanément. Dans gestionnaire des tâches Windows : Mémoire Virtuelle : 1 742 428 Ko utilisation mémoire : 1 432 944 koShow sga donne : Code :
Merci beaucoup.
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... " |
||
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() |
J'ai passé toute la journée à chercher la solution, là je suis vraiment à court d'idées or ça me bloque totalement.
Personne n'aurait une petite idée de ce que je dois faire? Merci d'avance.
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... " |
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
Vous êtes en 8.1.7.4 ?
Quand l'erreur survient-elle ? pouvez-vous le reproduire ? Quel est le message complet de l'alert.log ? Est-ce qu'une trace est générée ? pouvez-vous l'uploader ? |
|
|
00
|
|
|
#4 | ||
|
Membre habitué
![]() |
Je suis sur 8.1.7.0.0.
Bizarrement il n'y a aucune erreur dans alert.log. Voici le contenu du fichier trace : Code :
l'erreur n'apparaissait plus d'un coup, mais après environ 20 mn elle réapparait. Je prie le ciel que vous pourriez m'aider, merci d'avance.
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... " |
||
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
Quand l'erreur survient-elle ?
pouvez-vous le reproduire ? Avez-vous bien augmenté le paramètre shared_pool puis arrêter/relancer la base ? jusqu'à quelle valeur êtes-vous monté ? quels changement y-a-t-il eu entre le moment où ça marchait et maintenant ? quel type d'activité a la base ? y-a-t-il beaucoup d'utilisateurs ? |
|
|
00
|
|
|
#6 | |||
|
Membre habitué
![]() |
Ma base utilise des procédures PL/SQL Web (GPAO) qui font des select et updates sur des tables de 6 000 000 d'enregistrements.
Citation:
Citation:
Citation:
Le comble c'est que je ne peux pas redémarrer la machine serveur. Pensez vous que cela pourrait être bénéfique de redémarrer la machine?
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... " |
|||
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
shared pool à 80 M, ça me semble effectivement faiblard...
mais ça a déjà marché ou pas ? |
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() |
Ca a toujours marché, c'est ce qui m'intrigue.
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... " |
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
et depuis que ça ne marche plus, aucun autre paramètre n'a été modifié ? aucune modification du code n'a été livrée ?
|
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() |
En fait seulement une procédure me retournait cette erreur auparavant, c'est pourquoi j'ai voulu augmenter la SGA. Maintenant plusieurs procédures sont KO.
Quelle solution me proposez-vous?
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... " |
|
|
00
|
|
|
#11 |
|
Membre habitué
![]() |
Je n'ai plus rien modifié depuis que cela ne marche plus.
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... " |
|
|
00
|
|
|
#12 | ||||
|
Membre habitué
![]() |
J'ai essayé ce script que j'ai trouvé sur developpez.com (http://www.developpez.net/forums/sho...ight=ora-04031
Code :
Code :
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... " |
||||
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : novembre 2007 Messages : 2 ![]() |
voila ce que ja'i trouvé :
04031, 00000, "unable to allocate %s bytes of shared memory (\"%s\",\"%s\",\"%s\",\"%s\")" // *Cause: More shared memory is needed than was allocated in the shared // pool. // *Action: If the shared pool is out of memory, either use the // dbms_shared_pool package to pin large packages, // reduce your use of shared memory, or increase the amount of // available shared memory by increasing the value of the // INIT.ORA parameters "shared_pool_reserved_size" and // "shared_pool_size". // If the large pool is out of memory, increase the INIT.ORA // parameter "large_pool_size". J'ai des commandes mes je ne suis aps sur qu'elles passent en Oracle 8 : SQL>SELECT * FROM V$SGASTAT WHERE NAME = 'free memory' AND POOL = 'shared pool'; On peut ainsi calculer le Hit Ration du Library Cache (nombre de requêtes qui n'ont pas besoin d'être reparssées, car déjà présente en Library Cache) : SQL>select sum(pinhits) / sum(pins) from v$librarycache ; |
|
|
00
|
|
|
#14 |
|
Membre habitué
![]() |
J'ai déjà essaié tout ça mais çà n'a pas marché.
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... " |
|
|
00
|
|
|
#15 |
![]() Inscription : décembre 2002 Messages : 2 397 ![]() |
L'erreur ORA-04031 peut avoir diverses causes, y compris des bogues.
Le plus efficace pour vous sera de vous référer à Metalink. Vous y trouverez différentes notes dédiées à cette erreur, par exemple 396940.1.
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
00
|
|
|
#16 | |||
![]() Inscription : janvier 2005 Messages : 1 778 ![]() |
Citation:
c 'est quoi la valeur de : DB_BLOCK_BUFFERS et DB_BLOCK_SIZE ?
__________________
Questionnaires : Testez vos connaissances Mes articles : Les Fichiers Redo / SCN : System Change Number / Fichier de Contrôle : Administration |
|||
|
|
00
|
|
|
#17 | |
![]() Inscription : décembre 2002 Messages : 2 397 ![]() |
Citation:
Mais on ne peut pas en faire la cause directe de l'erreur ORA-04031. Tout au plus, c'est de l'espace perdu qu'il serait peut-être utile d'ajouter à SHARED_POOL_SIZE. Néanmoins, pour ne pas tâtonner de manière désordonnée, je réitère mon conseil : metalink !
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
|
00
|
|
|
#18 | ||
|
Membre habitué
![]() |
Bonjour.
Tout d'abord j'aimerais vous remercier pour toutes vos réponses. Citation:
et DB_BLOCK_SIZE est de 8192 Citation:
Est-ce que vous pourriez m'expliquer pourquoi un LOG_BUFFER de plus de 160 Mo est-il abérrant? Je devrais donc diminuer sa valeur à combien? Je vais m'inscrire à Metalink mais en attendant je dois résoudre ce problème c'est urgent, je dois trouver une solution provisoire. Je me souviens aussi avoir déjà lu sur un site que pousser le shared pool à une valeur trop grande pourrait engendrer sa fragmentation. Pourriez-vous confirmer ceci? Et si oui existe-t-il un moyen de défragmenter le shared pool? Merci d'avance.
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... " |
||
|
|
00
|
|
|
#19 |
|
Membre habitué
![]() |
Excusez moi de vouloir insister mais il y a vraiment quelque chose qui m'échappe :
Voilà j'ai dupliqué la base toute entière sur un base de test qui a exactement les mêmes paramétrages et caractéristiques que le serveur de prod. J'ai donc fait en sorte de diminuer le Database Buffer Cache à 819,2 Mo, le Log Buffer à 128 Mo, et j'ai augmenté le Shared Pool Size à 768 Mo. Ensuite je redémarre la base, et après je fais un Flush Shared Pool. Logiquement il devrait y avoir beaucoup de mémoires libres dans la Shared Pool à cet instant. Je lance alors la procédure stockée et là on me renvoie encore l'erreur : Code :
impossible d'affecter 33512 octets de mémoire partagée ("shared pool","HTP","pl/sql source","pl/sql source")
__________________
" ... On naît, on vit, on meurt, mais exister est un honneur ... " |
|
|
00
|
|
|
#20 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
Comportement qui semble incompréhensible => bug ? => METALINK comme vous le signalais Pomalaix !
Essayez d'upgrader la base de test en 8.1.7.4 pour voir (toujours intérêt à être en terminal release) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com