Tag Archives: Oracle

PHP 与 Oracle DRCP

Oracle 对 PHP 的支持一直是不错的(只是国内好像 PHP + Oracle 的开发并不多)。 Oracle 11g 中的新特性数据库驻留连接池(Database Resident Connection Pool,DRCP) 对 PHP 应用进一步扩展带来了一种可能。

这个特性应该重点针对 PHP 应用的。PHP 不支持真正的多线程,非持久连接非常消耗 CPU 资源,扩展性也差;持久连接扩展性好了一点,但是又额外占用更多的内存资源(PHP 之父在几年前的一个 Step-by-Step 优化演示的文章中很形象的说明了连接开销对应用的影响)。DRCP 的出现能更好的缓解上述两个问题,其共享连接能跨 Apache 与中间件节点,但共享的连接是基于数据库用户的,比如 Scott 用户登录到 DB 上的所有连接间共享。

Oracle_DRCP.jpg

Oracle 官方披露的测试数据是,在 4 CPU Intel Xeon MP 2.80GHz 机器上,2GB RAM, 32bit RHEL 4. 支撑到 14000 个链接的时候,CPU 使用率在 65% 左右。这个…还是太惊人了,根据我找到的另外一份测试结果,看来要大打折扣才能有参考性。

EOF

Oracle In-Memory Undo

今天在无聊的售前演示中看完了一篇技术文档 All About Oracle’s In-Memory Undo,关于 Oracle 的 In-Memory Undo (IMU),记得几年前讨论过,大部分基于猜测,这算是看到的第一篇比较细致的东西。

Oracle 公司在 10g 推出 IMU 这个特性(已经申请了专利)。Undo 作为最重要的组成部分之一,其高效与否直接关系到整个 DB 的能力。Undo 旧有的基于 Block 的段(Segment,指存储层的概念)管理模式方式,UNDO 本身的变化要记录到 Redo Log Buffer 里,而 IMU 避免了这个操作(因为是内存而不是存储),从而减小了生成的 Redo 量。

另外,因为读一致性开销直接到了内存里而不再依赖存储段, 整体也大大降低,CPU 的负荷也会有效降低。其应用模式应该说是适合一致读的需求量比较大的 OLTP。

Oracle 10g 默认是使用 IMU 这个特性的。通过隐含参数 _in_memory_undo 可以关闭这个特性。因为是隐含参数,也侧面反映出该特性并非那么成熟。搜索一下 Metalink,有不少关于 IMU 的 Bug,而 UNOD 的 Bug 一旦遇到,不停 DB 恐怕都很难解决。所以,对于可用性要求比较高的系统,现在起用该特性还是需要三思。

附: 全部机制在专利全文里。谁有兴趣仔细读一下吧.

EOF

Oracle 10g PatchSet 10.2.0.4

Laurent Schneider 的 Blog 看到信息,Oracle 10gR2 的第三个 PatchSet 10.2.0.4 已经出来了。虽然还没有正式宣布,但是在 Metalink 上已经能够看到 Linux 平台的了。PatchSet 号码为:6810189 。

现在 Oracle 的 PatchSet 出来的顺序基本上还是 Linux 是第一个,也反应了某种趋势。若干年前都是 Solaris 平台 上最早出来的,现在都变成 Linux 了,操作系统的流行变迁可见一斑。原来传言说 2007 年年底会发布的 ,还是拖到了现在才看到,难道 Oracle 的开发力量都投入 11g 上面去了?

有意思的是,10.2.0.4 Patch Set – List of Bug Fixes by Problem Type 这个列表下仍然写着 “Please note that 10.2.0.4 has not been released on any platform , and does not have release dates available” 。可见 Oracle 内部对文档的更新也是比较乱的。

期待这个版本在修复众多 Bug 的同时不要引入新的 Bug 了,Oracle 10g 在稳定性上还是不能让人放心,淘宝的兄弟们最近就因为 ASM 的 Bug 而折腾了一回。。11g 会好一些么?

对于 DBA ,尤其是 Oracle DBA 来说,厂商发布一个新的 PatchSet 要比发布一个新的版本来的更为实惠一些,因为前者面向解决现有存在的 Bug 问题。新的版本只会引入更多的问题。

EOF

书评《构建 Oracle 高可用环境》

Building_Oracle_HA.jpg

前几天在 Blog 里提到答应了 Piner(陈吉平) 要给他的新书《构建 Oracle 高可用环境–企业级高可用数据库架构、实战与经验总结》写篇书评。书是拿到了多日了,断断续续再看,一直没看完。

首先恭喜一下 Piner 的新书终于顺利出版,写一部书本是一件不容易的事情,也一本有质量的书就更难上加难了。也恭喜一下博文视点顺利拿下这本书,装帧质量的确不错,相信读者也会对此满意。记得好几年前 Piner 最早在 CSDN 论坛数据库版灌水,签名经常写着”弱水三千,只取一瓢饮”,灌水地移师 ITPub 后没多久我就注意到了这个家伙。那个时候他就经常发一些总结的很好的技术文档(可见写作能力早早就开始培养了),新书的出版也是他厚积薄发的体现。

DBA 久了,有时也难免动一动写书的念头,可面对 Thomas Kyte 、Lewis 这些大师的书,真有些”眼前有书写不得,大师图书在上头”的感觉。但是《构建 Oracle 高可用环境》没有作无意义的重复,就内容上,可以说是独辟蹊径。有些章节堪称填补了 Oracle 技术图书的空白,比如第 10 章的 “高可用环境下数据迁移” 与第 16 章的”高可用环境监控架构设计” 都是前人所未能阐述的东西,对很多 DBA 来说,似乎是隔了一层窗户纸,可实际上,能够有功力捅破窗户纸可不是容易的事情,没有足够的经验写不出来,只有经验而没有总览全局怕是也写不出来。

身为国内最大电子商务网站的首席 DBA,”经验总结” 毫无疑问会让无数 DBA 心痒,到底淘宝的数据库是怎么维护的? (我就时不时的去偷师借鉴经验)。不只是 DBA 应该看这本书,架构师、技术经理都应该是这本书的读者。通过本书由点及面的阐述,能够树立一个以 DB 为核心的架构观,进一步理解企业信息技术体系,增强实践技能。

我会向 DBA 推荐本书(建议春节期间就买本回家看)。《构建 Oracle 高可用环境》将会是 2008 年中文图书市场比较重要的一本数据库类图书。

(最后挑个小毛病:建议批量数据更新的处理策略能够用 “Bulk Collect”方法,Piner 似乎一直不喜欢这么用。)

EOF