Oracle spfile example

来源:互联网 发布:交通 问题 优化 编辑:程序博客网 时间:2024/06/05 05:50

Oracle spfile example

Oracle Tips by Burleson Consulting
Don Burleson

From: http://www.dba-oracle.com/tips_oracle_spfile_example.htm

The following is from the bestselling book Oracle 10g Grid & Real Application Clusters - Oracle10g Grid Computing with RAC.  You can order it directly and save 30% here:

 

http://www.rampant-books.com/book_2004_1_10g_grid.htm


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 揷reate 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 the example above, the SCOPE=MEMORY tells Oracle9i to make the change for the life of the instance, and to change it back to the default value the next time the database is bounced.

Alter system set db_2k_cache_size=100m SCOPE=BOTH;

When you specify SCOPE=BOTH, the change will be made immediately, and Oracle will also make the change permanent, even after the database is bounced.

 

原创粉丝点击