涂抹ORACLE--第1章ORACLE传奇(3)

1.5 革新   虽然网络计算机最终流产,但Ellison还是敏锐地发现了Internet的巨大魅力和前景:“Oracle将只会做一件事情,我们管理海量的数据并通过网络提供这些数据”。   1999年2月,Oracle正式发布了Oracle 8i的第一个版本8.1.5,i代表Internet,这一版本中添加了大量为支持Internet而设置的特性,比如iFS、SQLj、WebDB、interMedia等特性,以及与Oracle的Java开发工具Jdeveloper的集成应用等。同时,本地也完整集成了一个Java运行时环境(Java也是微软的对头,Ellison在打击微软方面可谓不遗余力),内部又引入了对Java存储过程的支持,作为对PL/SQL标准过程的补充;在数据库管理方面引入了Log Miner特性(一种可用来读取Redolog的工具,Oracle后续版本中提供的一些高级特性,如逻辑Standby、Streams等也都是借助类似方式实现);分区功能也有所增强,如提供了对Hash分区和复合分区的支持,以及一些分区的管理操作;传输表空间的特性也是从这一版本开始提供;同时本地管理表空间也首次出现于这一版本,但表空间在创建时默认仍然是字典管理方式(如果你对此存在疑问,别着急,相关内容将会在第五部分详细介绍);其操作的易用性较之前版本有非常明显的提升,主要体现在Oracle EM使用上;高级复制的特性已经非常完善;Standby的特性也基本成熟,备库已经支持自动应用,并且在暂停应用时能够以只读模式打开,当作查询服务器来分担主库压力。   8i的最终版本是2000年8月发布的8.1.7,不仅对整个数据库行业影响巨大,用户使用后反响也强烈,我记得在2006年某知名Oracle数据库论坛上做过一次使用中的数据库版本调查,当时仍有不少用户在使用Oracle 8.1.7(也许,现在仍然有吧)。8i对Oracle公司的影响同样不可磨灭,在.com浪潮中,Oracle是站在风口浪尖的弄潮儿。   2001年6月,Oracle正式发布了第9版,这一版同样延续了8i时针对互联网应用的特性,因此版本号后面也跟了一个i,常称作9i。从第7版开始,Oracle不仅在内部管理上步入正轨,而且产品质量也渐入佳境,颇有一版更比一版好的态势。在三思看来,9i同样应被看作是具有划时代意义的版本,因为之前版本中提供的很多重要特性均是在这一版本中被转正,比如OPS正式更名为RAC,Standby被更名为Data Guard,LMT(Local-Managed Tablespace,本地管理表空间)试用多年,也终于在这一版本中被改为创建表空间时的默认属性,还有很多其他细微但非常实用的修改,简直数不胜数,如SPFILE——服务器端的初始化参数的引入(改动虽小,影响甚大,当然都是积极层面的影响),系统管理的UNDO表空间(System Managed Undo Tablespace)的引入(有效提升系统性能,极大限度避免ORA-1555),内存管理方面引入了PGA_AGGREGATE_TARGET参数,用来自动分配PGA内存,有效提升性能。Flashback Query也在这一版本中首次出现,通过该特性能够查询UNDO表空间中尚未被覆盖的UNDO数据,也可以作为数据恢复的一种补充手段(关于Flashback特性的应用详见本书第三部分)。   2002年5月,在升级到9i R2后又提供了一种新的数据复制特性:流(Streams),期望是用来替换之前的高级复制,同时Data Guard也提供了一种新的Standby方式,逻辑Standby(关于Data Guard特性的应用详见本书第三部分)。 1.6 前进   2004年2月,Oracle公司正式发布了第10版,从这一版中,Oracle数据库有了一个新的后缀:g,即grid(网格),这是自Oracle 8i中增强互联网功能后的又一次重大更名。10g主打网格计算,跟8i、9i时的面向Internet增加相应特性一样,这只是Oracle 计划未来面向的领域而已,说得更直白些,它只是为这些应用打下良好的基础,用不用在你,如果你仍将其当作一个标准的数据库软件使用,那么i呀g呀对你都没有什么影响。10g中网格计算相当于将整个信息化的各个物理和逻辑的组成部分(如存储、数据库、应用程序等)定义成虚拟化的服务,由Grid Control(Oracle公司提供的控制软件)统一控制。Ellison野心极大,单单占有数据库领域是不够地,通过Grid Control就可以控制整个企业的信息化设备。   我们不管Larry Ellison商业策略上的考量究竟怎样,仅从数据库层面来讲,10g确实进行了太多实用的革新,比如在内存管理方面,我们知道9i时引入PGA_AGGREGATE_TARGET,用来自动分配PGA内存,在10g中引入了一个SGA_TARGET,用来自动分配SGA内存,而到了11g,Oracle又提供了一个新的参数MEMORY_TARGET,能够完全自动地管理整个数据库内存。没有应用过早期版本的用户可能感受不会那么深刻,为了加深大家的印象,在这里三思仅从易用性的角度给大家作个比较,8i及8i之前的版本,有十多个与内存空间分配相关的参数需要设置(如果设置不当,对性能影响极大,甚至做某些工作的时候,DBA必须重新设置某些初始化参数),9i时减少到5个内存相关参数;10g只需要设置2个;到了11g,只需要设置1个,就是MEMORY_TARGET,对于其他参数,在默认情况下Oracle都会在运行过程中自动进行调整。所以,仅从这个发展过程上也能看出,Oracle每一个新的版本,都会在易用性上做出很大改进,DBA终于能够闲下来了啊(好事?坏事?)。   看看Oracle公司官网的这篇文章吧“Oracle 数据库 10g:为 DBA 提供的最重要的 20 个特性”(http://www.oracle.com/technology/global/cn/pub/articles/10gdba/index.html)。   10g真的好,谁用谁知道。特别说明一下,本书所做示例如非特别注明,默认均是在10g R2版本进行。   2007年7月,Oracle公司正式发布了11g,我个人认为这一版在整个Oracle数据库版本历史中足以与1992年发布的Oracle 7媲美,这一版提供了很多激动人心的特性。比如RAT(Real Application Testing)终于步入实用阶段,该特性允许你将生产环境中数据库的真实负载记录下来,拿到测试库中重演(最佳搭配自然是Standby数据库),这将有助于测试某些应用程序修改后对数据库的真实影响;结果集缓存(Result Cache)则能更有效地利用内存,其实质相当于将查询的结果集保存于内存中,当再有新的相同查询需求时,就不需要再解析、执行、读取I/O等操作,直接就可以从内存中获得查询结果,大大提高查询效率(如果应用得好的话);以及高级压缩(Advanced Compression)等。   同时,原来的一些特性在功能上也增强不少,比如分区方面,自5.0以来无数用户盼星星盼月亮一样期待的interval分区终于推出(Oracle将根据设定的条件自动添加新分区,再也不需要DBA自己写脚本来管理分区了);Data Guard方面,物理Standby终于能够在只读打开模式时应用REDO数据,实用性和可用性均大增;内存管理方面,新提供的MEMORY_TARGET参数能够更有效地管理Oracle内存空间,其他还包括压缩特性的增强,SQL、PL/SQL方面新增加了数据类型和更强大的编译方法等。   另外,如果你足够敏感,这条信息也许能给你一些其他方面的启示,11g的首发平台是Linux,打破了一直以来首发平台都是Solaris的传统,从某种层面上,也表明了服务器领域主流操作系统的变迁。你想说什么时候首发平台会是Windows?貌似短期内都不太可能啊:)   另外,在本书写作过程中,Sun公司已被Oracle公司收购,Solaris现在是Oracle公司自己的产品了。   说到这里,三思也想引申一下关于数据库新版本及是否升级的问题。信息爆炸的时代,软件更新频繁,新版本不一定是好版本(比如11g发布了不到三个月就推出了Release1),当然新版本也不一定是不好的版本(比如Oracle 7,发布之后好评如潮,用户哭着喊着要升级,也可能是Oracle 6太差,两相对比太强烈)。   但这些都不重要,DBA需要关注的重点是,要升级的版本是否是适合你的版本。如果要归结成一句话,我认为“稳定是第一位”。新版本固然提供了很多新的功能,但是有一点大家一定要明白,是软件就会有Bug,越新的特性,Bug也越多,尤其像11g,安装包就已经达到1.7G的庞然大物,有Bug不稀奇,没Bug才稀奇。所以,做第一个吃螃蟹的人,贸然尝鲜也许能得着甜头,但更大的可能是给自己埋了无数的雷啊。我认为,9i曾流行,10g正当时,而11g属于未来。   OK,我的话说完了,但Oracle的故事还远没有结束…… ================================================= 全书目录:http://space.itpub.net/7607759/viewspace-622699 样书预览:http://space.itpub.net/7607759/viewspace-622515 马上购买:http://www.china-pub.com/196252
链接:http://space.itpub.net/7607759/viewspace-623430
请使用浏览器的分享功能分享到微信等