博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle-PFILE和SPFILE解读
阅读量:4207 次
发布时间:2019-05-26

本文共 2975 字,大约阅读时间需要 9 分钟。

概述

ORACLE中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件,可以分为两种类型。它们是在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。

初始化参数文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件。

服务器参数文件(Server Parameter Files),从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制格式,不能通过手工修改。 

只能通过alter system set 命名动态的修改初始化参数的值,如果手动的修改spfile 将会导致文件损坏,实例不能启动。


从Oracle 9i开始,Oracle缺省使用spfile启动数据库,spfile必须由pfile创建,新建的spfile将在下一次启动数据库时生效。


查看oracle实例是由那种类型的初始化参数文件启动

SQL> select decode(value, null, 'pfile', 'spfile')  from V$parameter where name = 'spfile';DECODE(VALUE,NULL,'PFILE','SPF------------------------------spfile
  • 1
  • 2
  • 3
  • 4
  • 5
SQL> select value from V$parameter where name = 'spfile';VALUE------------------------------------------------------------/oracle/product/112/dbs/spfilecc.ora
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

或者

SQL>  show parameter pfileNAME          TYPE        VALUE-------- ------ ------------spfile    string      /oracle/product/112/dbs/spfilecc.ora++++++++++++++++++++++++++++++++++++++++++++++SQL> show parameter spfileNAME          TYPE        VALUE-------- ------ ------------spfile    string      /oracle/product/112/dbs/spfilecc.ora
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

如果数据库使用spfile参数文件,那么用show parameter spfile与 show parameter pfile的结果一致,如果数据库使用pfile参数文件,那么上面命令得到的结果都是空.


spfile 优点

  • 1、可以使用rman 来备份spfile,rman 不支持备份pfile。

  • 2、减少人为错误,spfile 是由oracle 数据库维护的,在对其中的参数做修改的时候oracle 数据库会做检查。

  • 3、使用方便,如果你想远程启动数据库,不像pfile 需要本地的初始化参数文件副本。

  • 4、查找定位方便。

pfile 与 spfile 的区别

  • 1、pfile 是静态的如果需要修改可以使用vi 等文字编辑工具手动修改。如果需要远程启动数据库,需要pfile 的本地副本。

  • 2、spfile 可以通过alter system set 命名动态的修改初始化参数的值,如果手动的修改spfile 将会导致文件损坏,实例不能启动。


重建pfile 或 spfile

create spfile[='xxxxx'] from pfile[='xxxx']; create pfile[='xxxxx'] from spfile[='xxxx'];
  • 1
  • 2
  • 3

通过spfile创建pfile文件(此时会在$ORACLE_HOME/dbs目录下生成pfile.当然你也可以指定参数文件的位置。

SQL> create pfile from spfile;File created.
  • 1
  • 2
  • 3

如果当前实例是使用spfile 启动的那么是不可以使用下面的命令来创建spfile 的。

SQL> create spfile from pfile;create spfile from pfile*ERROR at line 1:ORA-32002: cannot create SPFILE already being used by the instance
  • 1
  • 2
  • 3
  • 4
  • 5

但你可以使用指定不同于默认路径的方式来创建spfile。

SQL> create spfile = '/opt/app/oracle/oradata/orcl/spfile.ora' from pfile;File created.
  • 1
  • 2

如果在pfile 和 spfile 的相互转化过程中需要的话pfile 也是可以指定路径的。 

create pfile 与create spfile 只要实例启动以后就可以执行。

通过spfile文件修改动态参数

alter system set parameter=Value scope=memory|spfile|both
  • 1

memory:只改变当前实例运行,重启数据库后失效

spfile:只改变spfile设置,不改变当前实例设置,重启数据库后生效

both:同时改变spfile和实例设置,当前更改立即生效,重启后依然有效

当没有指定scope 的时候,如果实例是使用pfile 启动的那么默认的scope 方式是memory。如果实例是使用spfile 启动的默认的scope 方式是both。


备份spfile

rman 提供了备份spfile 的功能.

RMAN> backup spfile;--显示的发出备份spfile 的命令。
  • 1

开启spfile 的自动备份功能。

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;new RMAN configuration parameters:CONFIGURE CONTROLFILE AUTOBACKUP ON;new RMAN configuration parameters are successfully stored
  • 1
  • 2
  • 3
  • 4

设置了上述参数以后rman 在执行backup 命令的时候会自动的备份控制文件和参数文件(前提是实例是使用spfile启动的)。 

注:初始化参数文件中至少要包含一个参数:DB_NAME 该参数是没有默认值的。如果要删除spfiel 中的某个参数使用

alter system reset parameter = values...
  • 1

删除的参数在下次实例运行期间生效。

转载地址:http://qqrli.baihongyu.com/

你可能感兴趣的文章
LRwinsocket协议测试AAA服务器
查看>>
Net远程管理实验
查看>>
反病毒专家谈虚拟机技术 面临两大技术难题
查看>>
几种典型的反病毒技术:特征码技术、覆盖法技术等
查看>>
性能测试一般过程与LR性能测试过程
查看>>
Software Security Testing软件安全测试
查看>>
SQL注入漏洞全接触--进阶篇
查看>>
SQL注入漏洞全接触--高级篇
查看>>
SQL注入法攻击一日通
查看>>
论文浅尝 | 通过共享表示和结构化预测进行事件和事件时序关系的联合抽取
查看>>
论文浅尝 | 融合多粒度信息和外部语言知识的中文关系抽取
查看>>
论文浅尝 | GMNN: Graph Markov Neural Networks
查看>>
廖雪峰Python教程 学习笔记3 hello.py
查看>>
从内核看epoll的实现(基于5.9.9)
查看>>
python与正则表达式
查看>>
安装.Net Framework 4.7.2时出现“不受信任提供程序信任的根证书中终止”的解决方法
查看>>
input type=“button“与input type=“submit“的区别
查看>>
解决Github代码下载慢问题!
查看>>
1.idea中Maven创建项目及2.对idea中生命周期的理解3.pom文件夹下groupId、artifactId含义
查看>>
LeetCode-栈|双指针-42. 接雨水
查看>>