When an Oracle Instance is started, the characteristics of the
Instance are established by parameters specified within the
initialization parameter file. These initialization parameters are
either stored in a PFILE or SPFILE. SPFILEs are available in Oracle 9i
and above. All prior releases of Oracle are using PFILEs.
SPFILEs provide the following advantages over PFILEs:
- An SPFILE can be backed-up with RMAN (RMAN cannot backup PFILEs)
- Reduce human errors. The SPFILE is maintained by the server. Parameters are checked before changes are accepted.
- Eliminate configuration problems (no need to have a local PFILE if you want to start Oracle from a remote machine)
- Easy to find - stored in a central location
What is the difference between a PFILE and SPFILE:
A PFILE is a static, client-side text file that must be updated with a
standard text editor like "notepad" or "vi". This file normally reside
on the server, however, you need a local copy if you want to start
Oracle from a remote machine. DBA's commonly refer to this file as the
INIT.ORA file.
An SPFILE (Server Parameter File), on the other hand, is a persistent
server-side binary file that can only be modified with the "ALTER
SYSTEM SET" command. This means you no longer need a local copy of the
pfile to start the database from a remote machine. Editing an SPFILE
will corrupt it, and you will not be able to start your database
anymore.
How will I know if my database is using a PFILE or SPFILE:
Execute the following query to see if your database was started with a PFILE or SPFILE:
SQL> SELECT DECODE(value, NULL, 'PFILE', 'SPFILE') "Init File Type"
FROM sys.v_$parameter WHERE name = 'spfile';
You can also use the V$SPPARAMETER view to check if you are using a
PFILE or not: if the "value" column is NULL for all parameters, you are
using a PFILE.
Viewing Parameters Settings:
One can view parameter values using one of the following methods (regardless if they were set via PFILE or SPFILE):
- The "SHOW PARAMETERS" command from SQL*Plus (i.e.: SHOW PARAMETERS timed_statistics)
- V$PARAMETER view - display the currently in effect parameter values
- V$PARAMETER2 view - display the currently in effect parameter values, but "List Values" are shown in multiple rows
- V$SPPARAMETER view - display the current contents of the server parameter file.
Starting a database with a PFILE or SPFILE:
Oracle searches for a suitable initialization parameter file in the following order:
- Try to use the spfile${ORACLE_SID}.ora file in $ORACLE_HOME/dbs (Unix) or ORACLE_HOME/database (Windows)
- Try to use the spfile.ora file in $ORACLE_HOME/dbs (Unix) or ORACLE_HOME/database (Windows)
- Try to use the init${ORACLE_SID}.ora file in $ORACLE_HOME/dbs (Unix) or ORACLE_HOME/database (Windows)
One can override the default location by specifying the PFILE parameter at database startup:
SQL> STARTUP PFILE='/oradata/spfileORCL.ora'
Note that there is not an equivalent "STARTUP SPFILE=" command. One
can only use the above option with SPFILE's if the PFILE you point to
(in the example above), contains a single 'SPFILE=' parameter pointing
to the SPFILE that should be used. Example:
SPFILE=/path/to/spfile
Changing SPFILE parameter values:
While a PFILE can be edited with any text editor, the SPFILE is a
binary file. The "ALTER SYSTEM SET" and "ALTER SYSTEM RESET" commands
can be used to change parameter values in an SPFILE. Look at these
examples:
SQL> ALTER SYSTEM SET open_cursors=300 SCOPE=SPFILE;
SQL> ALTER SYSTEM SET timed_statistics=TRUE
COMMENT='Changed by Frank on 1 June 2003'
SCOPE=BOTH
SID='*';
The SCOPE parameter can be set to SPFILE, MEMORY or BOTH:
- MEMORY: Set for the current instance only. This is the default behaviour if a PFILE was used at STARTUP.
- SPFILE: update the SPFILE, the parameter will take effect with next database startup
- BOTH: affect the current instance and persist to the SPFILE. This is the default behaviour if an SPFILE was used at STARTUP.
The COMMENT parameter (optional) specifies a user remark.
The SID parameter (optional; only used with RAC) indicates the instance
for which the parameter applies (Default is *: all Instances).
Use the following syntax to set parameters that take multiple (a list of) values:
SQL> ALTER SYSTEM SET utl_file_dir='/tmp/','/oradata','/home/' SCOPE=SPFILE;
Use this syntax to set unsupported initialization parameters (obviously only when Oracle Support instructs you to set it):
SQL> ALTER SYSTEM SET "_allow_read_only_corruption"=TRUE SCOPE=SPFILE;
Execute one of the following command to remove a parameter from the SPFILE:
SQL> ALTER SYSTEM RESET timed_statistics SCOPE=SPFILE SID=‘*’;
SQL> ALTER SYSTEM SET timed_statistics = '' SCOPE=SPFILE;
Converting between PFILES and SPFILES:
One can easily migrate from a PFILE to SPFILE or vice versa. Execute
the following commands from a user with SYSDBA or SYSOPER privileges:
SQL> CREATE PFILE FROM SPFILE;
SQL> CREATE SPFILE FROM PFILE;
One can also specify a non-default location for either (or both) the PFILE and SPFILE parameters. Look at this example:
SQL> CREATE SPFILE='/oradata/spfileORCL.ora' from PFILE='/oradata/initORCL.ora';
Here is an alternative procedure for changing SPFILE parameter values using the above method:
- Export the SPFILE with: CREATE PFILE=‘pfilename’ FROM SPFILE = ‘spfilename’;
- Edit the resulting PFILE with a text editor
- Shutdown and startup the database with the PFILE option: STARTUP PFILE=filename
- Recreate the SPFILE with: CREATE SPFILE=‘spfilename’ FROM PFILE=‘pfilename’;
- On the next startup, use STARTUP without the PFILE parameter and the new SPFILE will be used.
Parameter File Backups:
RMAN (Oracle's Recovery Manager) will backup the SPFILE with the
database control file if setting "CONFIGURE CONTROLFILE AUTOBACKUP" is
ON (the default is OFF). PFILEs cannot be backed-up with RMAN. Look at
this example:
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
Use the following RMAN command to restore an SPFILE:
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
分享到:
相关推荐
Net: Board Net Initialization Failed No ethernet found.解决方案,如实际开发中有遇到,仅供参考 1. 网卡没有插好或者网卡损坏。 2. 网卡的驱动程序没有正确加载。 3. 网线没有接好或者网线损坏。 4. 网络设备...
Application Initialization Failed(处理方案).md
信息: Initialization processed in 984 ms 2010-8-11 18:24:13 org.apache.catalina.core.StandardService start 信息: Starting service Catalina 2010-8-11 18:24:13 org.apache.catalina.core.StandardEngine ...
然而,在使用JUnit时,可能会遇到一些错误,比如"InitializationError",这通常是由于缺少必要的依赖导致的。在这种情况下,问题的描述指出,缺少了两个特定的jar包:hamcrest-library-1.3.jar和hamcrest-core-1.3....
Set the wrapping functions as the delegate for handling scheduler initialization to RxJava: RxJava 2.x: RxJavaPlugins.setInitComputationSchedulerHandler( Rx2Idler.create("RxJava 2.x Computation ...
Pointers vs. Multi-dimensional Arrays Command-line Arguments Pointers to Functions Complicated Declarations Chapter 6: Structures Basics of Structures Structures and Functions Arrays of ...
12. **智能指针增强**:`std::shared_ptr`、`std::unique_ptr`和`std::weak_ptr`得到了增强,更好地支持了资源管理,尤其是RAII(Resource Acquisition Is Initialization)原则。 以上只是C++0x标准中的一部分关键...
这个错误通常与静态初始化块(static initialization block)有关,静态初始化块是在类加载时执行的,用于初始化类的静态成员。如果在执行静态初始化块时发生了异常,JVM就会抛出`ExceptionInInitializerError`。 ...
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.6.0_10\bin;C:\Program ...
资源名称:mysql启动失败的解决方法资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
Initialization Failed(解决方案).md
Channel Initialization Failed(处理方案).md
Cache Initialization Failed(解决方案).md
Bean Initialization Error(处理方案).md
Peripheral Initialization Error(解决方案).md
Store Initialization Error(解决方案).md
Store Initialization Conflict(解决方案).md
Graph Initialization Error(解决方案).md
Context Initialization Error(解决方案).md