Oracle数据库系统根据初始化参数文件init.ora中设置的参数来配置自身的启动,每个实例在启动之前,首先读取这些参数文件中设置的不同参数。
Oracle系统中的参数,根据系统使用情况可以简单分为两大类:
普通参数:也就是Oracle系统正常使用的一些参数,
非凡参数:包括三种,过时参数、强调参数和隐藏参数。
随着Oracle数据库新版本的发布,相应每次都会增加或者删除一些参数。下面具体介绍如何查询当前系统版本中的各种参数情况。
一、过时参数和强调参数
Oracle数据库中,系统提供了几个视图可以查看系统参数的情况。视图V$OBSOLETE_PARAMETER中含有所有的过时(obsolete)和强调(underscored)参数。
这里首先说明一下什么是Oracle的过时(obsolote)和强调(underscored)参数,过时参数,顾名思义就是在Oracle以前的版本中存在,但在新版本中已经淘汰了的参数,已经不再使用;而强调参数,是指那些在新版本中保留了下来,但是除非非凡需要不希望用户使用的那些参数。在视图V$OBSOLETE_PARAMETER中,包含这些参数的名称和一个标志字ISSPECIFIED,该标志字用来指出这个参数是否在init.ora文件中已实际设置。下面的SQL脚本列出了当前系统中所有的过时参数名称以及它们是否在当前系统中设定。
/*Formattedon2010-5-1217:46:27(QP5v5.115.810.9015)*/
SELECTname,isspecifiedFROMv$obsolete_parameter;
上面谈到,Oracle系统并没有将V$OBSOLETE_PARAMETER视图中的所有参数均丢弃,而是将其中的一部分转换为强调参数,下面就来讨论如何查看这些参数是已被丢弃还是被转换。这可以通过系统视图X$KSPPO来查看,该视图中包含一个名为KSPPOFLAG的字段,用来指明该参数在当前版本中是被丢弃还是被强调,假如该值为1,则表示该参数已被丢弃,该值为2,则表明该参数现为强调参数。
/*Formattedon2010-5-1217:46:06(QP5v5.115.810.9015)*/
SELECTkspponm,DECODE(ksppoflg,
1,
'Obsolete',
2,
'Underscored')
FROMx$ksppo
ORDERBYkspponm;
注:该视图只在sys用户下可以看到。
二、隐藏参数
Oracle系统中还有一类参数称之为隐藏参数(hiddenparameters),是系统中使用,但Oracle官方没有公布的参数,这些参数可能是那些还没有成熟或者是系统开发中使用的参数。这些参数在所有Oracle官方提供的文档中都没有介绍,他们的命名有一个共同特征就是都以'_'作为参数的首字符.下面的查询可以得到当前系统中的所有隐藏参数,需要以sys用户登陆,查看两个视图:x$ksppi,x$ksppcv.
/*Formattedon2010-5-1217:45:46(QP5v5.115.810.9015)*/
SELECTksppinm,ksppstvl,ksppdesc
FROMx$ksppix,x$ksppcvy
WHEREx.indx=y.indxANDTRANSLATE(ksppinm,'_','#')LIKE'#%';
或者用:
/*Formattedon2010-5-1217:07:26(QP5v5.115.810.9015)*/
SELECTi.ksppinmname,
i.ksppdescdescription,
CV.ksppstvlVALUE,
CV.ksppstdfisdefault,
DECODE(BITAND(CV.ksppstvf,7),
1,'MODIFIED',
4,'SYSTEM_MOD',
'FALSE')
ismodified,
DECODE(BITAND(CV.ksppstvf,2),2,'TRUE','FALSE')isadjusted
FROMsys.x$ksppii,sys.x$ksppcvCV
WHEREi.inst_id=USERENV('Instance')
ANDCV.inst_id=USERENV('Instance')
ANDi.indx=CV.indx
ANDi.ksppinmLIKE'/_%'ESCAPE'/'
ORDERBYREPLACE(i.ksppinm,'_','');
三、系统当前参数
下面的脚本以英文字母顺序列出了系统当前使用的所有参数。在列出的参数中,假如参数名称前面有#这个符号,则表示该参数没有明确指定,采用了系统中的默认参数。
/*Formattedon2010-5-1217:44:11(QP5v5.115.810.9015)*/
SELECTDECODE(isdefault,'TRUE','#'),
DECODE(isdefault,'TRUE',RPAD(name,43),RPAD(name,45)),
VALUE
FROMv$parameter
ORDERBYname;
注意:上面的SQL脚本没有列出系统中的隐藏参数。
以上内容整理自网络