查看原文
其他

Oracle 数据库隐含参数使用的原则和方法

胡淮杨 twt企业IT社区 2022-07-03

隐含参数是数据库参数名中前缀为“_”的参数,在未作明确设定值的情况下,无法通过简单的show parameter/spparameter查询到设定值。其有如下几个使用原则:

1、隐含参数并不能覆盖所有问题,也不能解决所有问题;

2、只是解决某一特定场景的workaround;

3、必须在测试环境测试验证后才能在生产环境中使用;

4、受应用自身特点,非共性问题,不建议推广;

5、建议经过oracle原厂工程师确认后再使用;

与隐含参数相关的基表,可以通过10046跟踪的方法找到:


如上图可以看到有两张x$开头的基表,分别为x$ksppi(Kernel Service Parameter Parameter Information)和x$ksppcv(Kernel Service Parameter Parameter Current Value),两张基表基本包含了所有的数据库隐含参数。

两张基表的描述分别如下:


获取隐含参数的方法(变量在&name中自行输入):

select a.ksppinm name,b.ksppstdf default_on,b.ksppstvl value,a.ksppdesc description from x$ksppi a,x$ksppcv b where a.indx=b.indx and substr(a.ksppinm,1,1)='_' and a.ksppinm like '%&name%' order by a.ksppinm;

在11.2.0.4.8的数据库版本中,一共包含2500多个隐含参数,且每个数据库版本的隐含参数数量可能会有变化,甚至某些隐含参数在不同版本中的缺省值不同,这是需要特别注意的地方。

以参数中有ADG字样的举例,通过SQL查询,大致判断与ADG相关的隐含参数如下:

隐含参数的用途分类,大致有如下几方面:

协助问题分析

功能特性控制开关

阀值大小设置调整

应急处理及手工控制

根据数据库最优设计及长期运维经验,部分推荐设置的隐含参数如下:

修改隐含参数的设置时,需要用双引号将参数名在等号左边括起来,并使用alter语句进行更改,或者直接在pfile参数文件中进行修改。

综上对隐含参数的描述,总结如下:

1、能用简单方法解决问题就不要把问题复杂化;

2、应谨慎设置任何的隐含参数;

3、需充分了解隐含参数的特性再使用;

4、对于新功能启用,建议评估相关隐含参数的特性机制


更多相关文章,请点击阅读原文


长按二维码关注公众号

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存