作者:胡淮杨
隐含参数是数据库参数名中前缀为“_”的参数,在未作明确设定值的情况下,无法通过简单的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、对于新功能启用,建议评估相关隐含参数的特性机制
|