
在Oracle中,PFILE和SPFILE的区别是什么?
参数文件(Parameter File)也叫初始化文件,它主要用来记录数据库的配置文件,在数据库启动时,Oracle读取参数文件,并根据参数文件中的参数设置来配置数据库,如内存的分配,允许打开的进程数和会话数等。Oracle的参数文件主要分为2类:PFILE(Parameter File)和SPFILE(Server Parameter File)。SPFILE和PFILE的区别参考下表:
表 3-12 SPFILE和PFILE的区别
比较内容 | SPFILE | PFILE |
格式 | 二进制格式 | 文本格式 |
编辑方式 | Oracle 9i之后引入的概念,不能用文本编辑工具打开,不能直接修改,只能存放在Oracle服务器端,只能使用如下几种方式修改: 1、利用OEM修改 2、在SQL*Plus里使用ALTER SYSTEM语句进行修改 | 1、利用OEM修改(重启失效) 2、利用文本工具(vi、vim、本文编辑器)直接进行修改 |
默认名称 | spfile<SID>.ora | init<SID>.ora |
默认路径 | Linux下:$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora Windows下:%ORACLE_HOME%\database\spfile$ORACLE_SID.ora | Linux下:$ORALCE_HOME/dbs/init$ORACLE_SID.ora Windows下:%ORALCE_HOME%\database\init$ORACLE_SID.ora |
启动次序 | SPFILE优于PFILE | PFILE低于SPFILE |
是否支持RMAN备份 | 可以由RMAN备份 | 不支持RMAN备份 |
互相转换 | 由PFILE生成SPFILE命令如下所示: CREATE SPFILE FROM PFILE; CREATE SPFILE [='路径+文件名'] FROM PFILE[='路径+文件名']; 例如:CREATE SPFILE FROM PFILE='?/dbs/initlhrdb.ora'; | 由SPFILE生成PFILE命令如下所示: CREATE PFILE FROM SPFILE; CREATE PFILE [='路径+文件名'] FROM SPFILE[='路径+文件名']; 例如:CREATE PFILE='?/dbs/initlhrdb.ora' FROM SPFILE; |
是否使用SPFILE | 用SHOW PARAMETER SPFILE命令来显示参数配置,假如以下结果VALUE列返回空值,那么说明使用的是PFILE,若有值,则说明使用的是SPFILE文件: SYS@lhrdb> SHOW PARAMETER SPFILE NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string +DATA/lhrdb/spfilelhrdb.ora |
需要注意的是,Oracle数据库在启动时寻找参数文件的顺序如下所示,如果这些文件都不存在,那么Oracle会报错:
spfile<SID>.ora --> spfile.ora --> init<SID>.ora
& 说明:
有关参数文件spfile和pfile的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2139146/
真题1、Which three statements regarding the server parameter file (SPFILE) are true?(Choose three.)
A、An SPFILE is abinary file.
B、An SPFILE cannot reside on a client.
C、An SPFILE cannot contain static parameters.
D、An SPFILE can store changes persistently across instance restarts.
E、An SPFILE can be read by the database server,but it is not written to by the server.
F、An SPFILE must be created manually,before creating a database,even if you use the Database Configuration Assistant(DBCA) to create the database.
答案:A、B、D。
本题考察的是SPFILE的相关知识。
本题中,对于选项A,SPFILE是一个二进制文件。所以,选项A正确。
对于选项B,SPFILE不能用在客户端。所以,选项B正确。
对于选项C,SPFILE可以包含静态参数。所以,选项C错误。
对于选项D,SPFILE可以永久存储参数的值。所以,选项D正确。
对于选项E,SPFILE可以由数据库进行写入。所以,选项E错误。
对于选项F,DBCA创建的数据库不用手动创建SPFILE。所以,选项F错误。
所以,本题的答案为A、B、D。
本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

---------------优质麦课------------

详细内容可以添加麦老师微信或QQ私聊。

● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。







