作者文章: Fenng

书写历史的甲骨文–ORACLE公司传奇(2)

发展与壮大

RSI在1979年的夏季发布了可用于DEC公司的PDP-11计算机上的商用ORACLE产品,这个数据库产品整合了比较完整的SQL实现,其中包括子查询、连接及其他特性。但不得不说,软件不是很稳定,并缺少事务处理这样的重要功能。出于市场策略,公司宣称这是该产品的第二版,但却是实际上的第一版。之所以被命名为第2版而不是第1版,是因为Ellison认为潜在的客户更愿意购买第2个版本,而不是初始版本。(虽然这样做有些不太诚实,还是要承认这是个十分高明的技巧。到现在还有一些公司把自己卖给客户的版本叫做1.0 ,学学1979年的ORACLE吧!)多年以后的今天,ORACLE公司声称是他们第一个提供了第一个SQL关系型数据库管理系统。

虽然软件不是很好,但却不缺客户。美国中央情报局迫不及待的想买一套这样的软件来满足他们的需求。但在咨询了IBM公司之后发现IBM没有可以商用的产品,他们联系了RSI。于是RSI有了第一个客户。在当时,政府和军方的机构往往同时有几种计算机,而那时还没有什么”软件可移植”这样的说法,当然,也几乎没有具有这样的能力的应用软件。也就是说,给PDP-11开发的ORACLE数据库不能用在IBM主机和DECVAX上。很快用户就表现出来这样的需求:ORACLE能否同时在不同的操作系统上运行?这给RSI带来了新的挑战(主要是Miner和Scott)。70年代末期和80年代早期的软件一般都设计成在单一操作系统上运行,具有可移植能力的软件很少。

1983年3月,RSI发布了ORACLE第三版。Miner和Scott历尽艰辛用C语言重新写就这一版本。出于移植性的考虑,Bruce 向 Miner 推荐 C 语言,要知道,C语言当时推出不久,用它来写ORACLE软件也是具有一定的风险的,尽管 Miner 不是很赞同,但除此之外,别无选择。很快就证明了这样做是明智之举:C 编译器便宜而又高效,移植性相当的好。用C重写 Oracle 的大部分工作由 Bruce 承担,而 Miner 精力主要仍放在 PDP 汇编上。从这个版本开始,ORACLE产品有了一个关键的特性:[可移植性]。ORACLE第3版还推出了SQL语句和事务处理的”原子性”–SQL语句要么全部成功,要么全部失败,事务处理要么全部提交,要么全部回滚。ORACLE第3版还引入了非阻塞查询,使用存储在“Before Image File”中的数据来查询和回滚事务,从而避免了读锁定(read lock)的使用(虽然通过使用表级锁定限制了它的吞吐量)。同样是1983年,IBM发布了姗姗来迟的Database 2(DB2),但只可在VMS上使用。不管怎么说,ORACLE已经占取了先机。

在开发第三版还没有结束的时候,Scott 离开了ORACLE。当时用C语言改写ORACLE的压力很大,无休止的软件调试终于让Scott不堪重负,选择了一走了之。把剩下的重担交给了Miner一个人。在出售了自己的4%左右的股票之后,Scott 后来参与创建了Gupta公司(现更名为Centura Software)和PointBase公司(提供百分之百纯Java嵌入式数据库),都是开发和数据库相关的产品。多年后有人问到他的%4的ORACLE股票的时候,Scott,这个曾经给ORACLE写出第一行代码的技术高手,也只能报以一笑了。如果能坚持下来,那是一笔几亿美金的财富。不过当时的Scott没有那么多的想法,他只是太累了。

Bruce_Scott.jpg
图3 Bruce Scott 后来是PointBase公司的创办者之一

相比竞争对手而言,ORACLE最先将其软件移植到DEC VAX计算机上的VMS操作系统上。回过头来看,在 Oracle V2 发布之后,VAX 已经抢占了本属于 PDP 的大部分市场,要赢得先机,就必须尽快的让 Oracle 支持 VAX 。最初 Oracle 跑在 VAX 的模拟模式下,效果不佳,所以移植 Oracle 到 VAX 平台是必须要面对的事情。早在1979年公司就已经雇了一位DEC公司的技术高手Robot Brandt进行VAX上ORACLE的开发。开始的时候资金有限,只能到加州大学伯克利分校去蹭机器进行开发,后来好一些,但机器也是借来的。尽管困难重重,Brandt还是比较成功的完成了移植工作。随着VAX小型机的大量销售乃至供不应求,ORACLE软件也成为VAX上最受欢迎的程序。这一点要归功于Larry对市场的先知先觉。如果说,是IBM引领着ORACLE公司走上数据库的大船,那么DEC公司的VAX就是带着他们扬帆出海了。短短的几年之后,ORACLE数据库被移植到各种主要平台之上。ORACLE产品也一直因为有可移植性这个关键特性而被那些潜在的客户关注。

