分类: Oracle
2008-05-07 16:17:40
spfile专用于oracle9i,以二进制文本形式存在,不能用vi编辑器对其中参数进行修改。文件格式为spfileSID.ora。如果要对spfile文件进行修改,可以采用SQL语言:
SQL> ALTER SYSTEM SET PARAMETER = 'VALUES';进行修改。
如果不方便使用SQL语句进行操作,可以通过SQL语句:
SQL> CREATE SPFILE FROM PFILE; 这种方法将二进制文本形式的spfile转换成文本形式的pfile格式,然后再用vi编辑器对其中的参数进行直观修改,以达到方便的目的。
查看系统是以pfile还是spfile启动
Select isspecified,count(*) from v$spparameter group by isspecified;
如果isspecified里有true,表明用spfile进行了指定配置
如果全为false,则表明用pfile启动
show parameter spfile有值,表从spfile启动
使用SPfile的好处
Spfile改正了pfile管理混乱的问题,在多结点的环境里,pfile会有多个image
启动时候需要跟踪最新的image。这是个烦琐的过程。
用spfile以后,所有参数改变都写到spfile里面(只要定义scope=spfile或both),参数配置有个权威的来源。
查看spfile location
show parameter spfile
从spfile获取pfile
Create pfile='d:pfileSID.ora' from spfile;
Create pfile='d:pfileSID.ora' from spfile='spfile_location';
从pfile获取spfile
Create spfile from pfile='Your_pfile_location'
Create spfile='spfile_location' from pfile='Your_pfile_location'
动态修改参数
alter system set parameter=Value scope=spfile|both|memory
Startup nomount的时候需要读去spfile或pfile,两者共存,spfile优先
强制用pfile启动
SQL>startup pfile='Your_Pfile.ora'
startup spfile='/data/oracle/product/10.2.0/db_1/dbs/dbs/spfile_mqq.ora' force
通过pfile连接到spfile启动
修改pfile文件
oracle的初始化文件分为spfilesid.ora、spfile.ora、initsid.ora,都在ora90/database下。
当oracle启动时,初始化参数文件的加载顺序为:spfilesid.ora、spfile.ora、initsid.ora。
重新启动数据库,使用startup命令,Oralce将会按照以下顺序在缺省目录中搜索参数文件:
a. spfile${ORACLE_SID}.ora
缺省目录
UNIX: ${ORACLE_HOME}/dbs/
NT: ${ORACLE_HOME}\database
b. spfile.ora
缺省目录
UNIX: ${ORACLE_HOME}/dbs/
NT: ${ORACLE_HOME}\database
c. init${ORACLESID}.ora
缺省目录
UNIX: ${ORACLE_HOME}/dbs/
NT: ${ORACLE_HOME}\database or
${ORACLE_HOME}\admin\db_name\pfile\
创建了spfile,重新启动数据库,Oracle会按顺序搜索以上目录,spfile就会自动生效。