Oracle和DB2是两种不同的数据库。
Oracle:
Oracle是甲骨文公司的一款关系数据库管理系统。
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
DB2:
全称为IBM DB2。是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本。
DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和sql命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。 DB2以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。
区别比较大奥,组建集群方面来说,oracle是共享存储,db2是分布式存储;db2是封闭式按cpu授权,官网只能下测试版,oracle是开放式授权,官网下载版本和正式版是一样的,只是法律层面要受到约束罢了;性能而言,db2需要在IBM的小型机上才能发挥他的性能,oracle可以在普通的pc server上都可以发挥性能优势
概述
Oracle 数据库10g(Oracle Database 10g)是第一个专门为企业网格计算设计的数据库。Oracle Database 10g降低了数据管理成本,同时可以提供最优质的服务,能够使IT迅速满足业务需求的变化并最大限度降低风险。系统易于部署和管理,这一点同样具有十分重要的意义。
通过不断推出先进的创新技术,Oracle在竞争中始终保持领先地位。Oracle Database 10g的推出,进一步拉大了用于Linux,Unix和Windows的IBM DB2 UDB v8.1在这一领域的技术差距。就性能、扩展能力、可用性、安全性及价格等方面而言,Oracle Database是当之无愧的领先产品,这已是Oracle客户的共识,媒体、分析人士和业界专家也对此给予积极的回应。Oracle 不断推出的先进创新技术,使各类规模的企业能够花更少的钱,办更多的事。
本文将对Oracle 数据库10g与用于Linux,Unix和Windows的IBM DB2 UDB v8.1的技术性能进行对比,论证Oracle“功能成本俱佳”的体系结构较之非共享的数据库在性能、扩展能力、资源利用、管理、可用性及满足技术发展趋势等方面所具有的强大优势。
网格计算
Oracle 10g是第一个,也是唯一一个专门为网格计算开发的基础架构软件。Oracle 数据库10g和应用服务器10g为灵活、动态的网格计算提供了完全集群、工作负载管理和数据中心自动化技术,使用Oracle网格的客户可以实现高的资源利用率并显著降低成本。他们还可以通过Oracle系统在可移植性、可用性、安全和扩展能力等方面得到全面提升。Oracle系统的可移植性可保证您在所有运行平台环境下同样受益,包括Linux 和常规集群系统。目前,只有Oracle能以低成本集群产品为基础,实现真正的扩展,提供高可用性,并且可以动态配置资源。Oracle使网格牢不可破,您即不能断开网格,也不能侵入网格。
Oracle还在网格技术方面实现重要突破,如推出了Oracle真正应用集群(Oracle Real Application Clusters)、Oracle流(Oracle Streams)、Oracle 可传输表空间(Oracle Transportable Tablespaces)等。最重要的,Oracle长期以来一直成功地为领先的平台和系统运行环境提供软件产品。Oracle网格客户对投资Oracle技术的信心有助于推动网格技术的应用。
Hartford在多个应用之间共享Oracle数据库资源,包括记帐、会计合并、现金帐户、应收帐户,从而使企业可以花更少的钱,办更多的事。Oracle技术,包括Oracle资源管理器和Oracle Streams,为Hartford管理工作负载,在所有应用之间合理配置资源提供了必要的功能。
CERN(欧洲核研究组织)建立了Large Hadron Collider(LHC)计算网格,用以管理LHC实验数据。每年,该组织大型实验生成的数据量高达一千万亿字节。这些实验数据供2000多用户和150多个机构应用分析。CERN决定LHC计算网格采用Oracle系统。数据库和应用服务器是这一解决方案的重要套件。Oracle数据库和Oracle应用服务器能够满足LHC计算网格的技术要求。Oracle具有扩展性、信息共享和VLDB功能,可供几千个用户在LHC计算网格中共享和访问数据。可传输表空间可以快速移动大量数据,对数据量没有限制。同时,Oracle真正应用集群以Linux集群产品为基础,为CERN提供了具有高可用性和强大扩展能力的数据库。
去年,IBM极力打造“随需应变计算”的品牌形象。IBM的产品包括一体化托管服务、基于开放式标准的模块和由业务咨询服务部进行的专用软件开发。其核心是集成(DB2信息集成器)、自动化(SMART)和可视化(通过硬件产品)。IBM通过cpu硬件划分和处理器按需定期许可的方式销售大型SMP服务器。这又回到了大型主机业务模式的老路,带来成本和限制等方面的一系列问题。随需应变是以WebSphere为粘合剂拼凑成这样一个运行环境。IBM在网格产品中配置的软件是DB2信息集成器、DB2内容管理服务器和WebSphere。IBM可能有大量关于网格计算的学术论文,但却没有专门针对网格开发的软件产品。
有充分依据证明,Oracle系统更适合用于网格计算:
1. Oracle完全在常规硬件环境下运行。IBM则建议在高档SMP环境下运行他们的数据库。他们的集群数据库不支持实际应用(如SAP、PeopleSoft、Siebel等)。
2. Oracle RAC可以动态添加或删除数据库实例,无需停机。这意味着,您可以根据负载与管理优先级的要求,改变不同数据库的资源配置。IBM集群数据库不共享任何资源。如果需要添加节点,您必须重新划分数据,所以不得不停机。因此,您不得不为满足高峰期间的需要去规划一个非共享的数据库,利用率极差。
3. 如果您需要在刀片服务器与SMP之间分割软件,需首先确定配置决策。在刀片上运行的软件不能利用空闲的SMP,而在SMP上运行的软件也不能利用空闲的刀片。因此,异构硬件组合也限制了您的系统应有的利用率。为了最大限度利用资源,对优先级和负载做出最佳响应,您需要建立同类硬件环境。完全同类的刀片环境可以大大降低成本,而能够完全在刀片环境下运行的只有Oracle软件集。
4. Oracle 数据库 10g包括自动存储管理(ASM),用以垂直集成专门为Oracle数据库文件开发的文件系统和卷管理器。ASM将I/O负载分布到所有可用资源中,从而优化系统性能,不必进行人工I/O调整。ASM可使DBA在不中断系统运行的情况下调整存储配置,增加数据库的尺寸,帮助他们动态地管理数据库运行环境。
5. Oracle Streams可以通过统一的基础结构实现异步信息共享。这一真正意义上的统一架构,将信息队列、复制、事件、数据仓库加载、通告、发布/订阅全部结合在一套技术中。您可以根据需要,随着变化逐渐增加共享信息。您不必安装、管理、集成大量不同的产品。IBM不能以这样的方式共享信息,除非组合不同的产品,编写许多代码,并对各种组件进行管理。
6. Oracle可传输表空间可用来传输整块数据库。Oracle Streams是随着变化逐渐增加共享信息,而可传输表空间则可迅速地成批移动数据,即使在不同的平台之间。当然,这两个套件可以结合使用。
7. 有时,共享和集成信息的最好方法其实只是在需要的时候,能够进行远程访问。Oracle已经内置了分布式sql、远过程调用和分布式事务。您可以查询其他数据库所需的信息,在必要时更新这些信息,访问其他服务器的程序逻辑。通过Oracle通用网关,或采用我们的透明网关,还可以访问其他数据库管理系统中的数据。您可以组合Oracle与非Oracle数据,同样,您可以使用Oracle Streams通过我们的网关共享非Oracle信息。而如果您想更新非DB2数据库的话,IBM则要求您购买DataJoiner,他们没有通用网关或Streams之类的产品。
8. Oracle 产品集为网格计算提供所需的高可用性。Oracle RAC 与Oracle 数据保护(Oracle Data Guard)可避免集群内部,以及集群之间的运行中断。这种保护包括计划停机(打补丁,升级)及非计划运行中断(服务器故障、灾难)。计算不具备可用性时,计算效用也就无从谈起。IBM采用备用数据库技术,但除非主数据库瘫痪,否则无法使用备用数据库,这无疑会造成资源利用率很低的问题。
9. Oracle系统性能和扩展能力优于世界上任何数据库产品。这一点对于网格计算是很重要的。我们的读取一致性模型可保证系统最高吞吐量,不会发生在IMB和微软系统中遇到的锁定问题。我们大量客户运行的数据库容量高达万亿字节以上。我们的RAC技术对于支持的节点数量不存在结构性的局限。Oracle是当前TPC-C、TPC-H@1000GB、TPC-H@3000GB和TPC-R@100GB的领导者,并保持基于Linux的 4路、16路和64路系统TPC-C世界记录。除TPC基准测试外,Oracle还支持真实环境企业级应用基准测试,如运行Oracle应用和SAP的基准测试2。在这方面的公开评比中:
a. Oracle 位居2层订货组装ATO基准测试前三名,每小时34 260订单。
b. Oracle位居3层订货组装ATO基准测试前两名。
c. Oracle保持SAP SD 2层测试结果的前两名。
10. Oracle将安全放在首位。Oracle致力于在其每一种产品中设计安全的功能和解决方案,尤其是用于存储数据的数据库服务器。对于设计Oracle数据库的开发人员来说,安全是编码工作的核心,以保证推出安全的产品。Oracle安全机制已得到17家独立安全评估机构的认可。IBM是在数据库之外解决安全问题,依靠操作系统或Tivoli的产品线来保证DB2及其他IBM产品的安全。IBM没有“虚拟专用数据库”(Virtual Private Database)和“标签安全”(Label Security)之类的功能。而且,IBM系统也未接受独立的安全评估。
11. Oracle具有操作系统及硬件之间的兼容性,因此可以支持异构网格。IBM的DB2没有各平台之间一致的代码库,因此DB2应用不具备移植能力。Oracle可在所有主要的操作系统上运行,而且在不同的操作系统环境下具有相同的功能和性能,因为我们采用单一代码库。Oracle的移植性意味着,无论网格如何发展,以何种操作系统为主,Oracle都可以对其加以支持。
12. 根据表空间页面大小,DB2对行的大小有限制。一行记录不能跨过多页,因此行的尺寸必须小于页面尺寸,同时还要考虑到页面的开销(最多32677字节)。Oracle可以一行跨过多页,Oracle术语称为块,因此可以完全避免这种复杂性。Oracle数据库10g的最大数据库尺寸为8艾字节(1018字节),而DB2 UDB的最大尺寸仅为8太字节(1012字节)。Oracle的无限尺寸使您的网格具有极为强大的灵活性。
13. Oracle通过独立的集成产品为您提供上述全部功能。我们的理念是销售集成式软件,无论是电子商务套件,还是网格基础设施。除系统开放,支持所有相关标准外,Oracle还提供全面集成。IBM和微软提供的组件需组装后才能部分支持网格计算。您要么装配组件,要么购买装配组件的咨询服务。而Oracle则通过最佳集成软件对网格计算加以全面支持。
14. Oracle将推出专门针对Oracle产品集的Globus 工具包。Globus 工具包是一组用以支持资源管理、安全和发现的模型。IBM的Globus工具包已开始供货,但却未开发网格计算版软件,而我们已开发了这样的软件。因此,若想以IBM技术采用Globus软件,您必须购买IBM服务,或投入相当的时间和费用将二者加以集成。
管理能力
今天,业务环境的竞争日趋激烈,如何以最低的成本,同时不以降低服务水平为代价,管理信息技术(IT)基础设施是企业目前面临的挑战。目前,这种情况正陷入两难的境地,当系统提供越来越丰富的功能时,复杂性必然提高,因而也就加大了系统维护和管理的成本。今天,希望取得良好效益的企业不仅需要可靠、高性能的应用为客户服务,而且必须降低运营成本,最大限度地扩大赢利空间。这种情况加之这方面技术能力的短缺使得管理成本迅速攀升,甚至对企业的竞争能力构成潜在威胁。针对上述情况,Oracle数据库10g推出了先进的自我管理数据库,它可以自动地对自身进行监控、适应和调整。Oracle简化了数据库各个管理环节,从而提高了管理人员的生产能力,可将客户的运营成本降低50%。在简化数据库管理方面,Oracle数据库10g大大优于IBM DB2 UDB。2003年4月,Rauch协会对总体管理成本进行了对比:Oracle9i数据库第二版与IBM DB2 v8.1的比较结果显示,Oracle9i数据库第二版明显比IBM DB2 v8.1易于管理:
1. Oracle9i数据库第二版的管理步骤仅为DB2 v8.1 的41%;
2. 执行相同的管理任务,Oracle9i数据库第二版所需 的时间比后者短54%;
3. 在同等管理工作负荷下,Oracle9i数据库第二版所 需的管理人员数量仅为DB2的55%;
4. 由于Oracle9i管理人员工作效率的提高,每个管理 人员在系统建立后的前五年可节省管理费用 37 054美元,而且今后这一数字还将进一步增加。
自我调试、简化复杂的管理功能、提高日常管理工作的自动化水平和更先进的管理工具是Oracle系统管理能力始终保持领先水平的主要因素。Oracle管理体系建立在管理作业多,测试人员少的基础上。DB2 v8.1做了许多改进,特别是在存储器配置、调试和健康监控等方面。DB2新型健康中心和配置向导主要用于缩小与Oracle在时间(或效率)方面的差距。与此同时,Oracle也对Oracle数据库10g的可管理性做了进一步提升,这样一来,两种系统再次拉开了技术差距。
自我管理数据库
Oracle数据库10g自我管理基础设施由四大套件组成:自动工作负载储存库、自动维护任务基础架构、服务器生成告警和顾问框架。自动工作负载储存库(AWR)是一个内置信息库,包含特定数据库运行统计等方面的信息。在定期的时间间隔中,数据库制作所有关键统计数据及工作负载信息的快照,将其存储到AWR。自动维护任务基础架构可供数据库自动执行日常维护,如优化器统计刷新、重建索引等。这一套件可以利用Oracle数据库10g 提供丰富的时间安排功能(通过称为进度表的新功能),在一个预定义的“维护窗口”中运行这些任务。
采用DB2系统时,DBA需要决定刷新何种统计,以及刷新的方法和时间,数据库不会在这方面提供任何帮助。换句话说,DB2 DBA必须人工跟踪前一次统计生成后发生变化的表,密切掌握数据分布,以确定发生变化的数值,还要通过反复尝试的过程确定分析数据的合适的采样量。不仅如此,他们还必须重新绑定所有的应用程序包,才能利用新的统计数据。根据DB2管理指导手册:性能“运行统计后,最好重新绑定应用程序。如果有新的统计数据,查询优化器可以选择不同的访问计划。”3 采集统计变得像DB2这样复杂时,会妨碍DBA根据需要随时进行采集,因此导致执行计划不力。这也许是为什么DB2管理员认为查询优化是最耗时工作的又一个原因。
对于不能自动解决,需要通知管理员的问题(如超空间运行),Oracle数据库10g可以自行监控并发出告警,以及时有效的方式通知DBA尚待解决的问题。在AWR获取数据的基础上,Oracle数据库10g配置了自动诊断引擎,称作“自动数据库诊断监测”(ADDM)。ADDM可以使数据库诊断自身性能,确定如何解决识别出来的问题,量化预期指标。
Oracle数据库10g提供数据在位重组功能,可通过压缩数据优化空间利用率。段压缩功能可以使可用空间被表空间中的其他段重用,提高查询和DML操作的性能。
Oracle表或索引识别功能还使其复杂性大大低于IBM DB2。Oracle管理员可以对数据库进行分析,通过一个工具确定需要识别的对象并完成识别。DB2则至少需要两个工具,REORCHK和REORG。由于耗用大量资源,因此识别通常安排在非峰值期间进行。采用企业管理器(Enterprise Manager)工具,可以很容易地将识别安排在维护窗口期间执行,无需值守。而且,EM还可以自动提示管理员识别开始、发生故障或成功。在DB2中,任何识别作业都要由人工程序来完成,需要开发定制脚本并始终由管理员监控。
Oracle识别程序还采用了先进的错误-处理功能。如果识别期间发生错误,管理员可以取消操作,或修复问题后重试。DB2系统识别期间发生错误时,通常必须回滚或恢复数据库来改变。
DB2还在许多方面落后于Oracle,包括管理能力。DB2管理员仍需调试多达12个参数才能合理配置sql执行存储器。而Oracle管理员只需用一个参数即可指定一个实例可用的查询执行存储器,然后令Oracle自动管理,进而保证系统的最佳运行性能。同样,Oracle可恢复空间分配功能为管理员提供了目前急需的工具,他们用其修复错误空间,避免数据库运行发生故障。对比之下,如果未能准确估算出执行日常管理任务所需的空间,如创建新索引、装载大量数据等,DB2管理员还得半夜起来进行处理。与V7一样,DB2 V8仍然采用基于锁的读取一致性模型,因此,他们还是需要花费大量时间通过监控死锁,解决锁冲突来应付DB2的结构性缺陷。Oracle采用基于广泛认可的读取一致性模型,因此Oracle DBA甚至根本不必考虑这些任务!大部分DB2配置参数仍然不能在数据库/实例不停止运行的情况下加以改变,因此会造成应用中断。以下是另外一些DB2尚不能满足的基本管理要求:
1. 动态配置参数
2. 限定紧急事故恢复时间
3. 恢复时间建议
4. sql访问外部文件存储的数据
5. 可恢复备份与重建
6. 自动识别占用大量资源的查询
7. 自动识别需要优化器刷新统计的表
8. 自动确定优化器刷新统计的抽样尺寸
9. 自动创建直方图
10. 可传输的表空间
12. 服务质量报告
应用/sql调整
应用设计问题是造成系统性能问题的最主要根源。开发人员、DBA和系统管理员的所有调整才智,都不能弥补应用结构和设计方面的缺陷。因此,sql语句的调整是数据库系统性能调优的一个重要组成部分。
查询优化器可以对查询性能产生重要影响,如是否采用索引;当查询涉及连接多个表时采用何种连接技术等。Oracle投入大量人力物力开发出基于成本的优化器,这是业内最先进、最成熟并经过全面测试验证的查询优化器。基于成本的优化器已被Oracle应用、SAP、PeopleSoft等重要应用套件所广泛采用。由于Oracle数据库已成为广大客户使用这些应用的平台,从而证明Oracle优化器在大量的实际应用设置中取得了极大成功。
尽管Oracle数据库提供了最佳查询优化技术,在大部分情况下无需管理员介入,最大限度地提高了应用/查询的性能,但在一些个别的情况下,因应用性质或数据分布独特性有可能造成sql语句占用较高系统总体资源。ADDM可以自动识别占用较大资源的sql语句。然后,Oracle数据库10g对其进行分析,通过查询优化器新增加的自动调整功能(称之为自动调整优化器)提出解决方案。在此请特别注意的是,这种解决方案完全是由优化器给出的,而不是任何外部工具采用某些预定义的试探方法生成的。
自动调整优化器检验自身的估算,然后采集辅助信息修正估算误差。这一系统还能根据过去sql语句的执行记录,以定制的优化器设置方式采集辅助信息(如第一行或所有行)。通过辅助信息建立sql Profile,并提出创建它的建议。sql Profile创建之后,查询优化器(在常规模式下)可以生成经过准确调试的方案,而不改变应用代码。这种独特的功能在DBA支持第三方应用时非常实用。这时,他们不必访问代码,否则当代码发生变化时,可能会使支持协议失效。
管理企业
通过Oracle企业管理器10g网格控制(Oracle Enterprise Manager 10g Grid Control),Oracle推出了真正基于Web的管理控制台,DBA可以从任何位置进行访问,且实现零客户端程序安装,完全防火墙兼容。性能管理(Performance Management)功能包括通过web浏览器进行实时图形数据库性能监控。为了简化Oracle软件的管理任务,网格控制配置了完整的软件库存清单,包括硬件、操作系统、操作系统补丁、已装Oracle软件、已装Oracle补丁。网格控制跟踪硬件和软件的安装变化,便于出现问题时查明“哪些部分发生变更?”
网格控制通过Metalink直接与Oracle支持(Oracle Support)连接,可以快速查询企业内部已装Oracle产品的相关补丁。补丁可以在特定目标的上下文中查找,也可以在必要时,由管理员查询特定的路径。确定所需补丁的位置后,网格控制可由Oracle Metalink下载补丁,将其粘贴到相应的目标主机中。
复制软件安装用于开发或QA是许多数据中心的日常工作。对于Oracle软件来说,网格控制使这类克隆安装工作变得相当容易。网格控制的克隆向导可以自动复制数据库和应用服务器安装(特别是Oracle本地安装目录)。由于具有“多播”功能,因此,即使多个目标主机的多个克隆也同样可以在一次操作中完成。网格控制的本地克隆已实现智能化:主机名、IP地址及其他环境设置都可以在新克隆的主机上自动进行调整。
DB2控制中心在一个终端上提供了通用和集成的成套工具,用于管理跨越不同软件和客户机硬件平台的本地及远程数据库。DB2的这种新功能,Oracle早在1994年就已经应用到Oracle企业管理器框架中了。在DB2 Version 8.1中,您也可以选择采用Web 健康中心(Web Health Center)通过Web浏览器访问健康监测信息,执行新的DB2命令。
高可用性
在今天快速发展的经济环境下,构建高可用性的IT基础设施对于各类企业成功运作显得至关重要。关键的应用服务器或数据一旦出现问题会危及到整个企业,收入受损、客户丢失、导致赔偿,不良的形象会在客户中产生持久影响,破坏企业的声誉。故障停机的损失往往不大容易用直接成本来衡量。据Standish集团的DARTS调查4,系统故障停机一分钟给企业造成的损失大约为每分钟2 500至10 000美元。按照这一指标计算,即使数据可用性达到99.9%,企业每年也要付出500万美元的代价。在设计具备容错和恢复能力的IT基础设施时,考虑到非计划停机和计划停机因素是非常重要的。非计划停机主要是由于计算机故障或数据问题造成的(损坏、人为错误)。计划停机主要是由于数据变化或系统变更,必须对生产系统做相应调整。计划停机可以使运行中断,特别是支持多个时区用户的跨国企业。这种情况下,对系统进行设计,最大限度减少有计划的停机是很重要的。计划停机包括日常管理、定期维护和执行新部署。
数据库事故恢复能力
Oracle和DB2都具有联机和脱机备份与恢复基本功能。尽管可以提前制定并实施备份方案,但很难对所有恢复情况做出预测。Oracle综合备份与恢复能力大大优于DB2。因此,Oracle几乎可以满足所有备份和恢复要求。
Oracle数据库10g恢复管理器(RMAN)采用独创设计,具有关键Oracle数据最佳恢复功能。在不增加成本和安装附加设备的情况下,完全可以由RMAN来管理Oracle数据库文件的备份和恢复。由于与Oracle内核紧密集成,因此RMAN达到了具有洞察力和智能化的水平,可以有效恢复Oracle数据库。Oracle数据库10g RMAN具备许多先进的功能,例如:
1. 快速恢复区 - 组织管理恢复的相关文件
2. 优化增量备份 - 仅对需要备份的变化块直接备份
3. 增量更新备份 - 合并数据库映像拷贝和增量备份,提供快速有效的数据库恢复
4. 企业管理器与RMAN - 提供点击备份与恢复向导
Oracle数据库10g 备份与恢复还推出了许多创新功能,如:
1. 备份压缩
2. 当重建发现丢失或损坏的备份时自动恢复前一备份
3. 自前次恢复时间点恢复-通过复位日志恢复
4. 恢复期间自动创建新文件
5. 在备份或恢复中自动实现通道故障转移
6. 自动表空间时间点恢复
7. 全DB“开始备份”命令加速镜像分割
8. 经过改进的恢复并行操作(2至4倍)
9. 表空间重命名
10. 存档日志代理(第三方)备份
11. 基于时间窗口的加速备份
12. 跨平台可传输表空间
由于能够生成即时备份,因此分割镜像备份非常实用。Oracle和DB2都具备分割镜像备份功能。不过,Oracle可以在数据库运行和磁盘写入的同时分割镜像。而DB2镜像分割时必须挂起数据库I/O,因此操作过程中,数据库是不能写入的。
如果存档日志文件损坏,Oracle能够通过LogMiner工具翻阅损坏的日志文件,恢复日志文件中记录的交易。对于DB2来说,存档日志文件损坏意味着不仅特定日志文件中的交易全部丢失,而且损坏日志文件之后创建的存档日志文件也会丢失。
采用Oracle的块级介质恢复功能,当只有一个块损坏时,只是这个块需要恢复,文件的其余部分,即含有这个块的表仍然可以在线访问,从而提高了数据的可用性。DB2不能以块为单位恢复数据,因此需要将整个文件脱机、重建、恢复。
人为错误恢复
大量调查结果显示,40%的应用中断是操作者或用户错误造成的。这些都属于人为操作不当。但这类错误很难避免,而且没有先进的计划工具和相应的技术很难恢复。
Oracle数据库10g提供了人为错误修正技术,称为Flashback。Flashback配置了sql接口,可以迅速分析修复人为错误。Flashback是Oracle数据库10g的独创技术,可以任何粒度级别进行恢复,包括行、事务、表和整个数据库。
1. Flashback查询可供用户查询过去某一时间点的数据,重建被意外删除或更改的数据。
2. Flashback版本查询可按行查看数据库一段时间内发生的变化。
3. Flashback事务查询可按事务查看数据库的变化。
4. Flashback数据库是一种按时间点进行恢复的新战略,可以快速将Oracle数据库倒回至以前的时间,以修复逻辑数据损坏或用户错误造成的问题。
5. Flashback表可方便快捷地恢复过去时间某一点的表或一组表。
6. Flashback删除为删除对象提供安全保证,您可以简便快速地恢复删除的表及其相关的对象。
增量磁盘备份及Flashback技术不需要分割镜像备份。DBA从备份到修正错误不必经过漫长的重建过程,在不采用费用很高的磁盘镜像技术的情况下,可以显著提高恢复速度。
在线维护
理想环境下,DBA应该能够在线执行所有维护工作,即在操作过程中可以继续所有业务交易。Oracle不仅在线执行交易的能力强于DB2,而且显著提高了执行的控制能力。几乎每一种重组操作在Oracle中都可以在线执行,创建新索引、合并或删除现有索引,或对表进行各种改变,包括加减字段。而DB2只能在线合并索引。DB2中的所有其他操作都需要停止数据库交易,释放所有的锁5。
Oracle数据库大量维护工作可以在数据库运行、用户更新或访问数据不中断的情况下进行。索引可以在数据库运行状态下,最终用户读取或更新数据的同时添加、重建或整理。同样,表也可以在线重新定位或整理。在不中断最终用户查看或更新基础数据的情况下,还可以对表重新定义,改变表类型,加减、重命名列和改变存储参数。Oracle数据库10g这种功能强化后,可以:
1. 支持快速克隆表索引、授权、限制及其他特性;
2. 在线将Long数据类型转换为LOB数据类型;
3. 建立唯一索引,而不需要使用关键字。
Java?和PL/sql?存储程序可以动态更新,Oracle管理所有从属关系,在数据库中正确集成新程序,对最终用户的运行不构成影响。Oracle数据库10g中强化了这种功能,从而可以在相关存储程序不进行重新编译的情况下,对表做各种变更。
数据中心灾难
Oracle Data Guard是在业内推出的最全面、最可靠的灾难恢复解决方案,可以:
1. 防止人为错误导致的运行中断和系统灾难
2. 零数据丢失保护
3. 近乎实时的数据同步
4. 集成基于GUI的管理框架
Oracle Data Guard可以在各种系统灾难下对客户加以保护。Data Guard可以自动完成复杂的任务,为维护备用系统提供监控、告警和控制功能。同时,除报告外,Data Guard还利用备用服务器进行维护、更新(硬件、操作系统和数据库软件)和日常管理,从而减少了计划停机。
IBM没有与Oracle Data Guard相当的产品。采用DB2,每个备用数据库都是一项定制作业,向备用站点发送重复日志之类的基础工作都需要依靠用户编写日志传送标注。DB2用户创建的备用数据库“解决方案”可靠性差,且实施成本高。
数据仓库与商务智能
商务智能系统的良好运行建立在数据仓库的基础上,这种数据仓库要求能够满足日益扩大的受众对信息不断增长的要求。无论数据存储在何处,要为客户提供即时信息。无论是大企业,还是中小企业,也无论是传统企业或.com公司,商务智能系统都要面临上述两方面的要求。事实上,AMR调查结果显示,在为不断增长的用户提供即时信息和透明支持大量数据源的推动下,数据库正逐渐演变为数据仓库,这种合并过程目前正在以每年40%的速度发展。这意味着,数据仓库能够储存更多数据,支持更多用户,运行速度更快,而且不降低服务质量。数据仓库的核心要求:性能、扩展能力和管理能力仍是成功部署数据仓库的关键因素。
Oracle数据库10g是一个基于标准的独立平台,可满足服务器一侧商务智能和数据仓库的各种要求,包括提取、转换和装载(ETL),在线分析处理(OLAP)和数据挖掘。在商务智能环境下,Oracle数据库的功能不需要多个引擎。这种商务智能架构具有许多优点:
1. 快速部署:部署商务智能系统时不需要整合多个服务器组件;
2. 降低管理成本:一个服务器意味着所有数据都存储 在一个位置,通过一个工具进行管理。而且,不需 要管理各服务器存储数据的同步流程。当Oracle 数据库10g装载新数据时,可供所有商务智能使 用。
3. 有利于制定决策:采用一个数据库,所有商务智能用户都可以迅速访问商务智能系统中的数据,因为 不需要从一个服务器到另一个服务器过滤数据。
4. 安全:全部数据存储在一个数据库中,无论采用何 种方法访问,IT管理员都可以保证商务智能数据的安全。
5. 可用性:Oracle数据库10g具有出色的可用性,远 远高于其他智能产品的可用性水平。
扩展性
长期以来,Oracle一直支持各种平台和操作系统,为客户提供了灵活的选择和协商的余地。Oracle支持当前扩展能力最强的64位对称多处理(SMP)系统和非统一存储器访问(NUMA)系统,并且一直在支持90年代中期以来的同类系统结构。Oracle和IBM支持的大规模并行处理(MPP)系统,由于需要管理多个操作系统和数据库实例,因此对维护有比较高的要求。IBM SP是针对采用分区技术的IMB DB2 UDB ESE(以前称EEE)设计的MPP 平台。IBM解决方案依靠散列分区技术,在MPP合成系统中提供理论上对称的数据分布。这种方法需要进行MPP管理和调试,以最大限度减少实际业务查询中的数据变形问题,这些在Oracle真正应用集群的非共享/共享磁盘系统中得到显著改善。
IBM的VLDB实例还是以IBM平台为主,尽管IBM DB2推出了基于其他平台的产品(HP,Sun,Linux,Windows),但系统在这些平台上的性能和扩展能力几乎没有实例加以证实。
以下是部分Oracle数TB(数据)客户:
1. Amazon.com,13TB数据,运行在HP Superdome
2. Acxiom,6TB数据,运行在HP AlphaServer集 群
3. AtosEuronext,1.5TB数据,运行在RedHat Linux 集群
4. Best Buy,1.5TB数据,运行在Sun e-1000
5. 高露洁,2.6TB数据,运行于基于IMB P690的 SAP BW Financial Institute,
6. 5TB数据,运行在多节点206 cpu IBM SP
7. 法国电信,21+TB数据,运行在HP V-2500
8. 意大利移动电信,9.6TB数据,运行在HP AlphaServer集群
并行机制
Oracle可扩展的、并行决策支持战略以动态并行机制为核心。这种方法可以实现完全透明的并行,不需要静态表分区,大大减少了数据管理工作,最大限度地利用硬件的潜在能力。O在racle用于数据维护的分区选项中,也增加了分区间的并行处理支持,包括并行DML。Oracle还支持每个分区内查询和插入的并行处理。
对比之下,IBM(DB2 UDB EEE)最初选择分区作为并行处理手段。IBM提出了“UNION ALL”工作区的建议。有趣的是,IBM基于OS/390(Z/OS)的DB2却并未选择这种方法,而是采用了Sysplex共享磁盘,分区(范围)的方法只是用于管理。
Oracle8i的优化器增加了“物化视图”,这是RDBMS中的一种分层汇总表,查询可以透明地转至汇总层,从而极大地提高了查询性能。Oracle对事实表和维表实现了这种功能。IBM在DB2 UDB中采用了类似方法,但仅支持事实表(Version 7以上版本)。
现在,Oracle基于成本的查询优化器成本计算功能可应用于Oracle的数据库资源管理器,用以给不同的用户组(或“查询用户”)配置成本限制,防止不够完善的查询干扰同样有性能要求的其他用户的查询。 而IBM则是通过工具由数据库外部解决这一问题。
有必要指出,Oracle还在数据库中嵌入了OLAP选项和数据挖掘选项,因此可以在数据存储位置,而不是商务智能工具中进行高级分析,从而提高了系统的性能。OLPA选项可通过sql或Java API访问。数据挖掘选项可通过Java API访问。
分区
分区可以将大型数据库结构(表、索引等)分解为比较小的,更加易于管理的结构单位,同时,可以提高查询的性能和资源利用率。
DB2仅支持散列分区方法,与Oracle分区方法相比存在很大的局限性和明显的弱点。由于只能进行散列分区,因此DB2不支持“滚动窗口”,就管理性而言,这是一种严重的不足。“滚动窗口”可以使规定期间的数据(如一周、一个月)持续地由最新数据在线替换旧数据。DB2散列分区在加载新数据时,要求所有分区的数据重新分布,因此延长了加载时间,降低了数据的可用性,因为数据重新分布过程中,表呈锁定状态。同样,当旧数据存档或删除时会涉及到所有分区。这样会干扰常规的插入操作,造成空间碎片。
DB2的另一个缺点是要求表与索引之间均衡分区。这意味着,不能创建全局索引,包括分区的或非分区的。对于通常需要采用全局索引有效访问某个记录的OLAP环境来说,这是一个严重的问题。采用DB2,应用设计人员无法灵活地定义在分区中的索引策略。 DB2分区方法存在的这些局限,使得管理大量数据的工作变得十分复杂。在这方面,Oracle提供了丰富的选择方法,不仅提高了可管理性,而且改善了系统的性能。
数据加载与存档
Oracle数据库10g采用了Oracle数据泵(Data Pump),这是一种基于服务器的统一框架,可用于Oracle数据库系统之间快速传送批数据和元数据。利用直接路径API,Oracle数据泵可以最快速地完成Oracle系统的数据加载和卸载。Oracle数据泵是企业级服务器基础架构,具备加载和卸载全并行功能、重启功能和监控功能。Oracle数据泵的所有接口全部外置,因此您可以编写自己的数据传送工具。利用数据泵输出(Export)和输入(Import)工具,可以在目标平台上卸载或重新加载任何数据对象的子集。如果在文件系统不同语法的平台间传送数据,现在可以改变某些对象输入时创建的定义,数据不会发生丢失。
DB2输出功能一次仅允许传送一个表的数据。因此,假如模型中有20个表,就需要执行20次输出作业,一次完成一个表。除浪费时间和人力外,还会由于表的依赖关系在不同时间传送造成输出数据不一致。因此,如果模型中含有ORDERS和ORDER_ITEMS两个表,由于ORDER_ITEMS在ORDERS表之后输出,ORDER_ITEMS的输出数据中可能含有ORDERS表的输出文件中不存在的项。这种不一致会造成输出文件根本无法使用,因为这样的文件不能用来重建完全一致的数据快照。而Oracle不仅可以让管理员在模型、表和数据库层输出数据,而且可在输出作业开始后,保证输出数据相对于时间点的一致性,不必考虑给定表的输出时间。因此,在上例中,管理员只需执行一次作业,输出完整的模型,不必担心输出数据出现不一致的问题。
第二,由于DB2输出文件不能提取某些表和模型属性,因此根本无法用来逻辑创建模型或数据库。据“DB2数据传送指南与参考”介绍,DB2 输出不支持带有类型列的表单,不能保留参照完整性约束、检验约束、物理空间分配设置、默认列、外部关键字定义和触发器等属性。同时,也不支持任何非表的其他数据库对象,如视图、存储过程等。因此,与随时用来执行逻辑备份、重建模型或数据库的Oracle输出/输入工具不同,DB2工具仅用于表输入输出数据。即使这种用途也不是随便可以执行,因为DB2输入不能用于重建LOB列定义大于1GB以上的表7。
Oracle sql 加载器(Oracle sql Loader)是另一种由外部文件向Oracle数据库表加载数据的有力工具。与DB2 Load不同,sql Loader可以在同一次加载会话中,将数据装入多个表,从而使采用sql函数操纵数据成为可能,数据在加载过程结束后可以进行访问。这对于DB2来说是无法实现的,除非管理员备份表空间,启动完整性约束8。除简单数据加载外,Oracle数据库10g还配备了成套服务器功能,可满足ETL处理要求(提取、转换、加载)。采用Oracle外部表功能,平面文件等外部源数据可以配置在数据库中,如同正常数据库表一样。这些“外部表”可通过sql存取。这样,外部数据可以采用sql、PL/sql和Java直接查询,并行装入数据库。外部表在一个步骤中完成数据转换和装载,从而大大简化了ETL处理过程。DB2则需要采用多个人工步骤。DB2首先需要将外部数据装入“分级表”,然后进行sql转换,最后才能进行处理。因此,增加了DBA的工作量,延长了ETL的周期!
操作影响
在许多组织中,一个Oracle DBA可以管理多个数据库。对于大规模决策支持,以下实例可以有力地证明Oracle系统如何精减实际需要的的DBA人员数量:
1. Acxiom,16TB数据库,2 DBAs
2. Acxiom,6TB数据库(RAC),2 DBAs
3. Amazon.com,16TB数据库,2 DBAs
4. 法国电信,21+TB数据库,2 DBAs
5. 意大利移动电信,12TB数据库(OPS),3 DBAs
6. WestPac,2.3TB数据库,2 DBAs
影响操作的另一个考虑因素是技术能力问题。Oracle的技术支持能力远不止数据仓库/决策支持实施(大多数分析人士认为这只占其技术支持的30-50%),也并不仅限于Oracle现有经验老道的顾问和设计师。一般情况下,Oracle客户利用内部技术力量完成部署工作。需要咨询帮助的客户可找Oracle,四大咨询公司及大量二级专业咨询机构。因此,Oracle项目经理可以在丰富的技术资源和灵活的价位中进行选择。例如,最近“Monster.com”的Oracle技能调查显示,初步掌握Oracle技能的人员达到5000人,而掌握“DB2 UDB”技术的人很少(不到200人)。
应用开发
每个企业都正在开发基于互联网的应用,以充分利用互联网无处不在、廉价和开放式标准的优势。不过,开发这类应用面临严峻的挑战,对开发平台也提出了更高的要求。选择正确的平台是成功开发应用的必要条件。Oracle数据库10g为开发用于网格计算的灵活、可扩展、高性能的数据库应用,提供了最为全面的功能。
调查显示,大部分成套应用软件主流供应商首先支持Oracle。这是各类软件中的普遍现象,包括ERP、CRM、采购和供应链。由于Oracle系统已具有相当大的使用规模,具有基于Oracle部署成套应用丰富经验的实施提供商也相当多。
大部分应用都要涉及某种类型的文本操作,sql和PL/sql所固有的对于正则表达式操作的支持可对这些应用提供有力帮助,它彻底改进了在数据库中进行文本搜索和处理的能力。在DB2中,正则表达式支持由PCRE库软件提供,这是一种数据库外部的开放源代码软件。
ANSI sql多重集操作可以使数据挖掘应用在数据库内部处理市场分类信息(market basket information)。Oracle现已支持基于嵌套表(Nested Tables)的sql多重集操作。DB2根本不支持聚集类型!
Oracle数据库10g有两种新排序方法,一种是大小写不敏感型排序,另一种是音调不敏感型排序。这样便于应用处理例如姓名和地址这样的数据,他们可以使用音调和混合大小写存储。IBM DB2不支持大小写不敏感型操作。
实行最新Unicode标准后,Oracle字符集ATL32UTF8和AL16UTF16(gb2312和UTF-16)现已支持Unicode 3.2,加4字节补充字符。IBM DB2支持Unicode 3.0,但不支持补充字符。
大型对象块(LOB)用于存储非结构数据,如视频、音频和文档。Oracle数据库10g可以存储检索最高128 TB的LOB,IBM DB2最多仅能存储2GB LOB。
Oracle数据库10g的sql Model子句可将查询结果作为多维数组集合,导出精细的相互关系公式。这些公式可用于复杂数字运算应用,如预算和预测,不需要提取数据组成电子数据表,或执行复杂的连接与合并操作。
对于Microsoft .Net开发人员,Oracle推出了专门用于.Net的高性能Oracle数据供应器ODP.NET (Oracle Data Provider),这一工具符合ADO.Net标准。ODP.Net支持Oracle固有的数据类型,如REF光标和LOBS。DB2只有DB2数据供应器的开发版,仅提供相当于ODBC.Net的一个普通接口。
Web服务正在渗透到企业计算的各个层面,从成套电子商务应用(如ERP,CRM)到中间层(如J2EE,.NET),直至数据库基础设施。数据库中结构数据、非结构数据和数据逻辑的激增,XML正在被越来越多地用作数据交换格式,以及HTTP作为异构环境下普遍采用的传输机制得到事实上的认可,引起人们对数据库Web服务的广泛兴趣。数据库Web服务是双向的:数据库作为服务供应方,即由外向内调用时,客户机应用可以通过Web服务机制访问数据库;数据库作为服务消费方时,即由内向外调用时,数据库会话中的SQL查询或应用模块使用外部 Web 服务。Oracle可以帮助您将数据库变为服务供应方。这样,您可以在企业内部网中共享数据和元数据,通过SOAP请求访问数据库操作,如触发器。同样,Oracle也可以帮助您将数据库变为服务消费方访问动态数据。这种功能自Oracle 8i开始推出,Oracle数据库10g对这一功能进一步正规化,在JPublisher中添加了新应用,支持数据库成为Web服务供应方(数据库中配置SQL查询、sql DML、Java),并使JPublisher支持数据库成为Web服务消费方。DB2的Version 8也提供Web 服务供应方和消费方支持,但由于DB2未与JavaVM集成,因此必须依靠手工处理静态SOAP信息,或非SOAP程序库。
基于Web的开发工具
Oracle HTML DB是专门为Oracle数据库10g开发的,基于浏览器的web开发部署框架。这一工具将易用、高效的个人数据库与具有可用性、可扩展和安全的企业数据库加以整合。Oracle HTML DB是一种说明性开发工具和开发部署面向数据库web应用的框架。Oracle HTML DB内置功能提高了应用开发速度,如设计主题、导航控制、模式处理器和灵活的报表。您只需通过 web浏览器,即可快速组装数据库驱动的先进web应用。
许多组织采用电子数据表和个人数据库管理信息,因此浪费了大量宝贵时间。这些产品虽然易用,但不能适于在 web环境下部署,也不能逐渐加以扩展支持多用户数据更新。将大量小的工作组级数据库,包括电子数据表整合在Oracle数据库之下,免去了开发人员控制方面的麻烦,使得Oracle HTML DB在以下方面表现出明显的优势:
1. 当前电子数据表和个人数据库中锁定的数据部 署在web环境下,可以进行多用户并行更新,从而 提高了存取能力。
2. 电子数据表不再以附件形式通过电子邮件传送,合并和清除多个数据拷贝,从而节省时间。
3. 将分散的信息合并到安全、可靠、可扩展的Oracle数据库中,提高了安全性和可用性。
5. 构建您从未有过的应用,即使是“快速而又随性”(quick and dirty)的应用也可以立即为企业用户部署在web环境下。
全球化
Oracle全球化开发包(GDK)包括成套Java API,为应用开发人员采用Oracle设计的最佳的全球化实践和功能开发全球互联网应用提供了基础框架。
DB2尚未提供Java全球化API。不过,IBM可以提供Java 全球化库,称作ICU(Unicode国际组件),这是一种开放源码,可提供GDK的子集功能。与GDK相似之处在于,ICU可以提供低端API,用于语言分类、数字格式化、补充字符支持等。但与GDK不同的是,这一工具不能提供构建全球互联网应用的高端API,如用户地区检测、预翻译地区名、全球应用配置文件、语言和字符集检测、自动转移、撤消本地化内容等。
管理您的所有数据
非结构数据
结构数据只是组织中关键数据的一部分。电子数据表、字处理文档、视频剪辑、报纸文章、新闻稿和地图等,也仅是可以在中央库中集中管理的一小部分非结构对象。Oracle数据库10g以其现有的强大功能,可以集成的方式管理您的全部数据,关系型数据、电子邮件、文档、多媒体、XML和专用数据。具体产品包括:
1. interMedia
a.图像扩展功能,可存储检索图像
b.音频扩展功能,可存储检索音频剪辑
c.视频扩展功能,可存储检索视频剪辑
d.位置扩展功能,可检索与坐标相关的数据
2. Text
a.文本扩展功能,可检索文档及文档摘要
3. 本机XML存储
4. 空间数据选项
a.提供数据与坐标的链接
b.地理信息系统(GIS)伙伴供应商的典型支持
IBM一直采用“扩展器”作为处理这类数据的方法。IBM将所有媒体和元数据存储在关系数据相关的各个表中,因此处理的工作量大,媒体访问的I/O开销大,管理费用高。Oracle数据库10g采用先进的技术可以对元数据进行自动化处理。而IBM DB2若想使DB2表空间接收元数据,则需要DBA手工处理各个流程。由于IBM采用触发器,每创建一个媒体对象需触发一次触发器来更新含有元数据对象和元数据的管理表,大大增加了处理成本。如果采用媒体数据类型的Java对象方法,IBM不能提供用于媒体访问的Java类库,也不能为JSP应用开发人员提供JSP Tag库。客户必须自己编码。大量需要开发维护的代码使得应用成本大大高于开发维护费用。
XML
Oracle XML DB是Oracle9i数据库第二版推出的一种高性能的XML存储检索技术。这一技术在Oracle服务器中全面结合W3CXML数据模型,为导航和查询XML提供了新的标准访问方法。采用XML DB,您可以同时利用关系数据库技术和XML技术。XML DB还在数据库中添加了XML库。Oracle数据库10g Intermedia 现已与XML DB 集成,可以使图像等含有媒体的XML文档具有这些图像分析过的元数据,从而可以标注索引,便于图像和母XML文件的定位。
IBM在DB2 v8.1 XML扩展器中提供数据库XML技术。扩展器是一种松散耦合挂件,无法与Oracle固有XML支持相比。IBM在其信息集成器8.1(Information Integrator)中采用了XML封装数据集成技术。与Oracle不同,DB2必须采用单独软件XML扩展器(XML Extender)和文本扩展器(Text Extender)经“扩展”后支持XML。这三个产品是由全球不同组织分别开发的,彼此之间往往互不协调。这种系统的用户不仅受到产品集成度差带来的管理方面的问题,而且松散耦合给功能和性能也造成不利的影响。
Oracle的XML DB技术优于IBM的方法,具体表现在:
1. 本身支持XML数据模型及其他XML标准
2. 集成sql、XML、Java和Text处理,不需要添加 部件,提高了扩展能力
3. 先进丰富的编程存取功能
4. 成套XML产品,包括支持面向内容XML的XML 库
Butler Group在对主要XML数据管理技术进行比较后的报告中总结道:“IBM DB2令人感到失望…总体来看,这一系统缺乏Oracle 9i那样丰富的支持功能…在编写本报告之前,我们征求了专业人士的意见,大家一致期待着如何给这两套系统打分…一种可怕的意见认为,可以将Oracle和IBM并列第一。这不仅是不可能的,而且两个系统几乎不可同日而语…”
结论
Oracle 数据库10g是第一个专门为企业网格计算设计的数据库。Oracle 数据库10g在系统性能、扩展能力、资源利用率、管理性、可用性及满足新兴技术发展方面继续保持业内领先水平。Oracle使网格技术真正成为企业的解决方案。
Oracle数据库以其25年的技术优势和专业经验为基础,始终是市场上首选的数据库产品。采用Oracle数据库不仅可以立即实现经济效益,而且这种投资也可以保证满足您未来的需求。