PayPal Oracle数据库的隐含参数

在这篇小文中,我和大家分享一下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日晚,在福州。开约,请联系微博小编报名。

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2015-02-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏QQ音乐前端团队专栏

自己动手打造前端性能监控系统

我们从三个各方面,前端上报,数据收集和入库,数据展示来介绍了如何打造一个测速系统。

37210
来自专栏Golang语言社区

棋牌游戏服务器架构: 详细设计(二) 应用层设计

这里的应用层,指的是CenterServer、LogonServer、LogServer、RoomServer等几个服务器,另外还包括游戏模块的设计。不过游戏...

33713
来自专栏BestSDK

从体积到耗电,全方位解析SDK超级优化方法

sdk优化过程,是一段血泪史,可以吐槽的地方无数。移动端sdk不像app一样方便,sdk发布后出现任何问题,都会影响到很多家的app。 ? sdk的优化,最大的...

2253
来自专栏FreeBuf

无文件Powershell恶意程序使用DNS作为隐蔽信道

思科Talos安全团队最近发现一款Powershell恶意程序,用DNS进行双向通信。 前言 DNS是企业网络中最常用的Internet应用层协议。DNS提供域...

1789
来自专栏架构师之路

啥,又要为表增加一列属性?

需求缘起 产品第一版:用户有用户名、密码、昵称等三个属性,对应表设计: user(uid, name, passwd, nick) 第二版,产品经理增加了年龄,...

4559
来自专栏逸鹏说道

分享一个Mvc的多层架构,欢迎大家拍砖斧正

多层架构是什么? 多层架构是开发人员在开发过程当中面对复杂且易变的需求采取的一种以隔离控制为主的应对策略,关于多层架构的标准,我认为有一句话是比较有代表性的“每...

2649
来自专栏IMWeb前端团队

聊聊http/2

本文作者:IMWeb 九月 原文出处:IMWeb社区 未经同意,禁止转载 随着web的发展,http/1.x 已经很难满足现在的需求,Google 因...

1867
来自专栏运维前线

阿里&百度&腾讯&facebook&Microsoft&Google开源项目汇总

BAT && YMFT Tencent GitHub地址:https://github.com/Tencent/tinker Tinker是Android的...

2198
来自专栏编程

初创团队的 Android 应用质量保障之道

稳定性与内存优化 随着Android技术的发展各种开源库层出不穷,开发一个Android应用已经变得容易了很多。然而开发一个商业应用并不是单纯是实现业务需求那么...

1980
来自专栏互联网杂技

复杂单页应用的数据层设计

很多人看到这个标题的时候,会产生一些怀疑: 什么是“数据层”?前端需要数据层吗? 可以说,绝大部分场景下,前端是不需要数据层的,如果业务场景出现了一些特殊的需求...

3477

扫描关注云+社区