oracle的参数文件和控制文件

oracle的参数文件和控制文件

参数文件

pfile

初始化参数文件(Initialization Parameter 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命令在线修改。

spfile参数的三种scope

    scope=spfile 对参数的修改记录在服务器初始化参数文件中,修改后的参数在下次启动DB时生效。适用于动态和静态初始化参数。
    scope=memory 对参数的修改记录在內存中,对于动态初始化参数的修改立即生效。在重启DB后会丟失,会复原为修改前的参数值。
    scope=both 对参数的修改会同时记录在服务器参数文件和內存中,对于动态参数立即生效,对静态参数不能用这个选项
参数类型spfilememoryboth
静态参数可以,重启服务器生效不可以不可以
动态参数可以,重启服务器生效可以,立即生效,重启服务失效可以,立即生效,重启服务器仍然有效果

如果使用了服务器参数文件,则在执行alter system语句时,scope=both是default的选项。 如果沒有使用服务器参数文件,而在执行alter system语句时指定scope=spfile|both都会出错。 两者的区别 从操作系统上可以看到这两者的区别,初始化参数文件为ASCII文本文件,Spfile为数据文件。

如何判断oracle启动的时候使用spfile还是pfile?

1.通过v$spparameter视图
    使用spfile启动数据库,我们可以看到查询出来的结果是spfile
SQL> select decode(count(*),1,'spfile','pfile') from v$spparameter where rownum=1 and isspecified='TRUE';
​
DECODE
------
spfile
​
2.通过查看spfile,pfile参数
    系统使用spfile启动,在查看show parameter pfile和show parameter spfile 都能看到spfile参数文件的路径。
    系统使用pfile启动,在查看show parameter pfile和show parameter spfile时为空

pfile和spfile的互相创建

    create spfile[='xxxxx'] from pfile[='xxxx'];
    ps:通过spfile创建pfile文件(此时会在$ORACLE_HOME/dbs目录下生成pfile:initorcl.ora),当然你也可以指定参数文件的位置。
    create pfile[='xxxxx'] from spfile[='xxxx'];

使用pfile/spfile 启动数据库

    1.startup 启动次序 spfile优先于pfile。查找文件的顺序是 spfileSID.ora-〉spfile.ora-〉initSID.ora-〉init.ora(spfile优先于pfile)。
    2、startup pfile='文件目录'      使用pfile启动,则需指定完整路径,或删除spfile.
    3.如果在数据库的$ORACLE_HOME/dbs/目录下既有spfile又有pfile,使用spfile启动数据库,不需要指定参数文件路径(因为数据库会优先选择spfile启动)
    4如果在数据库的$ORACLE_HOME/dbs/目录下既有spfile又有pfile,使用spfile启动数据库,不需要指定参数文件路径(因为数据库会优先选择spfile启动)
    
    可以先用pfile启动到nomount状态,再创建spfile,然后重启一下,就是spfile启动了

控制文件

1、控制文件在数据库启动的作用对于dba来讲,oracle数据库控制文件是非常重要的文件,他是数据库创建的时候自动生成的二进制文件,其中记录了数据库的状态信息。其它任何用户都无法修改控制文件,只有数据库运行过程中,数据库实例可以修改控制文件中的信息。控制文件主要包括以下内容:
​
    1) 数据库名称,一个控制文件只能属于一个数据库。
    2) 数据库创建时间。
    3) 数据文件的名称、位置、联机、脱机状态信息。
    4) 重做日志文件的名称、位置及归档信息。
    5) 所有表空间信息。
    6) 当前日志序列号。
    7) 最近检查点信息。
​
2.控制文件在数据库启动的mount阶段被读取,数据库启动与控制文件的关系如下:
启动数据库--找到参数文件--打开参数文件--在参数文件中找到控制文件的位置--打开控制文件
​
3.控制文件中存放了创建数据库的信息、重做日志信息、数据文件及归档日志文件记录等信息。这些有价值的信息用于数据维护和管理,很多数据字典视图是从控制文件中获得的信息。
​
4、存储多重控制文件
由于控制文件非常重要,所以要求控制文件不能只有一个,通常数据库中控制文件要多于3个,并且存放在不同的磁盘上,这种使用控制文件的方法也称为控制文件的多路复用。实现多重的一个方法就是通过复制控制文件到多个位置并修改初始化参数文件中的CONTROL_FILES参数,使之包含所有控制文件名称。
  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值