next up previous contents
Next: Oracle Startup Up: Files and Componants Previous: Database Files   Contents

Initialization Parameters

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 up previous contents
Next: Oracle Startup Up: Files and Componants Previous: Database Files   Contents
2005-02-10