oracle pfile和spfile

本文详细介绍了Oracle数据库中的参数初始化文件pfile和spfile的概念、位置、特点及使用方法,包括如何通过V$PARAMETER视图查询参数、文件相互创建的方式以及验证startup数据库过程。
摘要由CSDN通过智能技术生成

oracle中的参数文件pfile和spfile

oracle中的参数文件pfile和spfile

概念:
oracle中的参数初始化文件从9i开始有2种:文本参数文件和服务器参数文件(9i新增加的)。他们是在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。


位置(这里的位置版本不一样可能有变化):
初始化参数文件(pfile
):%oracle_home%\database\nit<ORACLE_SID>.ora------ASCII文本文件(可以直接编辑)
服务器参数文件(spfile): %oracle_home%\dbs\spfile<ORACLE_SID>.ora----二进制文件(不可以直接编辑)

查询:
通过V$PARAMETER试图可以查询系统的初始化参数,查询方式有两种
   1.show parameter pra_name
  2.select name,name_col_plus_show_param from V$PARAMETER where name='pra_name';
   实际上,以上两种方式是一样的。方式1是方式2的封装语句,从告警文件中可以发现,show parameter其实是执行了方式2的语句。

文件特点:
A.PFILE

    这种文件是在Oracle9i之前的唯一参数文件,对这类文件的修改是需要手工进行的,并且修改后,重启Oracle实例才会生效。
B.SPFILE
    这种文件是在Oracle9i中引入的新的参数文件机制,可以使用ALTER SYSTEM SET pra_name="value" SCOPE=scopevalue命令来修改参数。对于动态参数所有更改可以立即生效,甚至可以将更改同时应用到SPFILE文件与数据库实例。对于静态参数只能将修改应用到SPFILE,在Oracle实例重启后生效。
    这里的SCOPE有三种:MEMORY,SPFILE,BOTH.
                 MEMEORY是只修改当前实例,只在当前实例下生效;重启后,将失效。
                SPFILE是只修改服务器参数文件,只在下次启动后失效。
                 BOTH是同时修改当前实例和服务器参数文件,对修改立刻有效,并在将来持续有效。

他们是可以相互创建的。可以使用默认位置创建或者指定位置创建
create spfile[='xxxxx'] from pfile[='xxxx']; create pfile[='xxxxx'] from spfile[='xxxx'];                                            这里就可以得出修改spfile参数的第二个方法:先关闭数据库,然后create pfile from spfile;然后修改这个pfile,然后create spfile from pfile; 
还有一个特殊的第三种方法:在你的pfile文件里面加入这么一个参数 spfile='xxxxxx\xxx\spfileorcl.ora' 这样这个pfile文件就有了所有spfile的参数,这个时候你在pfile里面指定的参数可以覆盖spfile里面的参数,这样就可以改正错误的参数,然后你startup file='xxx\xxx\xxx\initorcl.ora' 这里的路径就是刚才这个spfile文件。

他们都是必不可少的,有了spfile并不意味着pfile就不需要了。
   A.在数据库第一次被创建的时候,系统收集到数据库创建者设置的各个参数,生成PFILE的;然后,数据库第一次启动就是依靠这个PFILE,启动后,根据PFILE创建SPFILE文件,之后,将不再需要PFILE文件。下次启动使用的是PFILE。
B.如果将来数据库不出现故障,那么PFILE很可能一直使用。但是一旦出现spfile损坏或者需要重新弄份新的spfile,我们都可以使用pfile来建立新的spfile。

利用服务器初始参数文件验证startup数据库的过程
过程大概如下:
1、有file参数就先用file参数指定的文本参数文件来启动数据库
2、如果没有file参数指定,那么就去本地默认的位置查找服务器初始化参数文件
3、如果没有找到服务器初始化参数文件,就去默认位置寻找文本初始化参数文件


验证过程如下:
  A.默认我们前面已经看到了它是以服务器初始化参数文件启动的,因为当时我们没有指定file参数

   

   B.接下来试试指定这个file参数

   

   
   这里的value为null,就表示这里的启动是以pfile启动的
   注意这里一点不可以指定服务器参数文件spfile来启动数据库
  
C接下来我们把spfile参数文件删除掉,看看它是否最后会用pfile来启动呢

     我先删除掉我们的spfile文件,然后看下图:

   

   
   OK,这里的value又是NULL,正面这里的数据库的启动是以pfile来启动的.
  
   D.刚才我们把spfile给删除了,现在我们来重建它



   
   这个时候你回到你的%oracle_home%/database下你就又重新看到了你的spfile文件
   我们重启数据库,看看它正常没。
   
这里注意我用了startup force 这个force参数一般用来重启数据库
   
  


看,这边我们又以spfile来启动了..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值