Académique Documents
Professionnel Documents
Culture Documents
ORA
Introduction
Oracle9i augmente régulièrement la liste des paramètres qui sont modifiables sans pour
autant avoir à redémarrer la base de données. L’administrateur de bases de données doit
dans ce cas, impérativement penser à apporter ces modifications dans le fichier des
paramètres avant le prochain redémarrage. Grâce à l’utilisation des fichiers SPFILE (Server
Parameter Files), Oracle9i permet d'effectuer dynamiquement les modifications de ces
paramètres dans le fichier de paramètres, de manière à toujours garantir une cohérence
entre le contenu du fichier et les modifications effectuées avec ALTER SYSTEM.
SPFILE et INIT.ORA
Jusqu’à la version 8i d’oracle, les paramètres d’initialisation étaient habituellement
sauvegardés dans un fichier texte INIT.ORA. Dans Oracle9i, l’utilisation de fichiers SPFILE
(Server Parameter Files) est également possible. Un fichier SPFILE peut être considéré
comme un référentiel de paramètres d’initialisation, résidant sur le serveur de bases de
données.
Les fichiers SPFILE sont des petits fichiers binaires qui ne peuvent être modifiés. Toute
modification de ces fichiers entraîne leur corruption, ce qui a pour conséquence l’échec du
démarrage de l’instance ou la panne de l’instance active.
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^G^@^@^@^@^B...^@^@^@^@^@^@^@^
@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^G^@^@^@^@^B...
@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
*.db_block_size=8192*.db_block_size=8192
*.db_domain='ttc.trivadis.com'*.db_domain='ttc.trivadis.com'
*.db_file_multiblock_read_count=16*.db_file_multiblock_read_count=16
*.db_files=1022*.db_files=1022
*.db_name='TVD901A'*.db_name='TVD901A'
...
*. : toutes les instances de ce système de bases de données. Format valide pour les fichiers
INIT.ORA conventionnels. Particulièrement intéressant dans le cas de RAC.
Toutefois, lors d’un démarrage (STARTUP) avec indication de fichier PFILE, aucun fichier
SPFILE ne peut être indiqué :
SQL> startup pfile='/u00/app/oracle/admin/TVD901A/pfile/spfileTVD901A.ora'SQL>
startup pfile='/u00/app/oracle/admin/TVD901A/pfile/spfileTVD901A.ora'
LRM-00101:LRM-00101: unknown parameter name 's044'
ORA-01078:ORA-01078: failure in processing system parameters
Pour permettre l’indication d’un fichier SPFILE, il est recommandé de créer un fichier
INIT.ORA conventionnel et de lui attribuer son nom par défaut :
init${ORACLE_SID}.ora
Ce fichier contient uniquement le chemin d’accès au fichier SPFILE :
SPFILE = c:\oracle\admin\db1\pfile\spfileDB1.oraSPFILE =
c:\oracle\admin\db1\pfile\spfileDB1.ora
Un fichier SPF est initialement créé à partir d’un fichier de paramètres d’initialisation
conventionnel (PFILE, INIT.ORA). Cette opération est réalisable même si aucune instance
n’est lancée, la seule condition préalable à la création d’un tel fichier étant de posséder les
privilèges SYSDA ou SYSOPER.
Si le fichier SPFILE existe déjà dans l’emplacement par défaut, la procédure de démarrage
(STARTUP) sans indication de fichier PFILE utilise le fichier SPFILE existant.
Pour créer un fichier SPFILE dans l’emplacement par défaut à partir d’un fichier PFILE :
SQL> CREATE SPFILE SQL> CREATE SPFILE
2 FROM PFILE='/u00/app/oracle/admin/TVD901A/pfile/initTVD901A.ora';2 FROM
PFILE='/u00/app/oracle/admin/TVD901A/pfile/initTVD901A.ora';
SQL>SQL>
Pour créer un fichier SPFILE dans un emplacement différent de l’emplacement par défaut à
partir d’un fichier PFILE :
SQL> CREATE SPFILE='/u00/app/oracle/admin/TVD901A/pfile/spfileTVD901A.ora'SQL>
CREATE SPFILE='/u00/app/oracle/admin/TVD901A/pfile/spfileTVD901A.ora'
2 FROM PFILE='/u00/app/oracle/admin/TVD901A/pfile/initTVD901A.ora';2 FROM
PFILE='/u00/app/oracle/admin/TVD901A/pfile/initTVD901A.ora';
SQL>SQL>
Il serait sans aucun doute judicieux de conserver un fichier PFILE à titre de backup
(sauvegarde) du fichier SPFILE afin de pouvoir, « au pire des cas », créer un nouveau fichier
SPFILE à partir du fichier PFILE de sauvegarde. Il vous est, par exemple, possible
d’automatiser la création d’une copie de sauvegarde du fichier PFILE à partir d’un fichier
SPFILE dans le cadre des tâches de sauvegarde nocturnes ou du déclenchement du
démarrage.
Déclencheur créé.
SQL>
La condition préalable à la mise en œuvre de cette méthode est l’utilisation, directe ou via
un fichier INIT.ORA contenant le paramètre SPFILE=spfileSID.ora, d’un fichier SPFILE lors
du DÉMARRAGE de l’instance.
Lors l’utilisation de fichiers SPFILE, il vous est possible de modifier de manière définitive, si
vous le souhaitez, des paramètres du fichier SPFILE (utilisé lors du démarrage) à l’aide de la
commande ALTER SYSTEM.
L’étendue (SCOPE) des modifications est indiquée dans la commande ALTER SYSTEM :
Mémoire (par défaut, lorsqu’ un fichier INIT.ORA conventionnel est utilisé au
démarrage)
SPFILE
LES DEUX (par défaut, si un fichier SPFILE a été utilisé lors du démarrage)
SQL> CONNECT / AS SYSDBASQL> CONNECT / AS SYSDBA
Connected.Connected.
SQL> ALTER SYSTEM SET shared_pool_size = 48M SCOPE=BOTH;SQL>
ALTER SYSTEM SET shared_pool_size = 48M SCOPE=BOTH;
System altered.System altered.
SQL>SQL>
Seul SCOPE=SPFILE peut être utilisé pour les paramètres statiques. La modification est
activée lors du prochain démarrage (STARTUP) :
SQL> CONNECT / AS SYSDBASQL> CONNECT / AS SYSDBA
Connected.Connected.
SQL> ALTER SYSTEM SET db_block_buffers = 20000 SCOPE=SPFILE;SQL>
ALTER SYSTEM SET db_block_buffers = 20000 SCOPE=SPFILE;
System altered.System altered.
SQL>SQL>
Lors de modifications, il vous est possible de spécifier des commentaires qui pourront être
pris en considération aussi bien dans le fichier SPFILE que dans l’attribut
UPDATE_COMMENT de V$PARAMETER et V$SPPARAMETER.
SQL> ALTER SYSTEM SET timed_statistics=TRUE SQL> ALTER SYSTEM SET
timed_statistics=TRUE
2 COMMENT='DB-Review by Trivadis' SCOPE=BOTH;2 COMMENT='DB-
Review by Trivadis' SCOPE=BOTH;
System altered.System altered.
SQL>SQL>
Les paramètres peuvent être supprimés de la manière suivante dans le fichier SPFILE :
SQL> alter system reset sort_area_size scope=spfile sid='*';SQL>
alter system reset sort_area_size scope=spfile sid='*';
System altered.System altered.
SQL>SQL>
Toutefois, cette méthode ne fonctionne pas pour les paramètres comprenant plusieurs
lignes. (Seule la première ligne est supprimée et l’instance ne peut plus démarrer !) Dans ce
cas, définissez tout d’abord le paramètre sur ’’ et supprimez-le.
2. Méthode de l’exportation
Pour mettre en œuvre cette méthode, il faut tout d’abord exporter le contenu du fichier
SPFILE dans un fichier PFILE :
SQL> CREATE PFILE='initDB1test.ora' FROM SPFILE;SQL> CREATE
PFILE='initDB1test.ora' FROM SPFILE;
File created.File created.
SQL> SQL>
Vous pouvez à présent modifier les valeurs des paramètres dans le fichier PFILE.
Ensuite, vous devez recréer le fichier SPFILE à partir du fichier PFILE modifié
’initDB1test.ora’ :
SQL> CREATE SPFILE 'spfileDB1.ora'SQL> CREATE SPFILE 'spfileDB1.ora'
2 FROM PFILE='initDB1test.ora';2 FROM PFILE='initDB1test.ora';
File created.File created.
SQL>SQL>
Un fichier SPFILE a-t-il été utilisé lors du démarrage (STARTUP) ? Si oui, lequel ?
La vue V$PARAMETER vous indique si un fichier SPFILE a été utilisé lors du démarrage
(STARTUP) ainsi que son nom, le cas échéant.
SQL> select name, value from v$parameter where name='spfile'
NAME VALUE
--------------- ----------------------------------------
spfile C:\oracle\admin\db9\pfile\spfiledb9.ora
SQL>
Le paramètre spfile est indiqué dans le fichier alertSID.log si l’instance a été démarrée à
l’aide d’un fichier initSID.ora, qui lui-même renvoie à un fichier SPFILE. Si le paramètre
SPFILE ne figure pas dans le fichier alertSID.log, un fichier SPFILE par défaut ou PFILE
(fichier INIT.ORA conventionnel) a été utilisé lors du démarrage (STARTUP).
De plus, sous NT, il faut également veiller à ce que le démarrage automatique avec les
entrées de registre ORA_<sidname<_AUTOSTART=TRUE et
ORA_<sidname>_PFILE=<full path to the PFILE> corresponde à la commande
STARTUP PFILE=xxx. Le démarrage automatique de la base de données n’utilise pas le
fichier SPFILE. Si la base de données est démarrée à partir de la ligne de commande, et
dans le cas où un fichier SPFILE existe, il se peut que d’autres paramètres aient été pris en
compte lors du démarrage de la base de données.
Vous pouvez éviter cela en supprimant les entrées de registre ou en créant un fichier
INIT.ORA qui contient uniquement le CHEMIN D’ACCÈS au fichier SPFILE.
Visualisation de paramètres
CREATE PFILE=
Résultat
Les modifications permanentes peuvent à présent être réalisées sans vi, Notepad ou autres
applications. De plus, l’utilisation d’un fichier SPFILE au sein d’une base de données
permet de reconnaître le paramètre utilisé lors de la procédure de démarrage (STARTUP).
L’utilisation du fichier SPFILE est également prise en charge dans OEM. La possibilité
d’utiliser un fichier SPFILE unique dans les RAC représente un avantage de plus.
Le seul risque lié à l’utilisation du fichier SPFILE est ne pas savoir exactement quel fichier a
été utilisé pour le démarrage (STARTUP) de la base de données active.
L’existence d’un déclencheur, activé lors de l’utilisation de la commande ALTER SYSTEM,
serait souhaitable pour les DBA de manière à retracer l’historique des modifications
effectuées sur le système.
Petra Knöbl