(ORACLE初始化参数文件详细文档.doc
文本预览下载声明
ORACLE初始化参数文件详细文档
1.简介
在9i之前,参数文件只有一种,它是文本格式的,称为pfile,在9i及以后的版本中,新增了服务器参数文件,称为spfile,它是二进制格式的。这两种参数文件都是用来存储参 数配置以供oracle读取的,但也有不同点,注意以下几点:1)pfile是文本文件,spfile是二进制文件;2)对于参数的配置,pfile可以直接以文本编辑器打开手工配置,而spfile不行,必须在数据库启动后,通过sql命令进行在线修改,当然spfile也可用文本编辑器打开,把里面文本的内容复制出来放在pfile中,但决对不可以直接修改,直接修改后会使文件无法读取。3)pfile配置改变后,要使用其生效,必须重新启动数据库,spfile的配置生效时限和作用域可以由修改参数的sql命令指定,可以立即生效,也可以不立即生效。当然有些参数的修改必须重启数据库才能生效;4)可以用sql命令由pfile创建spfile,也可以由spfile创建pfile;5)如果是手动创建数据库而不是通过DBCA,则开始创建数据库时,你只能定义pfile 。因为它是文本格式的;
现在一般普通生产库都采用spfile启动数据库,pfile确实没有用的理由了,感觉只有以下情况才会使用pfile:1)入门学习时,为了理解初始化参数2)创建数据库时,因为这时还没spfile3)恢复数据库时4)采用RAC的生产库中如果要共用spfile,可以建一个初始的pfile,然后在pfile指定spfile为共享设备文件
2.创建spfile和pfile语法创建SPFILE(只能建在数据库所在的机器上)
CREATE SPFILE [= spfile_name] FROM PFILE [= pfile_name];
如果命令中未指定spfile的路径则会在缺省路径创建spfile文件(%ORACLE_HOME%/database/spfileSID.ora)这个与spfile参数无关(rac中共享spfile时要注意)
创建PFILE
CREATE PFILE [= pfile_name] FROM SPFILE [= spfile_name];如果命令中未指定spfile的路径则会从缺省路径(%ORACLE_HOME%/database/spfileSID.ora)创建pfile文件
注:语法中创建和指定的spfile和pfile都是服务器路径注:不能创建已经由数据库实例启动的spfile(在nomount状态下也不行)
3.数据库启动时spfile和pfile的加载顺序
初始化参数是在数据库实例启动时(startup nomount)加载。
如果startup命令中未指定pfile参数,在windows系统中数据库启动时会按如下顺序查找启动参数文件:
%ORACLE_HOME%/database/SPFILESID.ora%ORACLE_HOME%/database/SPFILE.ora%ORACLE_HOME%/database/initSID.ora
在unix或linux系统中数据库启动时会按如下顺序查找启动参数文件:
%ORACLE_HOME%/dbs/SPFILESID.ora%ORACLE_HOME%/dbs/SPFILE.ora%ORACLE_HOME%/dbs/initSID.ora
也就是说先找spfilesid.ora文件,如果spfilesid.ora没有则找spfile.ora文件,最后才会去找initsid.ora的pfile文件.
使用指定pfile启动数据库则数据库会使用指定的pfile来加载数据库参数:命令如下:startup pfile=pfile
注:以pfile启动的实例,修改初始化参数时不能使用scope=spfile的语法
如果参数文件(不管是pfile还是spfile)中指定了spfile的参数,则还会从指定的spfile中再读取配置的参数,这样数据库的参数就包括了两个文件的内容.
4.数据库启动参数的加载顺序
加载顺序按文件中顺序读取如果文件中有两个相同的参数名则以最后出现的为准,以下例子说明了这个问题。
如有一个spfile文件(myspfile.ora),包括两个参数:
sessions=150processes=200
另外有一个pfile文件(mypfile.ora),里面包括三个参数,其中指定了spfile为前面的spfile文件
processes=100sessions=100spfile=myspfile.oraprocesses=180
当使用mypfile.ora启动数据库时,会按如下顺序读取参数
1)process
显示全部