ORACLE初始化参数文件详细文档.docx

上传人:b****6 文档编号:7354399 上传时间:2023-01-23 格式:DOCX 页数:10 大小:21.22KB
下载 相关 举报
ORACLE初始化参数文件详细文档.docx_第1页
第1页 / 共10页
ORACLE初始化参数文件详细文档.docx_第2页
第2页 / 共10页
ORACLE初始化参数文件详细文档.docx_第3页
第3页 / 共10页
ORACLE初始化参数文件详细文档.docx_第4页
第4页 / 共10页
ORACLE初始化参数文件详细文档.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

ORACLE初始化参数文件详细文档.docx

《ORACLE初始化参数文件详细文档.docx》由会员分享,可在线阅读,更多相关《ORACLE初始化参数文件详细文档.docx(10页珍藏版)》请在冰豆网上搜索。

ORACLE初始化参数文件详细文档.docx

ORACLE初始化参数文件详细文档

ORACLE初始化参数文件详细文档

1.简介

在9i之前,参数文件只有一种,它是文本格式的,称为pfile,在9i及以后的版本中,新增了服务器参数文件,称为spfile,它是二进制格式的。

这两种参数文件都是用来存储参数配置以供oracle读取的,但也有不同点,注意以下几点:

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

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

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

当然有些参数的修改必须重启数据库才能生效;

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

5)如果是手动创建数据库而不是通过DBCA,则开始创建数据库时,你只能定义pfile。

因为它是文本格式的;

现在一般普通生产库都采用spfile启动数据库,pfile确实没有用的理由了,感觉只有以下情况才会使用pfile:

1)入门学习时,为了理解初始化参数

2)创建数据库时,因为这时还没spfile

3)恢复数据库时

4)采用RAC的生产库中如果要共用spfile,可以建一个初始的pfile,然后在pfile指定spfile为共享设备文件

2.创建spfile和pfile语法

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

CREATESPFILE[='spfile_name']FROMPFILE[='pfile_name'];

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

这个与spfile参数无关(rac中共享spfile时要注意)

创建PFILE

CREATEPFILE[='pfile_name']FROMSPFILE[='spfile_name'];

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

注:

语法中创建和指定的spfile和pfile都是服务器路径

注:

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

3.数据库启动时spfile和pfile的加载顺序

初始化参数是在数据库实例启动时(startupnomount)加载。

如果startup命令中未指定pfile参数,在windows系统中数据库启动时会按如下顺序查找启动参数文件:

%ORACLE_HOME%/database/SPFILE.ora

%ORACLE_HOME%/database/SPFILE.ora

%ORACLE_HOME%/database/init.ora

在unix或linux系统中数据库启动时会按如下顺序查找启动参数文件:

%ORACLE_HOME%/dbs/SPFILE.ora

%ORACLE_HOME%/dbs/SPFILE.ora

%ORACLE_HOME%/dbs/init.ora

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

使用指定pfile启动数据库则数据库会使用指定的pfile来加载数据库参数:

命令如下:

startuppfile=''

注:

以pfile启动的实例,修改初始化参数时不能使用scope=spfile的语法

如果参数文件(不管是pfile还是spfile)中指定了spfile的参数,则还会从指定的spfile中再读取配置的参数,这样数据库的参数就包括了两个文件的内容.

4.数据库启动参数的加载顺序

加载顺序按文件中顺序读取

如果文件中有两个相同的参数名则以最后出现的为准,以下例子说明了这个问题。

如有一个spfile文件(myspfile.ora),包括两个参数:

sessions=150

processes=200

另外有一个pfile文件(mypfile.ora),里面包括三个参数,其中指定了spfile为前面的spfile文件

processes=100

sessions=100

spfile='myspfile.ora'

processes=180

当使用mypfile.ora启动数据库时,会按如下顺序读取参数

1)processes=100

2)sessions=100

3)spfile='myspfile.ora'

 3.1)sessions=150(重新加载)

 3.2)processes=200(重新加载)

4)processes=180(再次重新加载)

最后加载的数据库参数为

sessions=150

spfile='myspfile.ora'

processes=180

5.关于showparameterspfile时显示的内容

如果是采用pfile指定了spfile参数,则显示指定的spfile

