视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
参数文件视图
2020-11-09 07:47:52 责编:小采
文档

用过Oracle的朋友都知道,现在绝大部分Oracle数据库使用的是基于服务器的参数文件。对于查询当前数据库实例级别,system级别,session级别参数的具体设置有些时候很容易混淆。本文主要介绍了Oracle数据库参数使用的相关视图(V$PARAMETER,V$PARAMETER2,V$SY

用过Oracle的朋友都知道,现在绝大部分Oracle数据库使用的是基于服务器的参数文件。对于查询当前数据库实例级别,system级别,session级别参数的具体设置有些时候很容易混淆。本文主要介绍了Oracle数据库参数使用的相关视图(V$PARAMETER,V$PARAMETER2,V$SYSTEM_PARAMETER,V$SYSTEM_PARAMETER2,V$SPPARAMETER),以及通过查询Oracle视图来获得不同情形下的参数值并进行对比。

1、对比有关参数视图

b、V$PARAMETER2

c、V$SYSTEM_PARAMETER

d、V$SYSTEM_PARAMETER2

e、V$SPPARAMETER

a、查看session级别的参数
--基于session级别可以直接使用show parameter 方式
--演示环境
scott@USBO> select * from v$version where rownum<2;

BANNER
-------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

scott@USBO> show parameter cursor_shar

NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
cursor_sharing string EXACT

scott@USBO> select name,value,isses_modifiable,issys_modifiable,isinstance_modifiable
 2 from v$parameter where name='cursor_sharing';

NAME VALUE ISSES_MODIFIABL ISSYS_MODIFIABLE ISINSTANCE_MODI
------------------------------ --------------- --------------- --------------------------- ---------------
cursor_sharing EXACT TRUE IMMEDIATE TRUE

scott@USBO> alter session set cursor_sharing='SIMILAR'; --->上面的查询可知session级别为true,即可修改

Session altered.

scott@USBO> show parameter cursor_shar -->再次查看,修改已经生效

NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
cursor_sharing string SIMILAR

b、查看基于实例级别的参数
--基于实例级别的参数需要通过V$SYSTEM_PARAMETER访问
scott@USBO> select name,value from v$system_parameter where name='cursor_sharing';

NAME VALUE
------------------------------ ---------------
cursor_sharing EXACT --->可以看到此时的值依旧是exact,并没有受到之前修改的影响

scott@USBO> alter system set cursor_sharing='FORCE'; --->将参数cursor_sharing进行基于系统级别进行修改

System altered.

scott@USBO> show parameter cursor_sharing --->此时可以看到当前session级别该参数从system级别派生

NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
cursor_sharing string FORCE 

scott@USBO> alter session set cursor_sharing='EXACT'; --->再次基于session级别进行修改 

Session altered.

scott@USBO> show parameter cursor_shar --->此时查询到session的值变为EXACT,那system级别呢?肯定是FORCE,大家自行验证

NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
cursor_sharing string EXACT 

c、演示v$parameter与v$parameter2的差异
scott@USBO> show parameter control_files;

NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
control_files string /u03/database/usbo/oradata/con
 trol01.ctl, /u03/database/usbo
 /oradata/control02.ctl
scott@USBO> select name,value from v$parameter where name='control_files';

NAME VALUE
------------------------------ ------------------------------------------------------------
control_files /u03/database/usbo/oradata/control01.ctl, /u03/database/usbo
 /oradata/control02.ctl

--查询v$parameter2时,对于存在多个参数值的参数,在这个视图中分为多行进行列出,如下
--对于v$system_parameter与v$system_parameter2存在类似的情形,不再演示
scott@USBO> select name,value from v$parameter2 where name='control_files';

NAME VALUE
------------------------------ ------------------------------------------------------------
control_files /u03/database/usbo/oradata/control01.ctl
control_files /u03/database/usbo/oradata/control02.ctl

d、关于v$spparameter
--该视图可以用于判断当前数据库使用的是pfile还是spfile来启动
scott@USBO> select distinct isspecified from v$spparameter;

ISSPECIFIED
------------------
TRUE --->第一个值为TRUE,spfile启动
FALSE

goex_admin@MFTST> select distinct isspecified from v$spparameter;

ISSPEC
------
FALSE --->为false,pfile文件启动数据库 

goex_admin@MFTST> select name,value from v$spparameter where name='control_files'; 

NAME VALUE
------------------------- ------------------------------------------------------------
control_files --->由于为pfile启动,所以查询不到任何信息

goex_admin@MFTST> select count(*) from v$spparameter where isspecified='TRUE';

 COUNT(*)
---------- --->列isspecified没有一个值为TRUE,同样是因为使用了pfile
 0 

对于spfile启动下的v$spparameter,对于存在多个参数值的参数,在这个视图中也分为多行进行列出 
scott@USBO> select name,value from v$spparameter where name='control_files';

NAME VALUE
------------------------------ ------------------------------------------------------------
control_files /u03/database/usbo/oradata/control01.ctl
control_files /u03/database/usbo/oradata/control02.ctl

下载本文
显示全文
专题