[Oracle Linux] SGA et ORA 04031

Fermé
Gabrielle - 9 août 2007 à 10:24
 jhyapi - 16 sept. 2008 à 21:16
Bonjour !
Les DBA sont tous en vacances et j'ai vraiment besoin d'aide.

j'ai une erreur se produisant sur HP-UX 11i avec Oracle 10g (10.2.0.2.0) suite à l'import d'un dump :

ORA-04031: impossible d'affecter 525360 octets de mémoire partagée ("","","","")

Current SQL statement for this session:

CREATE UNIQUE INDEX "PKLS1" ON "LS1" ("GMLIDENT" ) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 8388608 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFA

ULT) TABLESPACE "CDIF_DATA" LOGGING

Le problème se produit uniquement lors de l'import de dump volumineux au moment de la création des indexes spatiaux.
Le buffer pour l'import est de 65535, la SGA pour l'instance de 250M.
La shared_pool_size est positionnée à 0 (Oracle le gérant tout seul)
De là découle des internal error et la base semble corrompue.

SQL> connect as sysdba
Entrez le nom utilisateur : system
Entrez le mot de passe :
Connecté à une instance inactive.
SQL> shutdown immediate
Instance ORACLE arrêtée.
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: impossible d'ouvrir le fichier de param��tres '/oracle/10g/db_1/dbs/initCARTO2.ora'

Lors d'un import d'un dump plus petit le système semble se remettre en place tout seul (?) et l'import se passe bien.
Ce qui m'étonnes le plus lorsque il y a des erreurs de type ORA-4031 c'est que les traces de l'import ne trace aucune erreur ce qui est génant puisque l'import est alors considéré comme valide !

Avez vous une idée de comment résoudre l'erreur oracle ?

Merci beaucoup pour votre aide
Gabrielle

1 réponse

Bonjour,

Vous semblez avoir 2 pbs.
1/ Verifier que le fichier /oracle/10g/db_1/dbs/initCARTO2.ora existe
2/Pour votre message d'erreur, pensez a augmenter la taille du shared_pool
Il faut voir dans le fichier /oracle/10g/db_1/dbs/initCARTO2.ora et modifier la valeur.
La nouvelle valeur sera prise en compte au prochain redemarrage de votre base de donnees.
En attendant, vous pouvez changer la valeur directement dans la base de données. En etant connecte
comme dba
alter system set shared_pool_size=200M;
Je suppose que 200M est plus grand que la valeur que vous aviez avant.

J'espere que ca aide.

JH
0