很长一段时间里,公司研发由Miner独力承担。Miner视金钱如无物,为人低调,和Ellison的锋芒必露形成鲜明的对比。在公司里,大家一致认为他是老好人,他也深受员工爱戴。”Ellison是公司的大脑,Miner则当之无愧的成为公司的心脏”。他是个沉默的英雄,正如Steve Jobs背后的Steve Wozniak一样。

公司的另一位创建人,Oates,这个时候因为婚姻趋于破裂而情绪沮丧,已经不能把精力全部放到公司上,不得不离开公司。几年后,他又重返公司,重新为ORACLE做出巨大的贡献,他许下诺言,在公司员工超过1万人的时候会再度离开。1999年,他完成了心愿。现在他正在纵情于音乐(组建了一个乐队),自得其乐。

1984 年 4 月,Oracle 拿到了 Sequoia Capital (红杉资本) 的投资。同年10月,发布了第4版产品。从第四版开始,产品的稳定性总算得到了得到了一定的增强,用Miner的话说,达到了”工业强度”。但是还不够令人满意,用户对产品的抱怨似乎永无休止。这一版增加了读一致性(Read Consistency),这是数据库的一个关键特性,可以确保用户在查询期间看到一致的数据。也就是说,当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。可以看到,在ORACLE第四版之前,产品始终是不稳定的,但是ORACLE的销售人员,尤其是Ellison,他在宣传ORACLE的时候总是不乏夸大其词,但他就是有能力把软件卖出去,而且,还卖得很好,不得不承认,这的确有些神奇。

让我们看看1984年软件市场的情形,在数据库市场上的霸主是Ashton-Tate公司,他们的拳头产品是刚推出不久的dBase III(确切的说dBase是PC上的数据库软件霸主),刚刚成为全球第三大的独立软件公司(第一和第二分别是微软、Lotus,而ORACLE在当时还排不上号),这一年,也是苹果公司Macintosh诞生的年度,Steven Jobs用这个拳头产品挑战老大哥IBM,苹果的那个广告成为业界的一个永恒的经典。同样在这一年中,ORACLE公司的开发人员刚刚把产品移植到PC上。这是最好的年代,也是最坏的年代。数以千计的小公司在软件领域里争斗不休,新公司如雨后春笋般成立,ORACLE如何才能于不败之地?

在1985年,ORACLE发布了5.0版。有用户说,这个版本算得上是ORACLE数据库的稳定版本。这也是首批可以在Client/Server模式下运行的的RDBMS产品,在技术趋势上,ORACLE数据库始终没有落后。这意味着运行在桌面PC机(客户机)上的商务应用程序能够通过网络访问数据库服务器。1986年发布的5.1版还支持分布式查询(distributed queries),允许通过一次性查询访问存储在多个位置的数据。

那是在1985年,当时曾经的最大的独立软件公司Cullinet(主要销售网状数据库)已经如流星般陨落。ORACLE的主要竞争对手是Ingres数据库。Ingres在加州大学伯克利分校诞生,主要的设计者是当时鼎鼎大名的Michael Stonebraker教授。可以说Ingres数据库软件是上个世纪80年代技术上最好的数据库,Ingres市场分额的快速增长已经给ORACLE早成了很大的压力。巧的是,这个时候,IBM公司再一次伸出”上帝之手”。

Ingres使用的是 Stonebraker 教授发明的QUEL(Query Language))的查询技术,这和IBMSQL大不相同。在某些地方QUEL甚至要优于SQLIBM当时担心Ingres把QUEL变成标准会对自己不利。经过一番衡量,决定把自己的SQL提交给数据库标准委员会。而Stonebraker教授可不打算把QUEL提交给数据库标准委员会,学院派的他认为这麽做实际上是扼杀了创新精神。鹬蚌相争,渔翁得利。ORACLE看到并抓住了这个绝佳的机会,大肆宣布ORACLE全面与SQL兼容,加上ORACLE当时对Ingres PC上的版本的攻击(弱化对手优势,化解自己弱势是他们最拿手的本领),再加上ORACLE公司销售上的强势,Ingres不断丢城失地,等到后来推出支持SQL的数据库的时候为时已晚。紧跟IBM让ORACLE得以成长、壮大,拥抱标准,拥抱开放,拥抱变化,让ORACLE立于不败之地。

