一、pfile与spfile
Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件。它们是在数据库实例启动时候加载的,决定了数据库的物理 结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。可以分为两种类型:
pfile: 初始化参数文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用pfile方式存储初始化参数,pfile 默认的名称为“init+例程名.ora”文件路径:/data/app/oracle/product/11.2.0/dbhome_1/dbs,这是一个文本文件,可以用任何文本编辑工具打开。
spfile:服务器参数文件(Server Parameter Files),从Oracle 9i开始,Oracle引入了Spfile文件,spfile 默认的名称为“spfile+例程名.ora”文件路径:/data/app/oracle/product/11.2.0/dbhome_1/dbs 以二进制文本形式存在,不能用vi编辑器对其中参数进行修改,只能通过SQL命令在线修改。
从操作系统上可以看到这两者的区别,初始化参数文件为ASCII文本文件,Spfile为数据文件。
二、spfile的好处
1、spfile改正了pfile管理混乱的问题,在多结点的环境里,pfile会有多个image,启动时候需要跟踪最新的image。这是个烦琐的过程。用spfile以后,所有参数改变都写到spfile里面(只要定义scope=spfile或both),参数配置有个权威的来源。
2、9i以前一般都是要备份pfile后再来做参数的修改,而且pfile的修改必须重启实例才能生效。非常的不方便;在9i以后的spfile就可以同通过命令修改指定的参数了,而且有很多参数都不用重启数据库,能够在线生效,这个在线生效的参数会随着数据库的版本增高而增加。如果参数修改有问题数据库起不来了可以在 nomount状态下创建成pfile再修改回来即可。)
三、查看pfile文件位置
SQL>Show parameter spfile
四、判断oracle数据库启动时使用pfile还是spfile
SQL>select decode(count(*),1,'spfile','pfile') from v$spoarameter where rownum=1 and inspecified='TRUE';
五、pfile与spfile创建
SQL>create spfile[='xxxxx'] from pfile[='xxxx'];
SQL>create pfile[='xxxxx'] from spfile[='xxxx'];
通过spfile创建pfile文件(此时会在$ORACLE_HOME/dbs目录下生成pfile:initorcl.ora),当然你也可以指定参数文件的位置。
六、使用pfile或spfile启动数据库
1、startup 启动次序 spfile优先于pfile。查找文件的顺序是 spfileSID.ora-〉spfile.ora-〉initSID.ora-〉init.ora(spfile优先于pfile)。
2、startup pfile='文件目录' 使用pfile启动,则需指定完整路径,或删除spfile。
3、 如果在数据库的$ORACLE_HOME/dbs/目录下既有spfile又有pfile,使用spfile启动数据库,不需要指定参数文件路径(因为数据库会优先选择spfile启动)。
4、 如果参数文件不在$ORACLE_HOME/dbs/目录下,无论是通过spfile或pfile启动均需要指定完整路径。
原文作者: https://www.bilibili.com/read/cv16778619/ 出处:bilibili
标签:spfile,文件,数据库,pfile,参数,Oracle,ora From: https://www.cnblogs.com/silgen/p/16775989.html