如果是采用缺省的spfile启动,则显示缺省的spfile文件名,不管spfile还有没有指定其它的spfile文件。

6.关于spfile递归调用

如果出现spfile递归调用,则ORACLE启动时会报错:

SQL>startupnomount;

ORA-03113:

通信通道的文件结束

SQL>

spfile递归调用就是指

spfile1.spfile='spfile2'

spfile2.spfile='spfile1'

这样的参数配置

7.初始化参数的修改方法

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

  手动修改用于修改pfile,直接用文本编辑打开pfile修改。

要使用修改生效,须重启数据库。

  在线修改是在数据库运行时,用altersystem命令进行修改,命令如下(详细的命令语句请参考oracle官方参考文档):

altersystemsetparameter_name=parameter_value[,parameter_value]...

 [COMMENT'text']

 [DEFERRED]

 [SCOPE={MEMORY|SPFILE|BOTH}]

 [SID={'sid'|*}]

注:

[COMMENT'text']:

表示可以加注释,如ALTERSYSTEMSETJOB_QUEUE_PROCESSES=50SCOPE=BOTHDEFERREDCOMMENT=" 2008-05-19"

[DEFERRED]:

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

select*fromv$parameterwhereissys_modifiable='DEFERRED'

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

SPFILE:

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

MEMORY:

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

BOTH:

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

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

select*fromv$parameterwhereissys_modifiable='FALSE'

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

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

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

[SID={'sid'|*}]

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

8.删除初始化参数:

altersystemresetparameter_name

 [SCOPE={MEMORY|SPFILE|BOTH}]

 [SID='sid']

对于有些参数也可以使用ALTERSYSTEMSETPARAMETER=''达到相同的效果;

9.初始化参数的相关系统视图

9.1v$parameter

9.2v$parameter2

9.3v$system_parameter

9.4v$system_parameter2

9.5gv$parameter

9.6gv$parameter2

9.7gv$system_parameter

9.8gv$system_parameter2

SQL>descv$parameter;

Name            Type         NullableDefaultComments

----------------------------------------------------

NUM             NUMBER       Y       编号                

NAME            VARCHAR2(64) Y       参数名称                

TYPE            NUMBER       Y       参数类型

     (

     1-Boolean

     2-String

     3-Integer

     4-Parameterfile

     5-Reserved

     6-Biginteger

     )

VALUE           VARCHAR2(512)Y       参数值                

ISDEFAULT       VARCHAR2(9)  Y       是否为缺省值                

ISSES_MODIFIABLEVARCHAR2(5)  Y       是否允许会话级动态调整(altersessionset...)              

ISSYS_MODIFIABLEVARCHAR2(9)  Y       是否允许使用动态调整(altersystemset...)

     (

     IMMEDIATE:

可以调整且修改会立即生效;

     DEFERRED:

可以调整,但是在新建的会话中才生效;

     FALSE:

不可调整;

     )                  

ISMODIFIED      VARCHAR2(10) Y       参数在实例启动后是否被修改过              

ISADJUSTED      VARCHAR2(5)  Y       参数是否被调整

     (对于有一些参数,如规范要求是素数,但是参数里设置了合数,则ORACLE会自动调整成下一个素数)      

DESCRIPTION     VARCHAR2(64) Y       参数功能描述                

UPDATE_COMMENT  VARCHAR2(255)Y       最近的参数更新备注                

 

以下是ORACLE官方文档关于V$PARAMETER的解释

V$PARAMETERdisplaysinformationabouttheinitializationparametersthatarecurrentlyineffectforthesession.Anewsessioninheritsparametervaluesfromtheinstance-widevaluesdisplayedbytheV$SYSTEM_PARAMETERview.

以下是字段说明:

NUM

 NUMBER

 Parameternumber

 

NAME

 VARCHAR2(64)

 Nameoftheparameter

 

TYPE

 NUMBER

 Parametertype:

1-Boolean

2-String

3-Integer

4-Parameterfile

5-Reserved

6-Biginteger

 

VALUE

 VARCHAR2(512)

 Parametervalueforthesession(ifmodifiedwithinthesession);otherwise,theinstance-wideparametervalue

 

ISDEFAULT

 VARCHAR2(9)

 Indicateswhethertheparameterissettothedefaultvalue(TRUE)ortheparametervaluewasspecifiedintheparameterfile(FALSE)

 