1986年3月12日,ORACLE公司以每股15美元公开上市,当日以20.75美元收盘,公司市值2.7亿美元。仅仅相隔一天,3月13日,微软以每股21美元的发行价上市,以28美元收市,公司市值达到7亿美元。远远超过了ORACLE。微软和盖茨成功的光环的遮盖住了ORACLE和Ellison的光芒,既生瑜,何生亮,可能这也是Ellison敌视微软的开始。

Larry Ellison

图4 桀骜不驯的Larry Ellison,他和乔布斯是很好的朋友

未完待续…


人物命运:Bob Miner 在 1994 年因为癌症去世。生前低调的他曾给不少公益组织提供过赞助。

公司命运:Ashton-Tate 后来被 Borland 收购,而 Borland 现在…

Updated
Stuart Feigin, Oracle’s fifth employee says, “There was no version 1 [of Oracle software] because everyone thought, well, no one buys version 1, it’s buggy. So we started with a version 2. Well, our version two was at least as buggy as anyone’s version 1…And I describe those early versions as the roach motel of databases. The data went in, but it didn’t come out.”(refer)

AWBot-A Nice Tool to Test Your Web Site


AWBot 简介

AWBot 是一款易用的测试 Web 站点的小工具。站点在 http://awbot.sourceforge.net 。该项目是 AWstats 项目的辅助项目。
AWbot 的功能简单的说,可以模拟用户访问站点的行为,测试站点的响应度和负载压力,并可进行基准测试。

具体来讲,AWbot 具有如下特性:

  • 易用性好.
  • 支持基本的HTTP验证请求.
  • 可以在测试前后制定不同预提交任务(外部脚本,SQL命令等).
  • 可以检查每个HTML页面的HTTP请求的结果以验证是否内容包含特性的关键字或是要解析的值.
  • 可以动态定义用以测试的URL与参数.
  • 可以多会话运行来测试负载压力.
  • 针对每个页面报告错误,响应时间和平均响应时间
  • 开放源码 (GNU General Public License)
  • AWBot 具有 XML PAD( Portable Application Description).
  • 其他一些特性

继续阅读

Oracle DBMS_SUPPORT HOW-to

DBMS_SUPPORT是Oracle提供的一个软件包。供内部支持人员使用以更有效地跟踪SQL。这个包没有正式的说明文件,默认情况下,系统不安装这个包。如果需要使用的话,需进行单独设置。在你的$ORACLE_HOME/rdbms/admin/目录下应该存在dbmssupp.sql,prvtsupp.plb这两个文件。

SQL> connect / as sysdba
Connected.
SQL> @$ORACLE_HOME/rdbms/admin/dbmssupp.sql
Package created.
Package body created. SQL>

如果要其他用户也可以使用这个包,可以考虑提交如下授权操作(PUBLIC可以替换为具体的用户)并创建同义词:

SQL> GRANT EXECUTE ON dbms_support TO PUBLIC;
Grant succeeded.
SQL> CREATE PUBLIC SYNONYM dbms_support FOR dbms_support;

继续阅读

想起了 Peter Murphy

是的,Peter Murphy ,这个包豪斯(Bauhaus)的前主唱,哥特音乐的曾经代表人物
最开始注意到这个人是因为听说窦唯曾经非常的推崇彼得,甚至卧室中贴满了包豪斯的海报,窦唯最为人称道的《黑梦》更是充满了Peter Murphy的影子,从音乐的形式,内容,唱法,无不非常相似--虽然窦唯自己否认这样的看法。
不过窦唯后来为了摆脱Peter Murphy的影响,曾经把自己收藏的所有的关于包豪斯和Peter的CD都抛入了河中–那是后来的事情了
再到后来,我们听到了窦唯的云雾缭绕的新民乐…….
我最早听Peter Murphy还是有一次去青岛,GF领着我去当地的一家音像店,那个老板很明显是比较识货的人,记得那次还找到了好多喜欢听的东西
Peter Murphy ,那微有震颤的嗓音

继续阅读