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参数,使之包含所有控制文件名称。

文章链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。