暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PayPal Oracle数据库的隐含参数

Eygle 2015-02-05
643

在这篇小文中,我和大家分享一下PayPal数据库的隐含参数,注意,本文参考资料来自网络OOW公开文档,只是我也是首次注意到这些设置。


在图中架构,可以看到PayPal使用了大量的Exadata一体机,在几年前用户的核心数据库版本就是11.2,据说一年以前仍然是11.2.0.2的版本(不确定)。这些数据库当中的很多负载非常高,常常是超过1万的进程并发连接,超过8万/秒的SQL执行:


在公开文档中描述了PayPal如下的一个系列隐含参数设置:


*._gc_policy_time=0 Disable SPIKEs, due to DRM

*._mutex_wait_time=10 Mutex wait time to 10ms

*._sixteenth_spare_parameter='942’ ER 12326358: Will not do hard parse for 2nd time on missing objects

*._third_spare_parameter = 0 Faster RAC reconfiguration, bug 10415371 //

*.event=‘12633340 trace name context forever, level 1’ // Bug 12633340:


注意这里非常特殊的是一类 *_spare 参数,我在《Oracle DBA手记》中曾经记录过:

在Oracle数据库中,有一类参数被称为备用参数 – spare parameter,这类参数在代码中预留,在软件出现临时性问题时,可以通过小补丁启用备用参数设置开关。这些参数没有确定的含义,启用后的作用可以通过参数描述来了解。不同参数在不同的数据库版本中,可能会有完全不同的含义,如果设置了这些参数,在进行版本变换和升级时,需要确认和调整。


在PayPal的数据库中,有两个典型的Spare参数,分别是第三号、第16号参数。

这里的 _sixteenth_spare_parameter 参数被赋予的使用是“对付” ORA-00942 号错误,其作用是:如果SQL解析遇到了对象不存在的错误,那么就Cache这个信息,后续同样的SQL解析就不需要再去判定,直接返回错误

[eygle@enmoteam1 ~]$ oerr ORA 942

00942, 00000, "table or view does not exist"

// *Cause:

// *Action:

你看,如果没有这个列表,你可能永远不会知道Oracle有这么多有意思的开关可以在特定的条件下使用。

提示:每个Spare参数在不同版本中,不同的补丁中,含义都可能不同,需要特别注意。


从PayPal的文档中,我们得到的另外一个启发是:

设定参数,然后详细记录这些设置,我们见到很多用户环境,某些参数一旦设定,就再没有人知道为何设定,能否修改,以及是否可以在跨版本时进行修改。


在原文链接中,我引用了PDF整个文档Oracle官方的来源,供大家参考,其中很多有价值的信息。


微信群:今天在微信上组了一个群,可以讨论和回答一些技术问题,感兴趣的加我微信: eyglee ,还有2天,可以加入。


#恩墨有约·老盖陪你#今年计划趁着出差,和微信上的朋友增加点活动,就叫恩墨有约,每次6人,我请大家喝咖啡,一个晚上,聊点天、聊点技术都可以。要求:实名,提供信息包括:性别、手机、工作单位和职务、邮件地址给我。也可以在微博上报名,请私信 @云和恩墨 小编。

注意:2月9日晚,在深圳;2月10日晚,在福州。开约,请联系微博小编报名。



最后修改时间:2020-05-08 17:04:33
文章转载自Eygle,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论