Download presentation
Presentation is loading. Please wait.
1
大型主机应用上的开放系统和中间件 2011年度教育部-IBM精品课程
同济大学软件学院 唐剑锋
2
第4章 DB2 for z/OS和VSAM简介
3
4.1 DB2 for z/OS与DB2 for LUW的比较
在左端的系统结构图中,服务端整个NODE(网络里的一台计算机)含两个实例,每个实例里含两个数据库,每个数据库里含三个表空间。每个数据库里有数据库级的配置文件和日志文件。整个实例还有实例级的配置文件。客户端(从主机或分布式平台来)可以连接到服务端。
4
DB2 for z/OS系统结构图如图4-2所示。
在左端的系统结构图中,服务端整个LPAR(主机虚拟的计算机)含两个子系统(相当于分布式平台里的实例),每个子系统里含四个系统数据库,一个用户数据库,用户数据库里含一个用户表空间。整个子系统级别有日志文件和BSDS文件。整个子系统有子系统级的配置文件。客户端(从主机或分布式平台来)通过DB2 CONNECT和DDF(Distributed Data Facility)可以连接到服务端。
5
DB2 for z/OS和DB2 for LUW基本概念的对照表如表4-1所示。
6
4.2 关系型数据库DB2与VSAM的比较 1. DB2提供高层的可扩展性,从工作站到主机,在包括Windows,HP-UX,Sun Solaris,AIX, Linux, AS/400 和z/OS的平台上都有DB2产品,而VSAM仅存在于主机平台。另外,DB2作为一个关系型数据库系统,很容易迁移到另一个不同的关系型数据库系统,比如Oracle,而VSAM不存在这个特性。 2. DB2作为一个关系型数据库系统并遵循ANSI SQL标准,在简单性,丰富的功能和维护的简便性方面有显著优势。使用DB2,当业务流程变更时,更改数据库(如增加或删除列)是可能的。跨表的数据的参考完整性由DB2本身来维护。VSAM应用的维护成本更高,因为哪怕是在后面的阶段插入或删除一个field都是比较困难的。 3. DB2提供了高级别的安全性,表现在可以分别来保护数据单元,包括从整张表到某个特定行和列位置上的某些特定数据值。不同的用户在相同的对象上面可以有不同的特权。可以用视图机制来隐藏敏感数据不被未经授权的用户看到。DBA可以通过GRANT或REVOKE命令来控制对象访问的权限。而在VSAM中,安全选项比较有限且只能设置在数据集级别。
7
4. DB2基于应用开发人员指定的规则来维护参考完整性。IBM的DataLinks技术管理着由外部应用程序维护的外部存储数据的完整性。而在VSAM的例子中,维护参考完整性变成了应用开发人员的职责。
5. 使用诸如QMF和SPUFI之类的工具很容易来查看或修改DB2数据库的数据。使用简单的SQL,通过QMF工具可以产生标准或专门的报告。DB2也支持重要的查询和客户端接口功能,比如Net.Data,Visual Explain,DB2 Warehouse Manager和Control Center。 6. DB2有着一整套丰富的工具和产品,完成诸如系统管理,数据操作,数据复制,数据仓库,性能监控,档案和报告产生等等一整套的工作。这些产品不仅来自于IBM,也来自于其他像Platinum,BMC等等的第三方厂商。 7. DB2可以处理无限量的数据。一张DB2 V6的分区表可以有254个分区,每一个分区是一个VSAM数据集。所以DB2可以是最大可能的VSAM数据集的254倍。
8
8. DB2使得应用程序可以跨越由多个CICS域、IMS、批处理和TSO组成的多个应用环境来共享数据库。通过使用记录级的锁定得到更好的并发性支持。而在一个非记录级锁定环境中的VSAM只提供数据集共享的有限的支持。它不提供使得多个用户来更新一个共享数据集的必要的功能。而通过记录级锁定,新的VSAM功能由DFSMS/MVS V1.3提供。以记录级锁定模式打开的VSAM数据集可以在运行在许多CICS域中的许多应用程序中共享。但是VSAM仍旧不能同时用在诸如CICS,IMS/DC,批处理和TSO等等多个环境中。 9. 通过内置的Java支持,DB2可以支持Web化。可以使用标准的TCP/IP,ODBC,X/Open CLI,JDBC 和SQLJ从多个系统访问到DB2的数据。像Net.Data,Web Forms,Web Focus这样的产品能提供Web应用程序的快速构建。DB2的语言独立,对存储过程的支持(包括Java的支持)允许业务逻辑跨越所有的体系结构共享。于是可以将DB2的任何应用程序直接转化到Web。通常VSAM数据只可以被本地应用程序访问,并且只可以通过3270终端访问。对于除了主机的其他系统对VSAM的访问,需要建立定制接口,这使其变得昂贵和困难。
9
10. 作为一个在各种平台都可用的数据库管理系统,DB2是一个完全互连的分布式环境。比如,公司总部在z/OS上有DB2,而单个分支机构在Windows NT上也有DB2。DB2通用数据库在OS/2, Windows NT 和UNIX平台上是相同的,不管是服务器还是工作站平台。内置的Data Propagator完成数据分布、数据复制和工作负载分布的工作。IBM 的DB2 DataJoiner提供了跨所有平台DB2的两阶段提交的一致性。现有的技能可以在整个企业部署和利用,以此来用更少的人力最大化投资回报。 11. DB2的XML Extender提供了新的数据类型,使得我们可以在DB2数据库中将XML文档存储为字符数据,或存储为外部文件但是仍旧由DB2来管理。检索功能允许我们检索整个XML文档或单个元素或属性。通过使用XML Extender for DB2,很容易挖掘在DB2数据库中的关键商业信息,使用基于XML的数据交换格式来实现业务到业务的解决方案。 12. 当一个任务涉及的数据量比较少时,VSAM运行得比DB2要好。但是当应用程序使用大量数据时,DB2运行得比VSAM要好。这通常是因为DB2高效的数据预取和缓冲区管理机制。针对用户的每一个请求,DB2优化器选择最有效率的方式来实现该请求。由于用户只是指定需要什么数据而不是如何得到数据,DB2能够将应用程序开发人员从某种程度的性能调优活动中解放出来。
10
13. DB2有一套独一无二和成熟的工具,包括图形化的、基于工作站的版本来建模、监控和调优性能,这些工具包括Visual Explain、DB2 PM 和OMEGAMON。通过这些工具的帮助,我们能够在不同的级别进行调优工作:系统(Buffer Pool,EDM等等),应用程序,数据库或SQL级别。可以对现有应用程序进行调优来满足一个组织增长的需求:在处理的记录数上面的增长,在并发用户数上面的增长,等等。VSAM不是一个子系统,不会将性能记录写入由性能监控工具使用的SMF。VSAM应用程序的性能非常依赖于初始设计,后来的性能调优机会较为有限。 14. 在DB2中,分区表从CPU和I/O并行方面获益。因为并行的影响(假定系统是多处理器的),从DB2分区表中扫描大量的数据比扫描VSAM文件要快。VSAM无法参与任何一种并行(CPU & I/O)。 15. 使用合适的分区技术,DB2应用程序可以运行得更好。查询内的并行表现为同时运行多个查询。查询外的并行将潜在较长时间运行的查询分隔成许多并行执行的组件。跨存储设备的数据分区减少了大量查询的I/O瓶颈。VSAM没有应用程序并行访问数据的选项。
11
16. 虽然VSAM可以参与到并行系统综合体的架构中,DB2因为其数据共享、数据分区和两阶段提交的能力而更适合于该架构。因为DB2将更新过的数据放入耦合设施,含有数据的无效本地拷贝的系统可能会从耦合设施中的组缓冲池结构而不是从DASD中刷新它们的拷贝。因此实际上DB2数据共享负载的I/O率没有增加。DB2优化器会挑选查询的最佳并行量。 17. 有DB2工具来实现索引和数据的直接重组。数据的组织是影响I/O和CPU时间的一个重要因素。DB2可以做在线重组而应用程序不需要停下来。VSAM没有索引和数据重组的直接工具。重组需要一系列的步骤:使用IDCAMS程序进行导出、删除、创建和导入。在VSAM数据重组期间需要应用程序停下来。 18. DB2表在z/OS的CICS,IMS/DC或RRS环境中总是可复原的。VSAM只能在CICS或IMS/DC环境中复原。在批处理中,VSAM对其更新不做日志,因此并不提供工具来取消更新。所以要复原批处理中的VSAM数据,只能复原到最后一次备份的情况。 19. DB2有复原工具。数据可以从日志,备份拷贝或两者中复原。因为备份的数据也由DB2来维护并且采用DB2的格式,DB2的数据复原相比VSAM的数据复原可以得到更好的管理并且更加快速。在DB2中,对于分区表来说,数据复原更快,因为分区可以实现并行复原。而在VSAM中,数据只能够从备份拷贝中复原。可以采用ADDRSSU或IDCAMS程序及时地备份和复原,但是维护不同版本的备份是一个人工的过程。
12
20. 在DB2中,可以针对所有分区并行备份分区表,这减少了完成备份所需要的时间。同时,DB2的增量备份也减少了备份需要的时间。DB2数据库实用工具Concurrent Copy提高了数据有效性。VSAM数据集不支持并行备份,因此备份过程需要更多时间。另外,对于VSAM数据集来说没有增量备份的概念。 21. DB2有与系统管理产品相集成的智能安装助手和图形化的管理工具,可以减少总体拥有成本。总体来说,DB2提高效率,降低操作成本并支持连续的有效性。VSAM需要更多的时间来备份、复原和重组数据,于是需要更多的时间来维护,这减少了应用程序的总体有效时间。 22. DB2支持灾难复原。数据的灾难复原拷贝可以容易地被DB2识别出来。而VSAM没有单独的灾难复原机制,而是依附于DASD数据复原过程。 23. 数据库的增长会影响性能和有效性,并使得我们有必要设计一个归档策略。使用IBM的DB2 Row Archive Manager或Softech‘s Archive for DB2产品,可以在行的级别进行数据子集的归档和复原工作。而对于VSAM来说这会导致复杂的定制化的编程工作。 24. 对于DB2来说,IBM和其它第三方供应商会有一整套的支持和培训工作。具有DB2系统管理和性能调优技能的人员较容易找到,而具有VSAM调优技能的人员较为稀少。因为DB2是一个使用ANSI标准的关系型数据库,这使得培训之前有其他关系型数据库如Oracle,SQL Server等等经验的人员比较容易。
13
25. 如果企业数据服务器在DB2中,批处理和对于数据目标(如数据仓库,数据集市等等)的实时更新将存在选项,这使得实施一个数据仓库解决方案成为一个相对简单明了的选项。而如果企业数据在VSAM中,创建和维护一个数据仓库将是一个多步骤的过程,这降低了全面利用其中包含的信息这笔财富的能力。 26. DB2数据仓库产品包含了DB2 OLAP Server,Intelligent Miner和Visual Warehouse。DB2 for z/OS也被验证过可以在数据仓库环境中扩展到多个TB的数据和数百个并发用户。 27. DB2在包括Java的许多语言中支持存储过程、触发器和用户自定义函数。随着DB2每一个新版本的发布,将体验到性能方面的提升并使用额外的特性。 28. DB2包括一整套扩展的数据类型,从而能够存储、显示、操纵和搜索一系列的扩展数据类型,如图片、音频、视频、扩展的文本、地理数据及其他数据类型。DB2将这些数据存储为大对象BLOBs或CLOBs。DB2扩展器在将大对象的内容放到一个文件中并从数据库中指向它这方面增加了灵活性。 总的来说,DB2的在有效率地管理多个平台的许多并发用户,非常大的数据库以及高交易量方面相比VSAM来说是一个更好的选择。而对于本书中的案例来说,由于样例中用到的数据量比较小,所以还是采用VSAM来存储数据。
Similar presentations