About
Oracle spfile
The Oracle spfile is a binary
representation of the text0based init.ora
file. By default, a new Oracle9i database
will be working on a pfile, so the spfile
must be created from the pfile at the SQL
prompt.
The spfile is created using the CREATE
SPFILE statement; this requires connecting
as SYSDBA.
Connect
system/manager as sysdba;
CREATE SPFILE FROM PFILE;
This command creates an spfile in a
non-default location ($ORACLE_HOME/database).
However, you can fully-qualigfy the path
name is the “create spfile” statement:
CREATE
SPFILE='/u01/admin/prod/pfile/file_mydb.ora'
FROM
PFILE=/u01/admin/prod/pfile/initprod.ora';
Warning - After an spfile is created, when
you bounce the database you may encounter an
error. To get around this, you have to
reconnect as SYSDBA and use the STARTUP
command.
The addition of the spfile has changed the
search path for the Oracle startup deck.
Oracle9i now uses the following path:
Search for the spfile$ORACLE_SID.ora file in
the default location,
Look for the spfile.ora; and
Search for the pfile by name
init$ORACLE_SID.ora.
Specifying SCOPE in parameters
Once you have an spfile, you can change any
initialization parameter with the “alter
system” command. However, there is an
important SCOPE parameter that you need to
understand.
The SCOPE parameter has three values MEMORY,
SPFILE and BOTH. Let’s look at an example of
each:
Alter
system set db_2k_cache_size=100m
SCOPE=SPFILE;
If you want to make a change to a parameter
in the spfile without affecting the current
instance, you can do so using the
SCOPE=SPFILE option of the ALTER SYSTEM
statement. This is useful when you want to
make a change starting from the next startup
and not for the current instance.
Alter
system set db_2k_cache_size=100m
SCOPE=MEMORY;
In Oracle9i the database may be using an
spfile. An spfile is a file that Oracle can
both read from and write to during
operation, allowing dynamic reconfiguration
of many parameters, which is persistent
across shutdowns and startups. A normal
pfile can be generated using the command:
CREATE
PFILE[=<location>] FROM SPFILE[=<location>];
If the files are in the default location ($ORACLE_HOME/dbs)
then the optional ='location' full path
specifications for the file locations aren't
required. The inversion of the command is
also allowed to generate an spfile from a
normal pfile:
|
|