Oracle参数查看方法小结

Oracle提供了大量的系统参数,下面是查询方法小结。

系统当前参数

系统当前参数涉及到这些视图:v$parameter、v$parameter2、v$system_parameter、v$system_parameter2和v$spparameter。

v$parameter

存放session级的参数,如果没有被"alter session"修改,默认和system级的参数值相同,下面是该视图的关键字段:
 1)NUM:参数编号;
 2)NAME:参数名;
 3)TYPE:参数类型:
  1-Boolean;
  2-String;
  3-Integer;
  4-Parameter file;
  5-保留;
  6-Big integer;
 4)VALUE:当前session的参数值;
 5)DISPLAY_VALUE:用户友好的参数值;
 6)ISSES_MODIFIABLE:true表示参数能通过"alter session"被改变,false表示不能改变;
 7)ISSYS_MODIFIABLE:参数是否能被"alter system"改变,改变后:
  IMMEDIATE:参数可以通过"alter system"改变,立即生效
  DEFERRED:参数可以通过"alter system"改变,在下一个session开始生效
  false表示不能改变;
 8)ISINSTANCE_MODIFIABLE:true表示参数值在每个实例下可以是不同的,false表示所有实例必须具有相同的值。如果ISSYS_MODIFIABLE为false,则该值总是false;
 9)ISMODIFIED:表示参数是否在实例启动后被修改
  MODIFIED:参数被使用"alter session"修改
  SYSTEM_MOD:参数被使用"alter system"修改
  FALSE:在实例启动后没有被修改
 10)ISDEPRECATED:true表示该参数被弃用,否则false;
 11)DESCRIPTION:参数的描述信息;
 12)UPDATE_COMMENT:最近一次修改的注释;
 13)HASH:参数名的哈希值。

v$system_parameter

存放实例级别的参数,新的session将从这里继承参数值。下面是该视图的关键字段:
 1)NUM:参数编号;
 2)NAME:参数名;
 3)TYPE:参数类型:
  1-Boolean;
  2-String;
  3-Integer;
  4-Parameter file;
  5-保留;
  6-Big integer;
 4)VALUE:实例级的参数值;
 5)DISPLAY_VALUE:用户友好的参数值;
 6)ISSES_MODIFIABLE:true表示参数能通过"alter session"被改变,false表示不能改变;
 7)ISSYS_MODIFIABLE:参数是否能被"alter system"改变,改变后:
  IMMEDIATE:参数可以通过"alter system"改变,立即生效
  DEFERRED:参数可以通过"alter system"改变,在下一个session开始生效
  false表示不能改变;
 8)ISINSTANCE_MODIFIABLE:true表示参数值在每个实例下可以是不同的,false表示所有实例必须具有相同的值。如果ISSYS_MODIFIABLE为false,则该值总是false;
 9)ISMODIFIED:表示该参数怎么被修改。如果"alter system"被执行,这个值将是MODIFIED;
 10)ISDEPRECATED:true表示该参数被弃用,否则false;
 11)DESCRIPTION:参数的描述信息;
 12)UPDATE_COMMENT:最近一次修改的注释;
 13)HASH:参数名的哈希值。

v$parameter2

和v$parameter相同,唯一的区别是如果一个参数有多个值,那么在v$parameter2中将有多行,而在v$parameter中则只有一行,在value中使用逗号分隔多个值。
例如参数control_files,在v$parameter中为:

name			value
--------------------------------------------------------------------------------------
control_files	E:\ORACLE\ORADATA\LY\CONTROL01.CTL, E:\ORACLE\ORADATA\LY\CONTROL02.CTL, E:\ORACLE\ORADATA\LY\CONTROL03.CTL

在v$parameter2中为:

name			value
--------------------------------------------------------------------------------------
control_files	E:\ORACLE\ORADATA\LY\CONTROL01.CTL
control_files	E:\ORACLE\ORADATA\LY\CONTROL02.CTL
control_files	E:\ORACLE\ORADATA\LY\CONTROL03.CTL

v$system_parameter2

类似于v$parameter2。

v$spparameter

用于存放服务器参数文件(spfile)的参数信息,如果服务器参数文件没有被用于启动实例,则视图每行的ISSPECIFIED列的值都为false,视图的关键字段如下:
 1)SID:参数的SID;
 2)NAME:参数名;
 3)VALUE:参数值(如果服务器参数文件没有被用于启动实例,则为null);
 4)DISPLAY_VALUE:参数值,采用用户友好的格式;
 5)ISSPECIFIED:true表示参数在服务器参数文件中指定,否则false;
 6)ORDINAL:参数值的位置(序号)(如果服务端配置文件没被用于启动实例,则为0)。只有当参数值为一个列表时才使用;
 7)UPDATE_COMMENT:最近一次修改的注释(如果服务器参数文件没有被用于启动实例,则为null)。

