信息化 频道

IBM DB2 25周年,管理数据的生命周期

【IT168 信息化】

    这天上午,IBM院士王云在台上向人们亮出了自己当年的课本----1975年出版的《数据库系统简介》。在台下,还陆续有人进场,现场的服务员穿梭于会场的空地间忙于添加临时座位,而苦于没有座位的人只好与摄影记者一起挤在会场的角落处。王云之前,IBM中国区软件部信息管理市场经理邓宏从上衣口袋里掏出一枚纪念金币----一面印有“SOA”,一面印有“IOD”。之后,邓宏引用了毛泽东的一句诗词“风物长宜放眼量”,接着说:“今天是我们回顾IBM DB2 25周年的一个时间,是我们展望未来的一个时间。我相信在座的绝大多数朋友----尤其是很多年轻人----还需要把自己的很多精力放在与数据库相关的技术、研发,以及应用领域。数据库绝没有成为一个停滞不前的技术,数据库仍然代表了未来发展的方向。”

    25年前的1983年,IBM正式发布了DataBase 2(DB2) for MVS第一个版本,“DB2”品牌从此诞生。而早于此十多年前的1970年,被誉为“关系型数据库之父”的E.F.Codd博士发表了业界第一篇关于关系型数据库理论的论文“A Relational Model of Data for Large Shared Data Banks”,这篇论文也奠定了Codd博士在关系型数据库领域的地位。

    2008年的9月23日,IBM在中国庆祝DB2 25周年。用邓宏的话说,“今天,我们的目的非常明确。第一,要对DB2 25年的发展做一个回顾。第二,希望透过对DB2 25年历史的回顾,除了给大家概括IBM在IOD(Information ON Demand,信息随需应变)、数据库技术等各方面最新的进展外,还希望与大家一起梳理、思考、展望数据库技术的未来。”

DB2近期版本产品功能突破

    1983年到2008年的25年间,不但代表了DB2经历了长期的发展,也同时代表关系型数据库在企业中已经应用了25年之久。1970年关系型数据模型的提出、SQL语言与查询最佳化技术的发展,都与IBM有关,之后这些理论与技术正式落地为商业化产品后,就成了DB2。

    DB2 8.x----开始第一阶段大换血

    DB2 8是IBM在2003年3月发布的。在这个版本之后,IBM在数据库新功能的改进方向上开始变的多元化。

    在这之前,IBM的确低估了个人计算机与分布式平台的发展,之后又一度矫枉过正地追随企业规模最小化,将主机系统移植到所谓的开放系统上的潮流。 20世纪90年代的一段时期里,IBM错过了发展良机,当时仍专注在可用性的提升,并未及时发展新的应用系统与扩充SQL功能。

    到了DB2 8,因为当时大部分企业忙着应付“Y2K千禧年危机”,因此IBM顺势延后了这个版本的研发时间。趁2000年后3、4年的时间,DB2的开发团队从系统的本质上开始改变,成果似乎是令人满意的。IBM DB2内部的开发团队成员特别用“Quantum Leap大跃进”来比喻SQL的功能改进。

    对当时的DB2来说,这样的变革相当迫切。IBM内部曾经评估过大型主机(MainFrame)平台与分布式平台之间的功能落差,两个平台上共通的功能最多,其次是分布式平台独有的,但大型主机独有的部分显然落后,于是他们需要把主机端的功能补上来,平衡在不同平台上的差异。于是到了DB2 8,新的SQL语言也有了延伸。

    另一件重大的工作是让DB2支持64位运算,而且需彻底打破2GB内存空间寻址对系统交易量处理所造成的限制。第8版时,这部分修改的幅度是30%至40%,到了DB2 9.x版又继续调整到30%,预计在下个版本全部调整完毕,届时就是完全64位化。

    这是一场针对DB2的大型“开刀手术”。系统里面的指针原先都是4个字节(Byte),现在全部需要改成8个字节(Byte)。就算忽略改写程序代码的工作量,系统修改后,接着还要执行测试,避免程序错误隐藏其中,凡此种种,这些开发、测试、除错的规模都相当可观。

    命名空间上允许使用更大量的字符,也是一个符合时代潮流的系统所必需。DB2过去只允许用8个字符来命名,现在必须能够开放使用更多字符来表达。近几年来,对象命名的方式已经改成以提升可读性为主,因此他们需要做到能容纳128个位的命名。但这样一改,既有数据表、索引、函式等数据库对象的名称,也都受影响,难度也很大。

    最后一项改造的重点是最佳化,必须设法调整DB2的架构,以便能够适应下一个十年的复杂性增长。也就是在那时候,DB2开始发展所谓的自主运算(Autonomic Computing),事实上,这是一种专门针对数据库系统效能调优的机制,目的是让系统优化越来越聪明。

    在DB2 8.0的可用性、延展性与效能的发展上,DB2的数据分割最多可以分割成4096个,而且可以随时加入和轮流调换,此外,数据表空间上的分割与数据丛集等2种功能原本是合在一起的,现在开始能各自独立使用,彼此不相关。此外,新支持了多列数据的插入,而且最佳化的做法也加以改良,例如数据表查询的结果实际储存起来,预先储存某些Select叙述的执行结果,让其它SQL指令可以直接取用,提升执行速度。系统可取用的内存空间,也将透过压缩取得更多,而且可以将资料页所使用的共享缓冲区,固定在实际的储存设备上。

    DB2 9.x----强化与简化数据库管理

    DB2 9.0是在2007年3月后发布的,代号“Viper”。IBM继续在可用性、可靠度、延展性等方面的发展之余,最大的改变是原生支持XML(即所谓的PureXML)和提供内存自动调优的能力。此外,DB2也开始支持全文检索与空间与地理数据。

    现在业界对原生XML支持做得最好的是DB2 LUW和DB2 Mainframe,两种平台的功能与价值几乎是相同的。从这个版本之后,XML在DB2当中是一个原生的数据类型,数据库内从上到下每一个组件都能认识这个类型。可以在里面存XML的数据,或是建立一个数据表,在上面建立XML的字段,再将数据存在里面,也可以在XML字段上建立索引,并且查询里面的XML 路径的表达式。系统的备份与还原工具也都认得这种型别。

    数据库内存的自动调优校是DB2 9.1版之后的一大突破,它可以自动观察系统目前执行的交易量,然后经过反复调整、学习,产生最适合的设定。IBM根据依照自己的测试数据表示,启动自动调优功能后,能够处理的交易量略微胜过有经验的DBA人员的调优。IBM软件产品处资讯工程顾问说,如果是由“人”来观察、调整可能会有误差,但DB2是透过内建的监控机制,观察内存使用的比例、命中率大小等状况,同时透过一些规则来加以判断,在内存里面执行一些运算和比较,以此来评估某几个参数调整后,是否会带来好的成效。

    启动自动内存调校后,从开始执行到成熟期,一般来说大约0.5~1小时,就可以收集到足够的信息来了解交易量的状况,然后套用最佳化设定值。

    启动自动调优也很简单,只要数据库系统管理人员修改系统设定参数,将SELF_TUNING_MEM设为On、DATABASE_MEMORY等6个参数设成Automatic,DB2就开始调整,如果自动调校到某个程度的成效很好、不需再调,管理者可以将这些设定关掉,就会锁定在那个当下所调整的数值。
 

0
相关文章