1、pfile和spfile
Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件。它们是在数据库实例启动时候加载的,决定了数据库的物理 结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。可以分为两种类型:
pfile: 初始化参数文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用pfile方式存储初始化参数,pfile 默认的名称为“init+例程名.ora”文件路径:/data/app/oracle/product/12.1.0/dbhome_1/dbs,这是一个文本文件,可以用任何文本编辑工具打开。
spfile:服务器参数文件(Server Parameter Files),从Oracle 9i开始,Oracle引入了Spfile文件,spfile 默认的名称为“spfile+例程名.ora”文件路径:/data/app/oracle/product/12.1.0/dbhome_1/dbs以二进制文本形式存在,不能用vi编辑器对其中参数进行修改,只能通过sql命令在线修改。
从操作系统上可以看到这两者的区别,初始化参数文件为ASCII文本文件,Spfile为数据文件。
[oracle@xqzt ~]$ cd /data/app/oracle/product/12.1.0/dbhome_1/dbs/ oracle@xqzt dbs]$ ls hc_orcl.dat init.ora lkORCL orapworcl spfileorcl.ora ]$ file init.ora init.ora: ASCII English text file spfileorcl.ora spfileorcl.ora: data ]$
2、使用spfile的好处
1、spfile改正了pfile管理混乱的问题,在多结点的环境里,pfile会有多个image,启动时候需要跟踪最新的image。这是个烦琐的过程。用spfile以后,所有参数改变都写到spfile里面(只要定义scope=spfile或both),参数配置有个权威的来源。
2、9i以前一般都是要备份pfile后再来做参数的修改,而且pfile的修改必须重启实例才能生效。非常的不方便;在9i以后的spfile就可以同通过命令修改指定的参数了,而且有很多参数都不用重启数据库,能够在线生效,这个在线生效的参数会随着数据库的版本增高而增加。如果参数修改有问题数据库起不来了可以在 nomount状态下创建成pfile再修改回来即可。)
3、如何查看Spfile与pfile的目录位置?
方法一:
sql> SELECT NAME,VALUE,DISPLAY_VALUE FROM V$PARAMETER WHERE NAME ='spfile'; NAME -------------------------------------------------------------------------------- VALUE ------------------------------------------------------------------------------ DISPLAY_VALUE ------------------------------------------------------------------------------ spfile /spfileorcl.ora /spfileorcl.ora