客服微信
本文为云贝教育 刘峰 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。
V$PARAMETER displays information about the initialization parameters that are currently in effect for the session. A new session inherits parameter values from the instancewide values displayed by the V$SYSTEM_PARAMETER view
显示当前对会话有效的初始化参数的信息。一个新的会话从V$SYSTEM_PARAMETER视图显示的实例范围的值中继承参数值
视图下的几个重要列(下面的几个视图中也存在这个几个列,类同)
ISSES_MODIFIABLE: 表明当前参数是否够基于session级别进行修改(ALTER SESSION (TRUE) or not (FALSE))
ISSYS_MODIFIABLE: 表明当前参数是否够基于system级别进行修改(ALTER SYSTEM)以及改变生效的情形
IMMEDIATE,立即生效(不考虑是否用pfile或spfile启动);
DEFERRED,延迟生效,后续新的session中有效(不考虑是否用pfile或spfile启动);
FALSE,参数不能被修改,除非使用了spfile参数文件启动,后续新的session中有效
ISINSTANCE_MODIFIABLE:是否为实例级别可修改参数(ALTER SYSTEM),主要是考虑RAC环境
TRUE,表明该参数可以不同于其他实例
FALSE,表名该参数在所有实例中必须使用相同的值
ISPDB_MODIFIABLE: 是否PDB级别可以修改
V$PARAMETER2 displays information about the initialization parameters that are currently in effect for the session, with each list parameter value appearing as a row in the view. A new session inherits parameter values from the instance-wide values displayed in the V$SYSTEM_PARAMETER2 view.
Presenting the list parameter values in this format enables you to quickly determine the values for a list parameter. For example, if a parameter value is a, b, then the V$PARAMETER view does not tell you if the parameter has two values (both a and b) or one value (a, b).
V$PARAMETER2 makes the distinction between the list parameter values clear
V$PARAMETER2显示当前的初始化参数信息效果,每个列表参数值在视图中显示为一行。一个新的类中显示的实例范围的值继承参数值V$SYSTEM_PARAMETER2视图。
以这种格式显示列表参数值使您能够快速确定列表参数的值。例如,如果参数值为a, b,则V$ parameter视图不会告诉您参数是有两个值(a和b)还是只有一个值(a, b)。
V$PARAMETER2使列表参数值之间的区别变得清晰。
V$SYSTEM_PARAMETER displays information about the initialization parameters that are currently in effect for the instance.
A new session inherits parameter values from the instance-wide values.
显示的是基于实例级别参数的相关信息,新的session同样会从实例级别进行派生
V$SYSTEM_PARAMETER2 displays information about the initialization parameters that are currently in effect for the instance, with each list parameter value appearing as a row in the view. A new session inherits parameter values from the instance-wide values.
与V$PARAMETER,V$PARAMETER2相类似,V$SYSTEM_PARAMETER2用于展示实例级别且一个参数有多个值分多行列出的情形
displays information about the contents of the server parameter file. If a server parameter file was not used to start the instance, then each row of the view will contain FALSE in the ISSPECIFIED column.
这个视图列出的是基于服务器参数文件中的参数信息,如果没有使用服务器参数文件启动实例,则视图中每一行ISSPECIFIED列的值为FALSE
--基于session级别可以直接使用show parameter方式查看参数,因为该命令底层调用的就是v$parameter --以可以在会话级别修改的参数cursor_sharing为例 1、查看cursor_sharing默认参数 SYS@ORCLCDB> show parameter cursor_sharing NAME TYPE VALUE ------------------------------------ -------------------------------- ------------------------------ cursor_sharing string EXACT 2、查看cursor_sharing可以修改的范围 SYS@ORCLCDB> col name for a30 SYS@ORCLCDB> col value for a30 SYS@ORCLCDB> select name,value,isses_modifiable,issys_modifiable,ISPDB_MODIFIABLE,isinstance_modifiable 2 from v$parameter where name='cursor_sharing'; NAME VALUE ISSES ISSYS_MOD ISPDB ISINS ------------------------------ ------------------------------ ----- --------- ----- ----- cursor_sharing EXACT TRUE IMMEDIATE TRUE TRUE 3、在会话级别修改cursor_sharing SYS@ORCLCDB> alter session set cursor_sharing='SIMILAR'; Session altered. 4、查看会话级别的cursor_sharing己修改成功 SYS@ORCLCDB> show parameter cursor_sharing NAME TYPE VALUE ------------------------------------ -------------------------------- ------------------------------ cursor_sharing string SIMILAR 5、查看系统级别的cursor_sharing参数 SYS@ORCLCDB> select name,value from v$system_parameter where name='cursor_sharing'; NAME VALUE ------------------------------ ------------------------------ cursor_sharing EXACT -->还是原来的默认值 6、在系统级别修改cursor_sharing参数 SYS@ORCLCDB> alter system set cursor_sharing='FORCE'; System altered. 7、再次查看当前会话参数 SYS@ORCLCDB> show parameter cursor_sharing NAME TYPE VALUE ---------------------- --------------------- ------------------------------ cursor_sharing string FORCE -->发现继承了系统级别的参数值
1、show parameter查看control_files SYS@ORCLCDB> show parameter control_files NAME TYPE VALUE ------------------------------------ ---------- ------------------------------ control_files string /opt/oracle/oradata/ORCLCDB/co ntrol01.ctl, /opt/oracle/orada ta/ORCLCDB/control02.ctl, /opt /oracle/oradata/ORCLCDB/contro l03.ctl 2、v$parameter查看control_files SYS@ORCLCDB> select name,value from v$parameter where name='control_files'; NAME VALUE ------------------------------ ------------------------------ control_files /opt/oracle/oradata/ORCLCDB/co ntrol01.ctl, /opt/oracle/orada ta/ORCLCDB/control02.ctl, /opt /oracle/oradata/ORCLCDB/contro l03.ctl 3、v$parameter2查看control_files SYS@ORCLCDB> select name,value from v$parameter2 where name='control_files'; NAME VALUE ------------------------------ ------------------------------ control_files /opt/oracle/oradata/ORCLCDB/control01.ctl control_files /opt/oracle/oradata/ORCLCDB/control02.ctl control_files /opt/oracle/oradata/ORCLCDB/control03.ctl
区别就在于v$parameter2针对v$parameter中存在多条记录的参数,如controfile分开进行展示。
该视图可以用于判断当前数据库使用的是pfile还是spfile来启动
SYS@ORCLCDB> select distinct isspecified from v$spparameter; ISSPEC ------ TRUE --->第一个值为TRUE,spfile启动 FALSE 如果上面的值只有FALSE,表示pfile启动 SYS@ORCLCDB> select name,value from v$spparameter where name='control_files'; NAME VALUE ------------------------------ ------------------------------ control_files /opt/oracle/oradata/ORCLCDB/co ntrol01.ctl control_files /opt/oracle/oradata/ORCLCDB/co ntrol02.ctl control_files /opt/oracle/oradata/ORCLCDB/co ntrol03.ctl --->由于为spfile启动,所以查询到控制文件信息,同时结果有多条会多行展示;如果是pfile,查询不到任何信息 SYS@ORCLCDB> select count(*) from v$spparameter where isspecified='TRUE'; COUNT(*) ---------- 27 --->由于为spfile启动,所以结果非0;如果是pfile,结果为0
1、对于Oracle数据库参数文件存在多个视图可以查询其值
2、v$paraemter和v$parameter2视图主要是查询基于session级别的参数的相关信息,v$parameter2对于同一个参数多个值分多行的形式展开;
3、v$system_parameter和v$system_parameter2是查询基于system实例级别的参数的相关信息,v$system_parameter2同样用于一个参数多值分行展开
4、v$spparameter主要用于检查当前是否使用spfile方式启动,同时可以查看哪些参数是spfile指定的