v$parameter视图中查询参数的时候其实都是通过x$ksppi和x$ksppcv这两个内部视图中得到的。
1. 可以通过如下方式查询当前实例的所有隐含参数:
col name for a30;
col value for a10;
select
x.ksppinm name,
y.ksppstvl value,
y.ksppstdf isdefault,
decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadj
from
sys.x$ksppi x,
sys.x$ksppcv y
where
x.inst_id = userenv('Instance') and
y.inst_id = userenv('Instance') and
x.indx = y.indx
order by
translate(x.ksppinm, ' _', ' ')
/
查询结果部分截图:
NAME VALUE ISDEFAULT ISMOD ISADJ
------------------------------ ---------- --------- ---------- -----
_xsolapi_use_olap_dml TRUE TRUE FALSE FALSE
_xsolapi_use_olap_dml_for_rank TRUE TRUE FALSE FALSE
_xtbuffer_size 0 TRUE FALSE FALSE
2. 如果想查询某一个具体的隐含参数的值,只需要在上面原基础上加上 and x.ksppinm ='XXXXX' 过滤。
例如查询 _gc_undo_affinity 。
col name for a30;
col value for a10;
select
x.ksppinm name,
y.ksppstvl value,
y.ksppstdf isdefault,
decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadj
from
sys.x$ksppi x,
sys.x$ksppcv y
where
x.inst_id = userenv('Instance') and
y.inst_id = userenv('Instance') and
x.indx = y.indx and x.ksppinm ='_gc_undo_affinity'
order by
translate(x.ksppinm, ' _', ' ')
/
NAME VALUE ISDEFAULT ISMOD ISADJ
------------------------------ ---------- --------- ---------- -----
_gc_undo_affinity TRUE TRUE FALSE FALSE
3. 修改隐含参数方法:
这里列举一个修改DRM (有bug,易导致RAC 实例崩溃)隐含参数的例子。不同隐含参数的修改不同,具体需查看文档。
方法一:(可以重启的改法)
3.1 查看此隐含参数的值。 (这里不贴代码,请参照上面自行执行)
3.2 修改隐含参数的值。
SQL> alter system set "_gc_policy_time"=0 scope=spfile sid='*';
System altered.
SQL> alter system set "_gc_undo_affinity"=false scope=spfile sid='*';
System altered.
3.3 改完了之后,需要重启生效,查看。
方法二 (不能重启)
如果暂时无法重启实例,可以使用如下命令“事实上”禁用DRM:(以下两个参数可以动态调整)
alter system set "_gc_affinity_limit"=10000000;
alter system set "_gc_affinity_minimum"=10000000;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31383567/viewspace-2134299/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31383567/viewspace-2134299/