Ieri mattina, arrivo in ufficio e scopro che uno dei database oracle di produzione è giù! Vado nell’alert a vedere se c’è qualche errore e incappo in un
ORA-04030: memoria di processo esaurita nel tentativo di allocare 1483316 byte
La macchina virtuale ha 2.5 Gb di memoria virtuale e ha Windows 2003 Server 32 bit ; il task manager indica che l’occupazione in ram è di soli 2.1 Gb, e poi anche se superasse i 2.5Gb avrebbe ancora tutto lo swap.
Per farla breve, su windows Oracle non crea più processi come fa su uno Unix bensì fa tutto capo al processo oracle.exe che poi al suo interno avrà svariati thread; di conseguenza tutta la memoria allocata fa capo ad un solo processo che , su Windows 2003 server 32 bit , non può superare i 2 Gb di RAM allocata !!! A questo punto sono stato costretto ad abbassare la SGA_MAX_SIZE affinchè la somma di SGA e PGA non superassero i 2Gb.
Quindi, se già sapete di dover creare un database oracle che avrà bisogno di parecchia ram (più di 2 Gb), secondo me, le soluzioni possibili sono :
- Passare alla versione 64 bit di Windows 2003 Server (ecco le migliorie)
- Usare un sistema operativo Unix/Linux (scelta da me consigliata)
- Se si è obbligati ad usare Windows a 32 bit ma il database può essere diviso,allora si possono creare due istanze sulla stessa macchina così i processi oracle diventano 2 e ognuno di loro potrà allocare 2 Gb.
allora, te lo dico io perche’ la gente non va su linux… perche’ oracle su linux va solo (a quanto ricordo) con suse enterprise e con redhat enterprise server.
Entrambi i prodotti si pagano un botto e rispetto a tirar fuori dal cappello una nuova licenza microsoft costano di piu’. Un’azienda guarda il suo comodo e quindi indovina che fa …
*SPETTA A NOI SISTEMISTI ESSERE PREVENTIVAMENTE CONSULTATI E ESPORRE LE NOSTRE OPINIONI IN MODO ADEGUATO E SENZA PREFERENZE DOPO AVER OPPORTUNAMENTE CONSULTATO LE RELATIVE PAGINE DI DATASHEET DEI PRODOTTI*
di questo putroppo ai manager del giorno d’oggi non gliene frega una cippa!
Commento di yoshimitzu — Novembre 17, 2007 @ 8:29 pm