隐藏参数

Oracle系统中还有一类参数称之为隐藏参数(hidden parameters),是系统中使用,但Oracle官方没有公布的参数,这些参数可能是那些还没有成熟或者是系统开发中使用的参数。这些参数在所有Oracle官方提供的文档中都没有介绍,他们的命名有一个共同特征就是都以'_'作为参数的首字符,和隐藏参数相关的视图有x$ksppi、x$ksppcv和x$ksppsv。

x$ksppi

x$ksppi是v$parameter、v$parameter2、v$system_parameter和v$system_parameter2的基础表,保存参数信息,关键字段如下:
 1)ADDR:内存地址
 2)INDX:序号
 3)INST_ID:实例编号
 4)KSPPINM:参数名称
 5)KSPPITY:参数类型:
  1-Boolean;
  2-String;
  3-Integer;
  4-Parameter file;
 6)KSPPDESC:参数描述信息
 7)KSPPIFLG:标志,用来说明isses_modifiable或者issys_modifiable

x$ksppcv

保存当前session的参数值,和x$ksppi用indx关联,关键字段如下:
 1)ADDR:内存地址
 2)INDX:序号
 3)INST_ID:实例编号
 4)KSPPSTVL:参数的当前值
 5)KSPPSTDF:参数的默认值
 6)KSPPSTVF:标志字段,用来说明('Modified'、'System Modified'或is_adjusted)
 7)KSPPSTCMNT:注释

x$ksppsv

保存系统参数值,和x$ksppi用indx关联,字段和x$ksppcv基本一致。

查询隐藏参数

查询隐藏参数和当前session的参数值和默认值:

select ksppinm "Parameter Name", ksppstvl "Value", ksppstdf "Default"
  from x$ksppi x, x$ksppcv y
 where x.indx = y.indx
   and ksppinm like '/_%trace%' escape '/';

查看隐藏参数,并显示当前session和实例的参数值:

select a.ksppinm  Parameter,
       a.ksppdesc Description,
       b.ksppstvl "Session Value",
       c.ksppstvl "Instance Value"
  from x$ksppi a, x$ksppcv b, x$ksppsv c
 where a.indx = b.indx
   and a.indx = c.indx
   and a.ksppinm like '\_%' escape '\';

将a.ksppinm指定特定的参数名,可以查看指定参数的对应的值。

废弃的参数

Oracle中存在一些以前的版本中存在,但新版本中废弃的参数,可以在视图V$OBSOLETE_PARAMETER中查找到,该视图值包含两个字段,name(参数名)和ISSPECIFIED(true表示参数在参数文件中指定,false表示没有。一般情况下该值都应该为false)。

下面是查询隐藏参数和ISSPECIFIED值的方法:

SELECT name, isspecified FROM v$obsolete_parameter;

补充

v$parameter_valid_values

视图v$parameter_valid_values包含了参数的有效值列表,主要字段如下:
 1)NUM:参数编号
 2)NAME:参数名
 3)ORDINAL:同一个参数的有效值序列号(从1开始)
 4)VALUE:参数值
 5)ISDEFAULT:该值是否为参数的默认值
下面是一个例子,查看参数optimizer_features_enable的所有有效值:

select * from v$parameter_valid_values where name = 'optimizer_features_enable'

NUM		NAME						ORDINAL		VALUE		ISDEFAULT
----------------------------------------------------------------------------------
905		optimizer_features_enable	1			8.0.0		FALSE
905		optimizer_features_enable	2			8.0.3		FALSE
905		optimizer_features_enable	3			8.0.4		FALSE
905		optimizer_features_enable	4			8.0.5		FALSE
905		optimizer_features_enable	5			8.0.6		FALSE
905		optimizer_features_enable	6			8.0.7		FALSE
905		optimizer_features_enable	7			8.1.0		FALSE
905		optimizer_features_enable	8			8.1.3		FALSE
905		optimizer_features_enable	9			8.1.4		FALSE
905		optimizer_features_enable	10			8.1.5		FALSE
905		optimizer_features_enable	11			8.1.6		FALSE
905		optimizer_features_enable	12			8.1.7		FALSE
905		optimizer_features_enable	13			9.0.0		FALSE
905		optimizer_features_enable	14			9.0.1		FALSE
905		optimizer_features_enable	15			9.2.0		FALSE
905		optimizer_features_enable	16			10.1.0		FALSE
905		optimizer_features_enable	17			10.1.0.3	FALSE
905		optimizer_features_enable	18			10.1.0.4	FALSE
905		optimizer_features_enable	19			10.1.0.5	FALSE
905		optimizer_features_enable	20			10.2.0.1	TRUE
905		optimizer_features_enable	21			10.2.0.1.1	FALSE


 

你可能感兴趣的:(oracle)