打算写一系列的文章介绍11g的新特性和变化。
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: Release11.1.0.6.0 - Production on Thu Jan 10 15:06:30 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
:?GR:b:p4|*^0Connected to:ITPUB个人空间/]"qN K%x
Oracle Database11gEnterprise Edition Release11.1.0.6.0 - ProductionITPUB个人空间rOx*}C`8q;tM
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
7j'M0jGh0Database closed.
5@5f9kL#q&p ~0Database dismounted.
+O#bu~e}f_^}X0ORACLE instance shut down.ITPUB个人空间PB*Cko,L6Z
SQL> create pfile='/home/oracle/initora11g_p.ora' from memory;
xE4F|D*]*_8Nt0create pfile='/home/oracle/initora11g_p.ora' from memory
af+i6N Ix1[v0 *ITPUB个人空间'K4M\Oo+b6[USi
ERROR at line 1:ITPUB个人空间+Ku{
{x;N'z,WWf
ORA-00922: missing or invalid option
ITPUB个人空间a|q,y+V?5Q
SQL> create spfile='/home/oracle/spfileora11g_p.ora' from memory;ITPUB个人空间wg Z/V0Pzk%M
create spfile='/home/oracle/spfileora11g_p.ora' from memoryITPUB个人空间J-\9Y.A i/Ys
*ITPUB个人空间Sj!X,y8~w%Q4G
ERROR at line 1:ITPUB个人空间,\r~WT sXZ`5FD
ORA-00922: missing or invalid option
R+o+m ALD0SQL> startup nomount
opzgj]9r0ORACLE instance started.
Total System Global Area 267825152 bytesITPUB个人空间@EmI)t(\!g df!S
Fixed Size 1299316 bytesITPUB个人空间.@q+mLOW6I,?8H+?k
Variable Size 176163980 bytes
;i
N}%mZ QN0Database Buffers 88080384 bytes
&O,K\O&eNd$A0Redo Buffers 2281472 bytesITPUB个人空间9|cc/}N
faMU
SQL> create pfile='/home/oracle/initora11g_p.ora' from memory;
File created.
SQL> create spfile='/home/oracle/spfileora11g_p.ora' from memory;
File created.