首页 |缤纷校园 |心理援助 |英语世界 |公务员 |考研天地 |资格考试 |电脑认证 |免费论文 |实用文档 |求职就业 |论坛 |网络课堂 |留言版
 电脑认证首页     考试专题 考试提醒 计算机等级考试 计算机认证水平考试 IT认证 论坛
 最近更新
· [备考指南]用showparameter直接显示O…
· [备考指南]导致checkpoint进程耗用大…
· [备考指南]把SQL结果中几行值串起来的…
· [备考指南]Oracle数据库中获取固定记…
· [计算机专题]新手初用宽带路由器要注意…
· [计算机专题]ASP网站远程客户实现功能
· [计算机专题]快速初始化Variant和Strin…
· [计算机专题]全国计算机等级考试准考证…
· [学习辅导]什么是合格交换机
· [学习辅导]无法共享上网,源自IP突然…
 精品课程
· [精品课程推荐]08年投资项目管理师考…
· [精品课程推荐]08年职称日语考试辅导…
· [精品课程推荐]08年环境影响评价师辅…
· [精品课程推荐]08年质量资格考试辅导…
· [精品课程推荐]08年会计职称辅导报精…
· [精品课程推荐]08年建筑师考试辅导京…
· [精品课程推荐]08职称英语考试辅导王…
· [精品课程推荐]08年咨询工程师考试名…
· [精品课程推荐]08年监理工程师考试辅…
· [精品课程推荐]经济师考试网上辅导报…
 考试动态
· [二级考试动态]重庆:计算机等级考试考点…
· [二级考试动态]2008年计算机等级考试时间…
· [二级考试动态]上海:2008年上半年全国计…
· [二级考试动态]北京:2007年9月计算机等级…
· [二级考试动态]2007年12月全国计算机职业…
· [二级考试动态]青岛:2008年上半年计算机…
· [二级考试动态]宁夏:2007年9月计算机等级…
· [二级考试动态]北京地区计算机等级考试10…
· [二级考试动态]北京:07年下半年计算机等…
· [二级考试动态]2008年4月全国计算机等级考…
 试题下载
· [试题下载]2007年计算机等级考试二级…
· [试题下载]2007年9月计算机等级考试二…
· [试题下载]2007年9月二级VB试题答案
· [试题下载]2007年9月计算机二级VB模拟…
· [试题下载]2007年9月计算机二级VB模拟…
· [试题下载]2007年9月计算机二级VF模拟…
· [试题下载]2007年9月计算机二级VB模拟…
· [试题下载]2007年9月计算机等级考试二…
· [试题下载]VC++中利用/GS开关防止缓冲…
· [试题下载]2007年4月计算机等级考试二…
 学习辅导
· [学习辅导]系统无法自动保存设置
· [学习辅导]用C#把文件转换为XML
· [学习辅导]C#中用API实现MP3等音频文…
· [学习辅导]C#实现的18位身份证格式验…
· [学习辅导]对C#泛型中的new()约束的一…
· [学习辅导]C语言中数组和指针的互操作
· [学习辅导]C/C++数组名与指针区别深入…
· [学习辅导]如何才能修改系统表,比如…
· [学习辅导]怎样使用一个查询获得数据…
· [学习辅导]为什么打开表有时也会提示…
 

用showparameter直接显示Oracle隐含参数

