Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/09/2007, 11h25   #1
Futur Membre du Club
 
Inscription : avril 2003
Messages : 55
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 55
Points : 18
Points : 18
Par défaut Paramétrage et souci "out of process memory"

Bonjour à tous,

Nous installons en ce moment une base Oracle 9i, alimentée par des procédures PL-SQL qui tapent via DB Links dans un datawarehouse.

Ces procédures tournent depuis quelques années avec succès sur une base Oracle équivalente, mais une base Oracle 8i.

Ces bases Oracle se trouvent sur des serveurs Unix.

Or, sur la 9i, quand je lance manuellement, via Toad, la procédure se plante avec l'erreur suivante :
ORA-04030: out of process memory when trying to allocate 408 bytes (callheap,qerrmbv[]: qerrmObnd)

Mon DBA, en retouchant les paramètres pga_aggregate_target et _pga_max_size, a réussi à faire tourner les procédures.


Et c'est là que pige plus rien : quand moi je la lance via Toad, ça ne marche toujours pas
Lui se connecte sur Unix avec le user oracle et moi avec mon user perso, mais on se connecte à l'instance Oracle 9i avec le même user.

Mon user perso Unix a pourtant, comme le user oracle, des droits unlimited d'allocation mémoire.

Donc là on est un peu sec


Pensez-vous que ça peut être lié à mon contexte Windows (de là où je lance via Toad) ? Moi je trouverais ça bizarre pcq au fond ce n'est qu'une interface et tout tourne sur Unix, et en plus je ne sais pas ce qu'il faudrait faire...

Et sinon, voyez-vous d'autres paramètres que l'allocation mémoire sur Unix ou le PGA sur Oracle qui pourraient être impliqués ?


Je ne suis pas grand spécialiste, j'espère quand même avoir réussi à me faire comprendre

Merci d'avance pour votre aide
sebduth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 11h32   #2
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Citation:
ORA-04030: out of process memory when trying to allocate string bytes (string,string)
Cause: Operating system process private memory has been exhausted
Action: none
Il n'y a pas assez de mémoire sur le serveur et ça peut changer très vite suivant les besoins d'Oracle car le paramètre PGA_AGGREGATE_TARGET n'est pas un limite "dure".
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 12h13   #3
Rédacteur
 
Inscription : décembre 2002
Messages : 2 397
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 397
Points : 3 298
Points : 3 298
Citation:
Envoyé par sebduth Voir le message
Mon user perso Unix a pourtant, comme le user oracle, des droits unlimited d'allocation mémoire.
Vous parlez de ulimit ici ? Pouvez-vous nous en montrer le résultat ?
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 13h20   #4
Futur Membre du Club
 
Inscription : avril 2003
Messages : 55
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 55
Points : 18
Points : 18
Citation:
Envoyé par Pomalaix Voir le message
Vous parlez de ulimit ici ? Pouvez-vous nous en montrer le résultat ?

>ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) unlimited
memory(kbytes) unlimited
coredump(blocks) 4194302
nofiles(descriptors) unlimited
sebduth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 13h22   #5
Futur Membre du Club
 
Inscription : avril 2003
Messages : 55
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 55
Points : 18
Points : 18
Citation:
Envoyé par pifor Voir le message
Il n'y a pas assez de mémoire sur le serveur et ça peut changer très vite suivant les besoins d'Oracle car le paramètre PGA_AGGREGATE_TARGET n'est pas un limite "dure".


Tu veux dire par là qu'en dépit du PGA_AGGREGATE_TARGET, le traitement pompe plus de mémoire (c'est ce que j'ai compris dans le lien transmis) ?

Ok, mais ce qui m'interpelle, c'est surtout que le DBA, lui, a réussi à la faire fonctionner, et moi pas.
sebduth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 14h18   #6
Futur Membre du Club
 
Inscription : avril 2003
Messages : 55
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 55
Points : 18
Points : 18
Suite de mes investigations...

Comme le DBA et le responsable Unix soupçonnaient mon usage de Toad, je me suis connecté directement sur le serveur Unix, et j'ai lancé ma procédure PL-SQL via SQL*Plus.

J'obtiens la même erreur, si bien que l'étau se resserre autour du compte Unix.

Mais comme j'ai une allocation mémoire unlimited, je ne vois pas d'où ça peut venir
sebduth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2007, 14h57   #7
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Citation:
Tu veux dire par là qu'en dépit du PGA_AGGREGATE_TARGET, le traitement pompe plus de mémoire (c'est ce que j'ai compris dans le lien transmis) ?
Oui, par exemple si le code PL/SQL utilise beaucoup de collections.

Je ne suis pas sûr que c'est le compte Unix qui est en cause car dans tous les cas le processus Unix qui exécute la requête côté serveur est un processus exécuté par le compte Unix "oracle" qu'il s'agisse d'un serveur dédié ou d'un serveur partagé.

Est-ce que vous vous connectez à la base par Oracle Net en local (@<instance>; si oui que contient tnsnames.ora et listener.ora ?) ou en positionnant seulement ORACLE_SID ?

Que donne:
Code :
1
2
SHOW sga;
SELECT * FROM v$pgastat;
Le serveur est-il dédié à une instance Oracle, à plusieurs instances Oracle et/ou à d'autres serveurs (web, etc.) ?
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 13h56   #8
Futur Membre du Club
 
Inscription : avril 2003
Messages : 55
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 55
Points : 18
Points : 18
Bonjour,

Nous avons réussi à résoudre notre problème.

En fait, en mettant la mémoire à unlimited sur le compte application Unix, ça a fonctionné en local.

Pour le problème via Toad (donc pas en local), ça a été corrigé, mais je ne sais pas comment. Si j'en sais plus, j'en ferai part pour ceux qui auraient le même souci.

Merci beaucoup.
sebduth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2007, 17h00   #9
Invité de passage
 
Inscription : octobre 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 1
Points : 1
Points : 1
Bonjour,

Apparement on a le même problème, est-ce que vous savez comment vous avez resolu le problème ? moi aussi j'ai l'erreur ORA-04030 en se connectant avec le TNS et pas d'erreur en local.

oracle 9i / UNIX / ulimit unlimited
Merci de votre aide
intik92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h58.


 
 
 
 
Partenaires

Hébergement Web