ISSES_MODIFIABLE

 VARCHAR2(5)

 IndicateswhethertheparametercanbechangedwithALTERSESSION(TRUE)ornot(FALSE)

 

ISSYS_MODIFIABLE

 VARCHAR2(9)

 IndicateswhethertheparametercanbechangedwithALTERSYSTEMandwhenthechangetakeseffect:

IMMEDIATE-ParametercanbechangedwithALTERSYSTEMregardlessofthetypeofparameterfileusedtostarttheinstance.Thechangetakeseffectimmediately.

DEFERRED-ParametercanbechangedwithALTERSYSTEMregardlessofthetypeofparameterfileusedtostarttheinstance.Thechangetakeseffectinsubsequentsessions.

FALSE-ParametercannotbechangedwithALTERSYSTEMunlessaserverparameterfilewasusedtostarttheinstance.Thechangetakeseffectinsubsequentinstances.

 

ISMODIFIED

 VARCHAR2(10)

 Indicateswhethertheparameterhasbeenmodifiedafterinstancestartup:

MODIFIED-ParameterhasbeenmodifiedwithALTERSESSION

SYSTEM_MOD-ParameterhasbeenmodifiedwithALTERSYSTEM(whichcausesallthecurrentlyloggedinsessions'valuestobemodified)

FALSE-Parameterhasnotbeenmodifiedafterinstancestartup

 

ISADJUSTED

 VARCHAR2(5)

 IndicateswhetherOracleadjustedtheinputvaluetoamoresuitablevalue(forexample,theparametervalueshouldbeprime,buttheuserinputanon-primenumber,soOracleadjustedthevaluetothenextprimenumber)

 

DESCRIPTION

 VARCHAR2(64)

 Descriptionoftheparameter

 

UPDATE_COMMENT

 VARCHAR2(255)

 Commentsassociatedwiththemostrecentupdate

 

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

SQL>selectname,valuefromV$PARAMETERwherename='control_files';

 

NAME                                                            VALUE

-------------------------------------------------------------------------------------------------

control_files    H:

/oracle/oradata/ydgl/control01.ctl,H:

/oracle/oradata/ydgl/control02.ctl,H:

/oracle/oradata/ydgl/control03.ctl

SQL>selectname,value,ORDINALfromV$PARAMETER2wherename='control_files';

 

NAME                     VALUE                                                ORDINAL

----------------------------------------------------------------------------------------

control_files   H:

/oracle/oradata/ydgl/control01.ctl                             1

control_files   H:

/oracle/oradata/ydgl/control02.ctl                             2

control_files   H:

/oracle/oradata/ydgl/control03.ctl'                            3

 

V$PARAMETER2多了一个ORDINAL字段,表示顺序。

SQL>descv$parameter2;

Name            Type         NullableDefaultComments

----------------------------------------------------

NUM             NUMBER       Y                        

NAME            VARCHAR2(64) Y                        

TYPE            NUMBER       Y                        

VALUE           VARCHAR2(512)Y                        

ISDEFAULT       VARCHAR2(6)  Y                        

ISSES_MODIFIABLEVARCHAR2(5)  Y                        

ISSYS_MODIFIABLEVARCHAR2(9)  Y                        

ISMODIFIED      VARCHAR2(10) Y                        

ISADJUSTED      VARCHAR2(5)  Y                        

DESCRIPTION     VARCHAR2(64) Y                        

ORDINAL         NUMBER       Y                        

UPDATE_COMMENT  VARCHAR2(255)Y                        

V$SYSTEM_PARAMETER和V$PARAMETER的区别是,V$PARAMETER显示的是当前系统的初始化参数,V$SYSTEM_PARAMETER显示的是新会话将使用的初始化参数。

例如下例中,使用deferred参数修改了sore_area_size,在V$PARAMETER显示的老值,而V$SYSTEM_PARAMETER显示的是新值:

SQL>showparametersort_area_size;

 

NAME                                TYPE       VALUE

-----------------------------------------------------------------------------

sort_area_size                      integer    524288

 

SQL>altersystemsetsort_area_size=603213deferred;

 

Systemaltered

 

SQL>selectname,valuefromv$parameterwhere

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1