1.初始参数文件:pfile(initialization parameter file)
2.服务器参数文件:spfile(server-side parameter file)
主要的区别是:
1.pfile是文本文件,spfile是二进制文件
2.pfile可以通过文本编辑器修改,spfile主要是通过alter system set parameter=value [scope=memory|spfile|both]修改
oracle启动时,读取参数文件的顺序是:
1.spfile$ORACLE_SID.ORA(创建数据库时创建的spfile)
2.spfile.ora(oracle缺省spfile文件)
3.init$ORACLE_SID.ora(创建数据库时创建的pfile)
4.init.ora(oracle缺省pfile文件)
oracle会按顺序读出这些参数文件,如果在1没有找到就去找2,直到找到。
和参数文件相关常用SQL如下:
1.查看当前使用的spfile和pfile的位置:
show parameter spfile/show parameter pfile
2.查看参数文件的具体设置
show parameters
3.从spfile获取pfile
create pfile='pfilesid.ora' from spfile或者
create pfile='pfilesid.ora' from spfile='/$ORACLE_HOME/dbs/spfile.ora'
4.修改参数
alter system set parameter=value [scope=memory|spfile|both]
1.修改后当前就起作用,重启数据库不起作用
scope=memory
2.修改后当前不起作用,下次重启数据库才起作用
scope=spfile
3.修改后当前起作用,下次重启数据库也起作用
scope=both
Notice:命令alter system set parameter=value在没有加scope选项时,默认值是什么呢?多数朋友可能不加思索就会回答both这答案,实际的情况是,当oracle在以spfile参数启动时,默认值是both,而以pfile启动时,默认值是memory,也就是只修改当前值。所以如果不能确定启动的参数文件,可以用show parameter spfile查看。
5.指定初始参数文件启动数据库
startup pfile='/$ORACLE_HOME/dbs/init$ORACLE_SID.ora'
不能以指定服务器参数文件spfile来启动数据库
可以先将spfile转换成pfile,再用这个命令来达到目的
6.查看系统是以pfile还是spfile启动
show parameter spfile
如果是null值,就是pfile启动的