怎么在RAC环境里SHOW PARAMETER时候可以显示HIDDEN参数

 

显示隐含参数QUERY,是DBA都知道, 可以记但我是没去记,另外在学习的时候

如何能在SHOW PARAMETER查一个参数时候能带出其他来,是最好的,往往

会有意外发现,而且也会更多了解10g,11g,9i ,8i的很多不同,而且最近MEMORY

都自动管理,要查查当前SHARED_POOL_SIZE还有去查VIEW,不能像以前

SHOW PARAMETER SHARED就成,如果SHOWPARAMETER能想下面那样

就好了,

SQL> show parameter share

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
__shared_pool_size                   big integer 148M


...

_shared_pool_max_size                big integer 0
_shared_pool_minsize_on              boolean     FALSE
_shared_pool_reserved_min_alloc      big integer 4400
_shared_pool_reserved_pct            integer     5  <=5%

...

shared_pool_reserved_size            big integer 7549747
shared_pool_size                     big integer 0
shared_server_sessions               integer
shared_servers                       integer     0

我的环境是RAC,所以带入INSTANCE参数才行

--------------------------------------------------------------------------------
<<step 1>>

login as sys, 放心大胆的去做,你想建立GV$PARAMETER也不成,

无操作可能性为0

SQL> create or replace view sys.r_gv$parameter
  2  (INST_ID, NUM , NAME , TYPE , VALUE , DISPLAY_VALUE, ISDEFAULT , ISSES_MODIFIABLE , ISSYS_MODIFIABLE , ISINSTANCE_MODIFIABLE,
  3  ISMODIFIED , ISADJUSTED , ISDEPRECATED, DESCRIPTION, UPDATE_COMMENT, HASH)
  4  as
  5  select x.inst_id,x.indx+1,ksppinm,ksppity,ksppstvl, ksppstdvl, ksppstdf,
  6  decode(bitand(ksppiflg/256,1),1,'TRUE','FALSE'),
  7  decode(bitand(ksppiflg/65536,3),1,'IMMEDIATE',2,'DEFERRED',3,'IMMEDIATE','FALSE'),
  8  decode(bitand(ksppiflg,4),4,'FALSE',decode(bitand(ksppiflg/65536,3), 0, 'FALSE', 'TRUE')),     decode(bitand(ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE'),
  9  decode(bitand(ksppstvf,2),2,'TRUE','FALSE'),
 10  decode(bitand(ksppilrmflg/64, 1), 1, 'TRUE', 'FALSE'),
 11  ksppdesc, ksppstcmnt, ksppihash
 12  from x$ksppi x, x$ksppcv y
 13  where (x.indx = y.indx)
 14  ;

View created.
--------------------------------------------------------------------------------

 

--------------------------------------------------------------------------------
<<step 2>>


一般在PRODUCTION,会建立一个DBA用的专业账号,以防误操作,

不是特别批准,是不允许用SYS用户登录的,因为你一旦登录,我们

的手机就来EMAIL了,大家都知道你犯规了。

在金融数据库,管理好的企业,会为每个DBA建立一个账号,然后

ASSIGN不同的DBA ROLE,然后AUDIT,万一有误操作,就可知道

谁干的,然后他就炒鱿鱼了。呵呵

 

grant select on r_gv$parameter to ray;
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
<<step 3>>
login as ray or other DBA dedicated user
SQL> create or replace view v$parameter
  2  as
  3  select  NUM , NAME , TYPE , VALUE , DISPLAY_VALUE, ISDEFAULT , ISSES_MODIFIABLE , ISSYS_MODIFIABLE , ISINSTANCE_MODIFIABLE,
  4  ISMODIFIED , ISADJUSTED , ISDEPRECATED, DESCRIPTION, UPDATE_COMMENT, HASH
  5  from SYS.R_GV$PARAMETER where inst_id = USERENV('Instance');


View created.
--------------------------------------------------------------------------------

 

测试一下

SQL> SQL>
SQL>
SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
_collect_undo_stats                  boolean     TRUE
_gc_dissolve_undo_affinity           boolean     FALSE
_gc_initiate_undo_affinity           boolean     TRUE
_gc_undo_affinity                    boolean     TRUE
_gc_undo_affinity_locks              boolean     TRUE
_in_memory_undo                      boolean     TRUE
_kcl_undo_grouping                   integer     32
_kcl_undo_locks                      integer     128
_optimizer_undo_changes              boolean     FALSE
_optimizer_undo_cost_change          string      10.2.0.3
_undo_autotune                       boolean     TRUE

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
_undo_debug_mode                     integer     0
_undo_debug_usage                    integer     0
_verify_undo_quota                   boolean     FALSE
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS1

不必为每个DBA帐户建一个这样的VIEW,你可以引入ROLE, 然后把ROLE

ASSIGN给每个DBA。

 

随便说一下,同9i比10g的V$SQL的内部也发生了变化,不会显示所有的CHILD QUERY,

也可用相同的方法,让DBA可以选择过去的v$SQL。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值