ORA-04030: out of process memory when trying to allocate N bytes (mémoire de processus épuisée lors de l'allocation de N octets)
OracleQue signifie cette erreur ?
Un processus serveur n'a pas pu allouer d'espace dans sa PGA (Program Global Area), c'est-à-dire sa mémoire de processus privée. Contrairement à la mémoire partagée de la SGA, il s'agit de l'épuisement de la mémoire propre à une seule session/un seul processus.
Cause
Des opérations de tri/hash très volumineuses, des collections PL/SQL surdimensionnées, des variables qui s'accumulent dans des boucles non maîtrisées ou des limites de mémoire de processus du système d'exploitation (ulimit -v/-d, vm.max_map_count, espace d'adressage) ont épuisé la mémoire du processus. Sur les instances 32 bits, la limite d'espace d'adressage peut aussi la déclencher.
Comment la corriger
Identifiez ce qui consomme la mémoire en examinant la catégorie d'allocation sur la deuxième ligne de l'erreur (par ex. 'pga heap', 'koh-kghu sessi'). Revoyez PGA_AGGREGATE_LIMIT / PGA_AGGREGATE_TARGET. Vérifiez les limites du système d'exploitation (ulimit -a ; memlock, as, stack pour l'utilisateur oracle). Optimisez la requête/le PL/SQL et réduisez la taille des lots en traitement de masse. Si nécessaire, contactez Oracle Support avec le fichier de trace.
Autres entrées pour ce moteur
- ORA-38029object statistics are locked (les statistiques de l'objet sont verrouillées)
- ORA-00845MEMORY_TARGET not supported on this system (MEMORY_TARGET non pris en charge sur ce système)
- ORA-27102out of memory
- ORA-12537TNS:connection closed
- ORA-03135connection lost contact
- ORA-01033ORACLE initialization or shutdown in progress (initialisation ou arrêt d'ORACLE en cours)
- ORA-00600internal error code, arguments: [...]