|
|
Oracle9i数据库除了延续Oracle 8i强大的功能之外,还加入许多革命性的数据处理技术,其目的在成为网际网络应用以及电子商务的最佳数据库平台。究竟我们应该如何来评估一个数据库系统的优劣呢?一般来说,以下几点是重要的参考依据: n 数据库可用性(Availability) n 数据库延展性(Scalability) n 效能表现(Performance) n 程序开发环境 n 管理的难易度 而Oracle9i对于以上各项,均提供了绝佳的解决方案: Oracle9i数据库之高可用性与稳定性 不管是在任何环境下,Oracle9i都可担任执行关键性任务(mission-critical)之数据库系统。在维持数据库的高可用性与稳定性方面,Oracle9i期望达成三个目标: Ø 提供零资料遗失之环境 Ø 针对已毁损之数据库,提供快速且精准之修复技术 Ø 尽量减少数据库离线处理的需求 唯有完全符合以上三点之需求,才足以称得上具备高度可运转性与稳定性之数据库系统!所以Oracle提出数项特殊技术,使得Oracle9i在可运转性方面的表现傲视群雄,稳居电子商务应用数据库之领导地位: 利用强化后的备援数据库(Standby database)与Flashback Query机制,提供零资料损失之环境 Oracle9i数据保护方面新增了多项功能,特别是备援数据库的许多运作步骤都可以自动化,例如初始化备援数据库、主从数据库之间的切换,以及错误移转…等。简单的说,主数据库内的所有资料将完整地保留在备援数据库,一但主数据库发生问题,系统将会立即切换至备援数据库,所有资料交易不致停摆,资料的一致性与完整性也不会受到影响。 不过有一点要注意的是:虽然主数据库可搭配备援数据库协同运作,将资料遗失或毁损的情况降到最低,但是身为一个数据库管理者,您绝对无法预防与避免人为性错误!举例来说,业务专员可能不小心删除一笔重要的客户资料;或是程序设计师误删了产品价格文件。诸如此类的人为性错误不胜枚举!也许有些读者心里会想”数据库不是都会做备份吗?既然资料不小心被删除了,再还原回来不就好了?” 没错,这样的想法完全正确!但是您可能不了解一般大型数据库的备份与还原(Backup & Recovery)机制(有机会的话我也会为各位详细介绍Oracle9i数据库的备份机制)。事实上,在进行数据库的修复或是复原动作时,或多或少都会影响到系统的正常运作,这需视您处理的资料量多寡以及采用的备份方式而定。 换句话说,还原数据库也需要耗费”时间”!我所指的时间不仅是DBA花在重建数据库的时间,也包含”数据库因为受影响而停摆的时间”!试想,如果贵公司的数据库因为人为性错误频率过高,导致系统的平均可运转性偏低,这样子的数据库严格来说也不能称为好数据库。(哇!那要是以这个标准来看,岂不是没有一家数据库是可以用的!?请注意,我所探讨的是因为人为因素所产生的问题,跟数据库是哪个厂牌并没有直接关系) 为了将上述问题发生的情况降到最低,Oracle9i新增了一项回溯查询(Flashback query)的功能。经过适当组态之后,如果使用者不小心删除了重要数据,即使删除指令已经被commit,也可以藉由回溯查询回存特定时间点的资料。 强大的数据库修复能力 以数据库的修复功能而言,其实Oracle 8i就已经做的相当不错了。但是Oracle9i提供更精确的资料复原能力。举例来说,如果某一个table所在的磁盘区块发生毁损,Oracle9i全新的磁盘修复功能可以只针对毁损的区块进行修复,同一个资料表的其它资料区块则依旧处于online状态,不会影响其它使用者的存取! 利用快速的资料回写机制,缩短数据库离线时间 万一Oracle9i数据库服务器不幸发生当机情况时,新的资料修复算法(two-pass recovery algorithm)可以寻找出资料文件内哪些区块是需要进行读写修复的,有效地缩短数据库重新上线的时间。此外,Oracle9i也提供一些特殊的参数,例如:FAST_START_MTTR_TARGET可用来限制数据库平均恢复时间(即当机之后多少时间之内必须恢复上线状态) Oracle9i的高延展性 在数据库系统的延展性方面,Oracle9i Real Application Clusters可搭配适当组态的丛集架构(Clusters),提供企业应用程序高度的延展性与可用性。藉由简单易用的单一系统管理方式,Oracle9i Real Application Clusters可让丛集系统内的多个节点同时存取单一数据库,并利用水平延展的方式有效提升整体数据库系统之效能。此外,Oracle9i Real Application Server还具有自我调整的能力,可将数据库的负载平均分配到丛集系统中的不同节点。 Oracle9i Real Application Clusters 之快取融合(Cache Fusion)功能 Oracle9i之快取融合功能可集合丛集中各节点的高速缓存,以满足数据库之需求。换句话说,查询指令可由本地端的高速缓存或是其它节点的高速缓存获取所需的资料,降低磁盘读取的机会。因为本地端节点可以由丛集数据库中任何节点得到所需的资料,在进行更新资料时将不需要为了同步化资料而产生额外的磁盘读写动作。磁盘读写动作只会发生在高速缓存内找不到所需资料,或是资料交易需被确认(Commit)时。这种建置方式可以有效地扩大数据库高速缓存的工作范围,减少磁盘读写动作,且大幅提升数据库之作业能力。 可延展的连线作业状态管理功能(Session State Management) Oracle9i新的分享式内存配置功能、Java联机支持能力的改进、以及多执行绪服务器之增强功能等特性,都可以大幅减少每一位Oracle9i数据库使用者所需占用的内存空间。您可预期的是:Oracle9i将允许您在同样的硬件环境上服务更多的数据库使用者,并执行更多的应用程序! Oracle9i数据库之效能提升 Oracle数据库的效能表现一直以来都是在水准之上,最适合担任企业内部执行关键性任务之数据库服务器。Oracle9i为了在现今网际网络与电子商务环境中能够完成更严苛的数据处理要求,数项特定的数据处理引擎也经过最佳化的调整。 改良后的PL/SQL引擎可针对PL/SQL指令选择最佳的执行计划: 之前版本的PL/SQL引擎利用Cost-Based Optimization的算法来决定执行计划(execution plan),主要是以系统I/O处理资源作为衡量的标准。而在Oracle9i中另加入了CPU-Cost与Memory-Cost的最佳化算法,使得PL/SQL引擎可利用最佳的执行计划处理资料。不仅速度较快,系统资源的使用也更有效率! 先进的资料I/O动作: 在I/O处理方面,Oracle9i使用自我微调式的直接读写方式存取资料(self tuning direct I/O)。在索引上则是利用预先抓取(prefetching)、以及忽略/扫描(skip/scan)的方式进行索引值之搜寻。无论是资料仓储环境或是线上交易系统都可大幅提升资料读写之效能。特别是在超大型资料仓储系统(1000GB以上)的分析环境,Oracle9i 数据库也拥有相当令人激赏的表现。 图1:超大型资料仓储环境下各数据库系统之评比。 资料来源:Transaction Processing Performance Council(2001年10月)。 更佳的Java虚拟机器: Oracle9i内建的Java虚拟机器拥有下列特点: Ø 改良后的垃圾回收机制(garbage collection)能够更有效率地管理内存。 Ø 更佳的Java语言原生编译技术可以更快速地编译Java程序。 Ø 增强式对象分享功能可提升Java程序的执行效率。 此外,JDBC与SQLJ的效能提升也同时改善了中介层以及客户端的Java应用程序执行效率。 新增的网络通讯协议可提升联机时之效能: Oracle9i的网络服务新增了一项虚拟接口(Virtual Interface,VI)通讯协议,对于应用程序服务器与后端Oracle9i数据库之间的联机大约有10%之效能提升。VI与TCP/IP最大的不同点在于:VI是专为丛集运算环境特别设计的精简型通讯协议。其运作原理是利用高速的网络硬设备来分担资料讯息传递之负荷,让CPU可以专注于更重要的资料运算动作。 Oracle9i数据库之开发环境 为了无限提升程序设计师的研发能力,Oracle已将开发企业级应用程序所需具备的一切工具整合在新的开发工具套件(Oracle Internet Developer Suite,Oracle iDS)之内。Oracle iDS包含数种功能强大之开发工具,如Forms Developer、Designer、JDeveloper、Reports Developer、Discover以及Portal。 Oracle iDS具备以下特点: n 建立在Java、XML以及CORBA等网际网络标准之上。 n 适合各种研发方式,例如商业逻辑组件开发、可视化模型建构。 n 提供轻松建置企业入口网站之解决方案。 例如Oracle Portal就可从企业应用软件的层面整合各式信息,快速建置出具个人化功能的企业入口网站。 而在快速开发应用程序方面,Oracle JDeveloper 9i是一个整合式的可视化Java开发环境,且支持J2EE与XML。可提供Java程序设计师快速开发出Java Applets、JSPs、Servlets、EJB等 Java应用程序。除此之外,JDeveloper 9i也可搭配BI Beans(Business Intelligence Beans)与Oracle9i OLAP Service,建构出高效能的资料仓储分析系统。 图2:Oracle9i JDeveloper 100% Java开发工具。 Oracle9i数据库之管理工具 在Oracle9i内提供一套图形接口的数据库管理工具 — Oracle Enterprise Manager(OEM)。Oracle9i Enterprise Manager主要的核心应用程序如下:Oracle Enterprise Security Manager、Oracle9i Text、Oracle Real Clusters Management、Oracle Spatial Index Advisor、Oracle Directory Manager、Oracle Forms Server Manager、Oracle Policy Manager、OLAP Services、Oracle Cube Viewer、Oracle Net Manager、以及Oracle Data Guard Manager。 有了Oracle9i Enterprise Manager,DBA将可以集中管理Oracle9i数据库以及相关的服务。OEM具备以下特点: Ø 提供图形化管理接口,有效降低Oracle数据库管理者的工作负担,并提升数据库的管理效率。 Ø Oracle Enterprise Manager可以从客户端直接登入远程Oracle数据库进行管理;或是利用Oracle Management Server建构三层式的数据库管理环境。 Ø实时监控被管理的Oracle数据库,并进行效能调整。 Ø在不同的时间点针对各数据库排定例行性工作。 Ø允许DBA们客制化自己较偏好的管理环境。 图3:Oracle9i Enterprise Manager管理工具。 除了Oracle Enterprise Manager之外,Oracle还提供了数项进阶的数据库管理套件,让DBA可以轻易地对数据库进行效能调整或是系统诊断: n Oracle Tuning Pack允许您从各种角度去调校Oracle 9i数据库之效能,并最佳化您的数据库系统。例如找出撰写不佳的SQL指令;或是调整Oracle数据库之起始参数。Tuning Pack包含七项功能完整的效能调校工具,分别是:Oracle Expert、Oracle Index Tuning Wizard、Oracle SQL Analyze、Oracle Tablespace Map、Reorg Wizard、Outline Editior、Outline Management。 有了以上几种工具,您将可以实时发现数据库效能低落的原因,或是找出效能瓶颈所在。 n Oracle Diagnostic Pack是一套简易的系统诊断工具,您可藉由此项工具检测出数据库内可能隐藏的问题。例如进阶的事件检测系统(Advanced Events)会在Oracle Instance不正常被Shutdown时,自动透过Enterprise Manager发出Email警告数据库管理者。Diagnostic Pack共包含下列工具:Oracle Advanced Events、Oracle Performance Manager、Oracle Capacity、Oracle TopSessions、Oracle Trace以及e-Business Management Tools。 n Oracle Change Management则可用来追踪数据库对象的定义。当您因为新的应用程序系统所需而升级数据库时,Change Management Pack可消除与避免资料遗失的问题。当应用程序修改时所产生的复杂关联性及其影响,都可使用此套件进行分析与处理,并自动进行数据库更新动作。 n Oracle Management Pack for Oracle Applications 可延伸Oracle Enterprise Manager的功能,以便进行Oracle Applications的监控、诊断、容量规划以及效能调整。 n Oracle Management Pack for SAP R/3 可对SAP R/3系统进行实时监控。无论是历史资料分析,或是未来计画中将包含的事件整合、主机与应用程序的单点管理,都可使用此套件进行容量规划与控制。 Oracle9i数据库系统之进阶功能 进阶的安全性功能(Advanced Security) Oracle Advanced Security为Oracle9i企业版之外挂功能之一。具备以下优点: n 针对各种资料交换以及通讯协议提供加密方式,包含Oracle Net/SSL、IIOP/SSL、甚至JDBC Thin-client的加密。 n 可整合协力厂商提供的认证机制与授权方式,以及单一签入(Single sign-on)之服务。 n 整合PKI机制(Public key Infrastructure),且支持SSL与X.509 Version 3等公开金钥方式。Oracle也已提供了Oracle Wallet Manager与Oracle Enterprise Login Assistant工具方便您进行设定与管理。 n 可搭配兼容于LDAP Version 3的目录服务服务器,方便集中管理数据库使用者。除了Oracle Internet Directory之外,也可整合Microsoft的Active Directory。 图4:Advanced Security在Oracle网络环境中所扮演的角色。 (资料来源:Oracle9i Security Overview release 9.0.1) 资料分割功能(Partitioning) Oracle Partitioning是Oracle数据库相当厉害的数据处理技术,您可将一个超大型的table或是index切割成数个较小的单位,分别存放在不同的tablepace (甚至不同的实体硬盘)。不仅可有效提高数据管理性,对于系统效能的提升更是超乎想象。因为如此,在Data Mart或是Data Warehousing等超大型资料分析环境下,Oracle数据库的分析处理能力一直都是其它数据库望尘莫及的。 Oracle9i线上分析服务(Oracle9i OLAP Service) Oracle9i OLAP Service与Oracle9i数据库紧密地结合,提供一个全方位的资料分析处理环境。 n Oracle9i数据库提供大型资料仓储系统绝佳的资料储存环境。 n OLAP Service本身就是一个效能极佳的数据处理引擎,另外可轻易透过内建的Java OLAP API或是搭配Oracle BI Beans开发出各式的Java应用程序。 图5:Oracle9i OLAP Service之定位与架构。 (资料来源:Oracle9i Business Intelligence Beans) Oracle 资料采撷(Data Mining) Oracle9i企业版加入资料采撷先进的分析功能。当您想使用资料采撷技术处理资料时,不需要再把庞大的资料转入其它数据库之后才能进行。因此您可藉由资料采撷快速地针对特定资料进行分类、关联、以及预测等处理动作,相关的数据处理分析还可透过Oracle所提供Java应用程序接口来完成。这意味着程序设计师们可以立即开发出高水平的商业智能应用程序。 此外,Oracle9i的资料采撷功能还可以和Oracle9i Application Server的个人化服务互相结合,在电子商务网站上动态地提供实时的产品建议,以发挥一对一市场行销功能。 Oracle9i各版本之功能性与定位 Oracle9i 共有三种版本,分别为:个人版(Personal Edition)、标准版(Standard Edition)、以及企业版(Enterprise Edition)。Oracle9i个人版可以安装在一般安装Windows 98或是Windows 2000 professional的桌上型计算机中,程序开发人员将可以更方便地开发与测试Oracle数据库应用程序。标准板与企业版则较适合做为一般商业环境之数据库服务器。 各版本之功能与特性整理如下表: * 资料来源: Oracle9i: A family of Database Products (Oracle White Paper) 结语 概览Oracle9i 数据库之功能与特性之后,相信各位读者应该已经对Oracle9i有了基本的认识。照我原先的规划是应该在本期就开始Oracle9i数据库的基本管理方式,但已有某些读者来信给予我相当不错的建议,且希望我就Oracle9i先进行整体性介绍。所以本期我以企业级电子商务数据库的角度来介绍Oracle9i较重要的特性及其优点,未来的专栏内容将会针对Oracle9i 数据库管理的必备技术为大家做更深入的讨论。 作者简介 何致億,美商甲骨文公司特约顾问 专长为Oracle、SQL Server 等大型关系型数据库系统管理,资料仓储规划建置,以及数据库应用程序系统开发。拥有 MCSD、MCDBA,Oracle OCP,RHCE,SCJP,Borland JBuilder Product Certified等十余项国际认证。目前正致力于Oracle9i应用系统开发,并负责Oracle9i系列书籍中文化与Oracle Press技术校稿工作。他同时也是Oracle、Sun Microsystems公司等原厂认证讲师。您可以透过 hochihyi@ms64.hinet.net 与他联系。 译作:Oracle9i 入门手册 Oracle9i 技术手册 Oracle9i 应用程序服务器 --Portal 技术手册 OCP 认证专家系列(一):Oracle9i SQL 概论
|
|