ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle 数据库两种参数文件

oracle 数据库两种参数文件

原创 Linux操作系统 作者:pyzwj 时间:2012-09-29 15:57:52 0 删除 编辑

数据库参数文件分为二类:

1.初始参数文件:pfile(initialization parameter file)
2.
服务器参数文件:spfile(server-side parameter file)
主要的区别是:
1.pfile
是文本文件,spfile是二进制文件
2.pfile
可以通过文本编辑器修改,spfile主要是通过alter system set parameter=value [scope=memory|spfile|both]修改

oracle启动时,读取参数文件的顺序是:
1.spfile$ORACLE_SID.ORA(
创建数据库时创建的spfile)
2.spfile.ora(oracle
缺省spfile文件)
3.init$ORACLE_SID.ora(
创建数据库时创建的pfile)
4.init.ora(oracle
缺省pfile文件)
oracle
会按顺序读出这些参数文件,如果在1没有找到就去找2,直到找到。

和参数文件相关常用SQL如下:

1.查看当前使用的spfile和pfile的位置:show parameter spfile/show parameter pfile

2.查看参数文件的具体设置:show parameters

3.从spfile获取pfile:

create pfile='pfilesid.ora' from spfile

create pfile='pfilesid.ora' from spfile='/$ORACLE_HOME/dbs/spfile.ora'

4.修改参数

alter system set parameter=value [scope=memory|spfile|both]
1.
修改后当前实例起作用,重启数据库不起作用:scope=memory
2.
修改后当前实例不起作用,下次重启数据库才起作用:scope=spfile
3.
修改后当前实例起作用,下次重启数据库也起作用:scope=both
Notice
:命令alter system set parameter=value在没有加scope选项时,默认值是什么呢?多数朋友可能不加思索就会回答both这答案,实际的情况是,当oracle在以spfile参数启动时,默认值是both,而以pfile启动时,默认值是memory,也就是只修改当前值。所以如果不能确定启动的参数文件,可以用show parameter spfile查看。

5.指定初始参数文件启动数据库:startup pfile='/$ORACLE_HOME/dbs/init$ORACLE_SID.ora'
不能以指定服务器参数文件spfile来启动数据库,可以先将spfile转换成pfile,再用这个命令来达到目的。

6.查看系统是以pfile还是spfile启动:show parameter spfile。如果是null值,就是pfile启动的。

 

2.参数文件的动作原理
oracle
实例在启动时,会去读取参数文件中的配置,这个过程是这样的:

数据库的startup命令中可以指定以哪个pfile来启动,但是请注意,只能指定pfile,不 能指定spfile。

当使用不带pfile 子句的startup 命令时,Oracle 将从平台指定的默认位置上的服务器 参数文件(spfile) 中读取初始化参数。Oracle查找spfile或者init.ora的顺序是:在平台指定的默认位置上,Oracle首先查找名为spfile$ORACLE_SID.ora的文件,如果没有就查找spfile.ora文件,还没有的话,就找init$ORACLE_SID.ora文件。

在$ORACLE_BASE\admin\db_name\spfile下,你可以看到一个类似这样init.ora.1 92003215317]名字的文件,这就是初始化参数文件,只是跟上了时间戳。对于Oracle920 ,缺省的就使用spfile启动,但是这个spfile不是凭空而来,而是根据这个文件创建而来 ,你可以去掉这个长后缀,就是标准的pfile文件了。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28194062/viewspace-745464/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-09-25

  • 博文量
    63
  • 访问量
    303311