oracle 参数文件必须项,ORACLE初始化参数文件详细文档

一、pfile和spfile的区别

在9i之前,参数文件只有一种,它是文本格式的,称为pfile,在9i及以后的版本中,新增了服务器参数文件,称为spfile,它是二进制格式的。pfile位于E:\oracle\admin\gaohai\pfile目录下,spfile位于\oracle\ora90\database\目录下,两者区别如下:

1)pfile是文本文件,spfile是二进制文件;

2)对于参数的配置,pfile可以直接以文本编辑器打开手工配置,而spfile不行,必须在数据库启动后,通过sql命令进行在线修改,当然spfile也可用文本编辑器打开,把里面文本的内容复制出来放在pfile中,但决对不可以直接修改,直接修改后会使文件无法读取。

3)pfile配置改变后,要使用其生效,必须重新启动数据库,spfile的配置生效时限和作用域可以由修改参数的sql命令指定,可以立即生效,也可以不立即生效。当然有些参数的修改必须重启数据库才能生效;

4)可以用sql命令由pfile创建spfile,也可以由spfile创建pfile;

5)如果是手动创建数据库而不是通过DBCA,则开始创建数据库时,你只能定义pfile 。因为它是文本格式的;

现在一般普通生产库都采用spfile启动数据库。(怎么察看是从spfile还是pfile启动数据库?)

二、创建spfile和pfile语法

1、创建SPFILE(只能建在数据库所在的机器上)

CREATE SPFILE [= 'spfile_name'] FROM PFILE [= 'pfile_name'];

如果命令中未指定spfile的路径则会在缺省路径创建spfile文件(%ORACLE_HOME%\database\spfile.ora),这个缺省路径与spfile参数无关(rac中共享spfile时要注意);

2、创建PFILE

CREATE PFILE [= 'pfile_name'] FROM SPFILE [= 'spfile_name'];

如果命令中未指定spfile的路径则会从缺省路径(%ORACLE_HOME%\database\spfile.ora)创建pfile文件。

注:不能创建已经由数据库实例启动的spfile(在nomount状态下也不行)

三、数据库启动时spfile和pfile的加载顺序

先找spfile.ora文件,如果spfile.ora没有则找spfile.ora文件,最后才会去找init.ora的pfile文件。

使用指定pfile启动数据库则数据库会使用指定的pfile来加载数据库参数,命令如下:

startup pfile=''

如果参数文件(不管是pfile还是spfile)中指定了spfile的参数,则还会从指定的spfile中再读取配置的参数,这样数据库的参数就包括了两个文件的内容。加载顺序按文件中顺序读取,如果文件中有两个相同的参数名则以最后出现的为准。

四、初始化参数的修改方法

分为手动修改和在线修改。

1、手动修改用于修改pfile,直接用文本编辑打开pfile修改。要使用修改生效,须重启数据库。

2、在线修改是在数据库运行时,用alter system命令进行修改,命令如下

alter system set parameter_name = parameter_value [,

parameter_value ]...

[ COMMENT 'text' ]

[ DEFERRED ]

[ SCOPE = { MEMORY | SPFILE | BOTH } ]

[ SID = { 'sid' | * } ]

注:

[ COMMENT 'text' ] :表示可以加注释,如 ALTER SYSTEM SET

JOB_QUEUE_PROCESSES=50 SCOPE=BOTH DEFERRED

COMMENT=" 2008-05-19"

[ DEFERRED

]:表示所作修改只适用于将来的会话,对当前已有的会话不影响,这个参数只对少数参数有用,具体可使用的参数可以查看v$parameter视图

select * from v$parameter where issys_modifiable='DEFERRED'

[ SCOPE = { MEMORY | SPFILE | BOTH } ]:

SPFILE:修改只对SPFILE有效,不影响当前实例,需要重启数据库才能生效;

MEMORY:修改只对内存有效,即只对当前实例有效,且立即生效,但不会保存到SPFILE, 数据库重启后此配置丢失;

BOTH:顾名思义,包含以上两种,立即生效,且永久生效。

所有的参数都可以使用spfile,部份参数可以使用memory,可以使用如下SQL查询不能使用memory方式修改的参数

select * from v$parameter where issys_modifiable='FALSE'

对于ALTER SYSTEM的参数修改命令,请注意以下几点:

1)如果当前实例使用的是pfile而非spfile,则scope=spfile或scope=both会产生错误;

2)如果实例以pfile启动,则scope的默认值为MEMORY,若以spfile启动,则默认值为BOTH;

[ SID = { 'sid' | * } ]

指定修改参数的作用实例号,如果为*则表示所有实例,这个选项用于RAC数据库

五、删除初始化参数

alter system reset parameter_name

[ SCOPE = { MEMORY | SPFILE | BOTH } ]

[ SID = 'sid' ]

对于有些参数也可以使用 ALTER SYSTEM SET PARAMETER=''达到相同的效果。

六、初始化参数的相关系统视图

v$parameter

v$parameter2

v$system_parameter

v$system_parameter2

gv$parameter

gv$parameter2

gv$system_parameter

gv$system_parameter2

$PARAMETER2与V$PARAMETER的区别是当某个参数有多个值时,会显示多行,最典型的就是参数control_files,一般的数据库都会指定多个控制文件,在V$PARAMETER中只显示一行,但在V$PARAMETER2会显示多行。

$SYSTEM_PARAMETER

和V$PARAMETER的区别是,V$PARAMETER显示的是当前系统的初始化参数,V$SYSTEM_PARAMETER显示的是新会话将使用的初始化参数。例如,使用deferred参数修改了sore_area_size,在V$PARAMETER显示的老值,而V$SYSTEM_PARAMETER显示的是新值。

gv$parameter和v$parameter的区别的是gv$parameter多一个INST_ID字段(实例号),这个用于RAC数据库系统中,INST_ID用于标识是哪个实例的信息,其实所有以gv$和以v$开始的系统视图的区别都是这样的。

七、废弃参数

V$OBSOLETE_PARAMETER中含有所有的过时(obsolete)和强调(underscored)参数

过时参数,是在Oracle以前的版本中存在,但在新版本中已经淘汰了的参数,已经不再使用;而强调参数,是指那些在新版本中保留了下来,但是除非特殊需要不希望用户使用的那些参数。

在视图V$OBSOLETE_PARAMETER中,包含这些参数的名称和一个标志字ISSPECIFIED,该标志字用来指出这个参数是否在init.ora文件中已实际设置。

八、隐藏参数

数据库初始化总共有近千个,可见的只有两三百个,其它的都是隐藏参数。

隐藏参数的参数名都是以下划线开头,比较少用,一般用于进行ORACLE故障诊断或恢复数据库,或者是进行一些不成熟功能的测试。

九、自动SGA内存管理的参数

ORACLE从10g开始可以自动管理SGA了.

当初始化参数中设置了SGA_TARGET后,ORACLE会自动根据总的SGA大小动态调整SGA中几个区域的大小。当使用数据库关闭时,会将最后调整的大小记录到SPFILE中,以供下次系统启动时直接应用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值