文章录入:editor002    责任编辑:editor002   2008-5-6 15:52:51  来源:本站原创  点击数:
 

  Oracle数据库的启动用到了初始化参数,一般情况下可以在sqlplus里用show parameter 来获得。而Oracle数据库为了debug 或者解决一些特殊的问题,还提供了一些以“_”开头的隐含参数。 网络上有一些script可以让我们轻松检查这些隐含参数. 下面我们来详细介绍一下如何直接在sqlplus 用show parameter来获取隐含参数?

  用sqlplus里的show parameter来直接查看Oracle隐含参数:

  1.首先,我们需要了解sqlplus是如何通过show parameter获得参数的。大家只需通过sql_trace的方式可以发现。

  sqlplus serol/luo

  alter session set sql_trace=true;

  show parameter optimizer

  NAME TYPE VALUE

  -------------------- -----------------

  optimizer_dynamic_sampling integer 1

  optimizer_features_enable string 9.2.0.1

  optimizer_index_caching integer 0

  optimizer_index_cost_adj integer 1

  optimizer_max_permutations integer 2000

  optimizer_mode string RULE

  exit

  到udump底下找到trace文件,里面的最主要的语句是:

  SELECT NAME name_col_plus_show_param,DECODE(TYPE,1,'boolean',2,'string',3,'integer',4,'file',6,'big

  integer','unknown') TYPE,VALUE value_col_plus_show_param FROM V$PARAMETER WHERE UPPER(NAME) LIKE UPP

  ER('%optimizer%') ORDER BY name_col_plus_show_param,ROWNUM

  可以看到,sqlplus的show parameter实际上就是查询V$PARAMETER .

  2.再来看一下v$parameter的定义。

  SELECT * FROM v$fixed_view_definition

  WHERE view_name = 'V$PARAMETER';

  select NUM , NAME , TYPE , VALUE , ISDEFAULT , ISSES_MODIFIABLE , ISSYS_MODIFIABLE , ISMODIFIED , ISADJUSTED , DESCRIPTION, UPDATE_COMMENT from GV$PARAMETER where inst_id = USERENV('Instance')

  SELECT * FROM v$fixed_view_definition

  WHERE view_name = 'GV$PARAMETER';

  select x.inst_id,x.indx+1,ksppinm,ksppity,ksppstvl,ksppstdf,

  decode(bitand(ksppiflg/256,1),1,'TRUE','FALSE'),

  decode(bitand(ksppiflg/65536,3),1,'IMMEDIATE',2,'DEFERRED',

  3,'IMMEDIATE','FALSE'), decode(bitand(ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE'),

  decode(bitand(ksppstvf,2),2,'TRUE','FALSE'), ksppdesc, ksppstcmnt

  from x$ksppi x, x$ksppcv y

  where (x.indx = y.indx) and ( (translate(ksppinm,'_','#') not like '#%') or (ksppstdf = 'FALSE') )

  看到上面最关键的 (translate(ksppinm,'_','#') not like '#%')的条件了吗?,就是它把开头为"_" 的隐含参数给过滤掉了。当然,ksppstdf = 'FALSE' 的条件是为了保证如果已经手动改过隐含参数,show parameter还会显示改隐含参数。

 3.我们可以伪造一个v$parameter, 去掉过滤"_"的条件,就可以成功了。

  注意:由于是改动系统的内部设置,所以大家一定要特别留意。

  一定要以一个仅用于数据库管理,不会参加任何程序活动的管理性数据库用户来伪造这个v$parameter,以免发生意外。而且,最好是在测试环境中玩,而不要跑到生产环境里面。下面假设这个用户名为:rollingpig.

  以sys 登陆

  connect / as sysdba

  create view my_v$parameter_with_hidden (NUM,NAME , TYPE , Value , ISDEFAULT , ISSES_MODIFIABLE , ISSYS_MODIFIABLE ,ISMODIFIED , ISADJUSTED, DESCRIPTION, UPDATE_COMMENT)

  as

  select x.indx+1,ksppinm,ksppity,ksppstvl,ksppstdf,

  decode(bitand(ksppiflg/256,1),1,'TRUE','FALSE'),

  decode(bitand(ksppiflg/65536,3),1,'IMMEDIATE',2,'DEFERRED',

  3,'IMMEDIATE','FALSE'), decode(bitand(ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE'),

  decode(bitand(ksppstvf,2),2,'TRUE','FALSE'), ksppdesc, ksppstcmnt

  from x$ksppi x, x$ksppcv y

  where (x.indx = y.indx);

  grant select on my_v$parameter_with_hidden to rollingpig;

  以 rollingpig 用户连接,创建同义词:

  create synonym v$parameter for sys.my_v$parameter_with_hidden ;

  4.现已成功,我们来测试一下。

  以rollingpig 用户登陆:

  show parameter optimizer

  SQL> show parameter optimizer

  NAME TYPE VALUE

  ---------------------------------- -------------------------------- _optimizer_adjust_for_nulls boolean TRUE

  _optimizer_choose_permutation integer 0

  _optimizer_cost_model string CHOOSE

  _optimizer_degree integer 0

  _optimizer_dyn_smp_blks integer 32

  _optimizer_join_sel_sanity_check boolean FALSE

  _optimizer_mode_force boolean TRUE

  _optimizer_new_join_card_computation boolean TRUE

  _optimizer_percent_parallel integer 101

  _optimizer_search_limit integer 5

  _optimizer_skip_scan_enabled boolean TRUE

  _optimizer_sortmerge_join_enabled boolean TRUE

  _optimizer_system_stats_usage integer 0

  _optimizer_undo_changes boolean FALSE

  _optimizer_undo_cost_change string 9.2.0.1

  optimizer_dynamic_sampling integer 1

  optimizer_features_enable string 9.2.0.1

  optimizer_index_caching integer 0

  optimizer_index_cost_adj integer 1

  optimizer_max_permutations integer 2000

  optimizer_mode string RULE

  以"_"开头的隐含参数一个给跑出来了,optimizer开头的还真不少 :D

  还有一些明显是测试用的hidden parameter

  SQL> show parameter test

  NAME TYPE VALUE

  ------------------------- --------------------------------

  _ipc_test_failover integer 0

  _ipc_test_mult_nets integer 0

  _test_ksusigskip integer 5

  _test_param_1 integer 25

  _test_param_2 string

  _test_param_3 string

  _test_param_4 string

  _test_param_5 integer 25

  _test_param_6 big integer 0

  注意:本文中的示例仅在测试环境中实现,请大家不要在生产环境中尝试。

查找更多相关信息请登陆:考资网(www.kaozi.com)

  • 上一个文章:

  • 下一个文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    关于本站 - 广告服务 - 站内导航 - 网站声明 - 友情链接 - 联系我们
    Copyright©2003-2008 www.dastu.com, All Rights Reserved.

    心语心愿科技(北京)有限责任公司 版权所有

    鄂ICP备05000022号