![]() |
|||||||||||||||||||||||||||||||||||||||||||||||
|
Spfile (18/12/2002) Comme nous le savons déjà, dans les versions antérieures à la 9i, une bonne partie des paramètres du noyau Oracle étaient non modifiables sans les répertorier dans init.ora ET redémarrer l’instance. D’autres paramètres modifiés avec alter system ou alter session reprenaient leurs valeurs spécifiées dans init.ora lors du redémarrage de celle-ci, rendant obligatoire la modification manuelle dans le fichier d’initialisation.
Le fichier spfile est un fichier binaire, version à peine lisible de init.ora, créé avec la commande create spfile.
Lors du demarrage d’une instance, Oracle vérifie l’existence d’un fichier spfileSID.ora. Si spfileSID.ora est introuvable, il cherche un fichier spfile.ora (un fichier d’initialisation global). Si spfile.ora est introuvable, il cherche le init.ora traditionnel.
Si l’option pfile= est employée lors du démarrage, uniquement un fichier ASCII peut être utilisé (spfile.ora ne peut pas être invoqué de cette manière). ib9> create spfile='m:\admin\lib9\pfile\spfileLIB9.ora' 2 from pfile='m:\admin\lib9\pfile\init.ora'; File created. Une brève visualisation (en hexadécimal) du fichier créé nous montre que Oracle enlève les commentaires (sauf ceux qui suivent le dièse sur la même ligne que le paramètre).
Sans nom pour la cible, Oracle va créer le fichier spfilesid dans %ORACLE_HOME%\database (WIN2K, NT) ou dans $ORACLE_HOME/dbs (UNIX)
ib9> create spfile from pfile='m:\admin\lib9\pfile\init.ora'; Sans nom ni pour la cible, ni pour le fichier init.ora, Oracle va créer le fichier spfilesid dans %ORACLE_HOME%\database (WIN2K, NT) ou dans $ORACLE_HOME/dbs (UNIX) si init.ora est présent dans %ORACLE_HOME%\database (ou $ORACLE_HOME/dbs) :
ib9> create spfile from pfile; create spfile from pfile * ERROR at line 1: ORA-01078: Úchec de traitement de paramÞtres systÞme LRM-00109: could not open parameter file 'M:\ORAHOME90\DATABASE\INITLIB9.ORA' A chaque création du fichier spfile, l’ancien est écrasé Vous ne pouvez pas recréer le spfile si l’instance est démarrée avec ce fichier comme paramètre. Pour permettre de gérer l’étendue des modifications dans alter system, Oracle a enrichi cette commande de quelques notions supplémentaires :
Alter system set instruction SCOPE=SPFILE
Le paramètre ainsi modifié sera répertorié dans spfile, mais ne prendra effet que lors du démarrage suivant de l’instance.
Alter system set instruction SCOPE=MEMORY
Le paramètre ainsi modifié ne sera pas répertorié dans spfile et entrera immédiatement en vigueur pour l’instance en cours.
Alter system set instruction SCOPE=BOTH
Le paramètre ainsi modifié sera répertorié dans spfile et entrera immédiatement en vigueur pour l’instance en cours.
Dans le cas de Real Application Clusters (RAC), l’instance cible ou les modifications seront effectuées peut être indiquée.
Oracle permet également de traduire le fichier spfile dans un fichier texte (pfile) :
ib9> create pfile='m:\admin\lib9\pfile\initbis.ora' 2 from spfile='m:\admin\lib9\pfile\spfileLIB9.ora'; File created. Le fichier init.ora peut rediriger vers un fichier spfile, cette possibilité est surtout intéressante en environnement Windows:
SPFILE=m:\oracle90\. . . Sous Windows, vous pouvez créer le service (avec oradim) sans spécifier le paramètre pfile=.
Oracle permet de mettre à jour dans l’instance en cours des paramètres mutuellement exclusifs. L’existence de ces paramètres sera révélée uniquement lors du démarrage suivant. Ne détruises pas immédiatement le fichier init.ora Si jamais le fichier spfile ne permet pas le démarrage de l’instance à cause des inadvertances rencontrées, vous avez une chance en faisant une extraction de la partie lisible de spfile et créer un fichier init.ora temporaire utilisé pour un démarrage ‘en catastrophe’.
Une solution pour éviter la mise a jour avec des paramètres exclusifs du fichier spfile, altérez-le avec l’option alter system set instruction SCOPE=BOTH qui vous signalera les éventuelles erreurs.
Pour vérifier qu’un fichier spfile est utilisé :
SELECT name, value FROM v$parameter WHERE name = 'spfile'; Voir aussi la note ‘Modifier les paramètres de spfile’ :
http://www.tafora.fr/div/recreerinit.doc.htmlStats
|
||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||