Oraclei引入了具有延续性的初始化参数文件SPFILE(Server Parameter FILE)所谓延续性是指对初始化参数的在线修改可以直接作用到参数文件中这样所有被修改的参数将永久生效
SPFILE有以下几个显着优点
ALTER SYSTEM所设定的参数可以直接保存在SPFILE中不像以前那样需要手工更改参数文件才可以使改动永久生效
RMAN支持对SPFILE的备份在这之前是无法做到使用RMAN来备份初始化参数文件的
可以实现在本地没有远程数据库的INITORA拷贝的时候远程启动数据库
在RAC的多个实例之间可以共享一个SPFILE
下面我们将详细讨论这几个新特性
SPFILE概述
SPFILE是一个很小的二进制文件有ORACLE服务器自动维护位于ORACLE服务器端($ORACLE_HOME/dbs/spfileora)因为ORACLE默认就是此SPFILE所以我们可以通过SQL*PLUS或OEM无需指定初始化参数在客户端远程启动数据库
SPFILE的创建导出与更新
SYSDBA/SYSOPER(我不知道别人是不是使用SYSOPER反正我是从来不用这个)可以在数据库处于任何状态下(IDLE/NOMOUNT/MOUNT/OPEN)通过下面的语句来创建一个SPFILE
CREATE SPFILE[=SPFILE_NAME] FROM PFILE[=PFILE_NAME];
而将这个语句反过来就可以通过SPFILE来建立PFILEORACLE称之为SPFILE的导出
CREATE PFILE[=PFILE_NAME] FROM SPFILE[=SPFILE_NAME];
导出的文件格式如下
*background_dump_dest=/oracle/app/oracle/admin/ora/bdumppatible=ntrol_files=/dev/rcon/dev/rcon/dev/rconre_dump_dest=/oracle/app/oracle/admin/ora/cdump*db_block_size=*db_cache_size=#changed at *db_domain=*db_file_multiblock_read_count=*db_name=ora
导出SPFILE由两个主要的用途批量修改参数作为SPFILE的一种备份方式(如果数据库采用RMAN备份方式我们可以直接用RMAN来备份SPFILE)当批量修改(编辑PFILE)完成后我们可以通过重新创建SPFILE来实现对SPFILE的更新
参数的修改
对于单个参数的修改我们可以通过下面的语句来完成
ALTER SYSTEM SET PARAMETER=value [COMMENT=COMMENT TEXT][SCOPE=MEMORY|SPFILE|BOTH]
通过SCOPE选项实现了对初始化参数更改的永久性
对于动态参数可以加上DEFERRED关键字来标明更改仅对以后的SESSIONS起作用
SQL> alter system set sort_area_size= comment=temporary seting scope=spfile;System altered
启动时参数文件的读取顺序
数据库启动时STARTUP默认使用初始化参数文件的顺序是
[指定的PFILE >] SPFILE > $ORACLE_HOME/dbs/PFILE
当然在PFILE中也可以指向SPFILE
读取SPFILE参数设置
我们可以从v$spparameter v$parameter v$parameter中获得相关参数的信息也依旧可以使用SHOW SGA
SQL> select namevalueupdate_comment from v$spparameter where name=sort_area_size;NAME VALUE UPDATE_COMMENT sort_area_size temporary seting
共享初始化参数文件
在i RAC中多个实例可以共享同一个初始化参数文件而各实例所特有的参数值可以通过在参数前加上实例名称来标示
hawk:sort_area_size=hawk:sort_area_size=
关于SPFILE差不多就这些内容了