Oracle11新特性——初始化文件管理

 
 
11g对于初始化增加了一个很实用的功能,可以根据内存中的参数设置来创建初始化参数文件。 
Oracle从9i推出了SPFILE之后,就给出了使用PFILE创建SPFILE以及由SPFILE创建PFILE的语法。 
在11g中,Oracle增强了这种语法,使得创建PFILE或SPFILE时,不在需要指定一个物理的文件,而是可以从当前内存中的设置来获取参数配置。 
采用这种方式创建的PFILE或SPFILE,可以保证获得的参数就是当前运行的参数,而如果从PFILE或SPFILE则无法确保文件中的参数设置与数据库运行的参数设置一致。 
语法其实很简单,将创建时的FROM语句后面的文件类型PFILE或SPFILE改为MEMORY即可: 
[oracle@yangtk ~]$ sqlplus \"/ as sysdba\" 
SQL*Plus: Release 11.1.0.6.0 - Production on Thu Jan 10 15:06:30 2008 
Copyright (c) 1982, 2007, Oracle. All rights reserved. 

Connected to: 
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production 
With the Partitioning, OLAP, Data Mining and Real Application Testing options 
SQL> create pfile=’/home/oracle/initora11g_p.ora’ from memory; 
File created. 
SQL> create spfile=’/home/oracle/spfileora11g_p.ora’ from memory; 
File created. 
这种方式要求数据库至少处于NOMOUNT状态,否则会报错: 
SQL> shutdown immediate 
Database closed. 
Database dismounted. 
ORACLE instance shut down. 
SQL> create pfile=’/home/oracle/initora11g_p.ora’ from memory; 
create pfile=’/home/oracle/initora11g_p.ora’ from memory 

ERROR at line 1: 
ORA-00922: missing or invalid option 

SQL> create spfile=’/home/oracle/spfileora11g_p.ora’ from memory; 
create spfile=’/home/oracle/spfileora11g_p.ora’ from memory 

ERROR at line 1: 
ORA-00922: missing or invalid option 

SQL> startup nomount 
ORACLE instance started. 
Total System Global Area 267825152 bytes 
Fixed Size 1299316 bytes 
Variable Size 176163980 bytes 
Database Buffers 88080384 bytes 
Redo Buffers 2281472 bytes 
SQL> create pfile=’/home/oracle/initora11g_p.ora’ from memory; 
File created. 
SQL> create spfile=’/home/oracle/spfileora11g_p.ora’ from memory; 
File created.