Next: Oracle Startup
Up: Files and Componants
Previous: Database Files
Contents
Several files contain lists of initialization paramters. The files go by
the names init.ora, pfile (paramater file), or spfile
(server paramater file). Each database instance will have a pfile in it's admin
directory. An init.ora will exist in the $ORACLE_HOME/dbs/ directory.
In the pfile directory of each instances admin directory you also find an
init.ora.
The parameter files contain a variety of Oracle tunables including
the database block size (db_block_size), database cache size
(db_cache_size), number of open cursors (open_cursors), the database
name (db_name) and domain (db_domain), resource limits (proccesses),
size of all the various pools (large_pool_size, etc), and the location
of the control files (control_files). The paramter files is read
by Oracle when you start an instance, as the name "initialization" implies.
Once this file is read and proccessed the control files will point
the instance to the rest of the datafiles.
More and more you hear about spfile's. Unlike your init.ora pfile, you
can't (well, you shouldn't anyway) hand edit an spfile. Oracle has
been making more and more parameters dynamically changable. Apparently
in older releases of Oracle changing parameters would involve shutting
down the database, modifying the paramter in the pfile and then restarting.
Now many of these paramters can be change with an ALTER statement and take effect
immediately without a downtime. The problem
was that if you changed these dynamic paramters the changes wouldn't be persistant
across database restarts, so the DBA would have be careful to always update
the pfile after making the change. Obviously this became a problem quickly as
careless DBAs would simply forget. So to combat the problem the spfile was made
avalible where dynamicly changed parameters would be recorded in the "binary"
spfile and thus make tunable paramters persistant. To use an spfile you
actually need to explicitely create one by converting your existing pfile
into a pfile (eg: "CREATE SPFILE 'spfileSID.ora' FROM PFILE='initSID.ora';").
You can look in the v$parameter system view to see where your spfile is.
In 10g it seems like an spfile is created on your behalf, whereas in previous
releases it had to be manual created as noted above.
SQL> select name,value from v$parameter where name='spfile';
NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
spfile
/u01/app/oracle/product/10.1.0/db_1/dbs/spfiletest.ora
When databases are created using dbca they use an spfile by default
and are located in $ORACLE_HOME/dbs.
Next: Oracle Startup
Up: Files and Componants
Previous: Database Files
Contents
2005-02-10