WEB开发网
开发学院数据库DB2 DB2 9 基础(730 考试)认证指南,第 1 部分: DB2... 阅读

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1

 2009-01-22 16:39:26 来源:WEB开发网   
核心提示:DB2 产品DB2 的不同版本DB2 9 提供了适于所有企业的数据管理解决方案,没有其他数据库管理系统能够在性能、可用性、可伸缩性和可管理性方面达到 DB2 9 的水平,DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1,但是,DB2 有不同的版本,第 4 部分: 处理 DB2 数据 DB2 9

DB2 产品

DB2 的不同版本

DB2 9 提供了适于所有企业的数据管理解决方案。没有其他数据库管理系统能够在性能、可用性、可伸缩性和可管理性方面达到 DB2 9 的水平。但是,DB2 有不同的版本,每种版本适合市场的不同部分。DB2 基础考试要求您了解不同的 DB2 产品和版本,所以本节讨论这个问题。

下面的图显示了所有可用的 DB2 发行版。从图中可以看出 DB2 的发展:每个版本都包含低一级版本的所有功能和特性,并添加了新的特性和功能。Linux、UNIX 和 Windows(luw)平台上的代码有大约 90% 是相同的,在每种操作系统上有 10% 的专用代码,用于使数据库与底层操作系统紧密地集成。例如,使用 AIX 上的 Huge Pages 或 Windows 上的 NTFS 文件系统。

DB2 系列中还有两个成员没有显示在下图中:DB2 for System i 和 DB2 for System z。这些数据库基于不同的代码基础,专门针对运行它们的底层操作系统和硬件架构做了调整,它们的 SQL 可移植度达到 95%,这使它们成为 DB2 系列的成员。例如,DB2 for System i 构建在 i5/OS 操作系统中。DB2 for z/OS 利用了 System z 服务器上的硬件耦合器(Coupling Facility),因此与使用 “shared-nothing” 方式的 DB2 luw 相反,它采用 “shared-everything” 的方式。

DB2 版本

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1

这些版本的详细许可协议超出了本系列教程探讨的范围,但是需要注意在您所购买的 DB2 Enterprise 中有一些可以免费使用的 DB2 9 功能特性。如果 DB2 Express 或 DB2 Workgroup 中没有免费包含某一功能,那么(在大多数情况下)可以通过附加的 Feature Pack 购买这一功能。

例如,在 DB2 Express 9 和 DB2 Workgroup 9 中,可以通过购买以下 Feature Pack 向数据服务器中添加功能:

纯 XML(pureXML) 提供 DB2 9 新的 XML 数据列类型和索引。DB2 9 提供一种混合型引擎,它既可以按照关系方式操作和存储基于 SQL 的数据,又可以按照层次化方式操作和存储基于 XML 的数据。 高可用性 提供在线表重组、Tivoli System Automation for AIX and Linux 以及高可用性灾难恢复(High Availability Disaster Recovery, HADR)功能。这在 DB2 Enterprise 中是免费提供的。 性能优化 这是使用多维聚集表(Multidimensional Clustering, MDC)、物化查询表(Materialized Query Tables, MQT)和查询并行性所需要的特性。这在 DB2 Enterprise 中是免费提供的。 负载管理 提供 Connection Concentrator、DB2 Query Patroller 和 DB2 Governor。Connection Concentrator 和 DB2 Governor 特性在 DB2 Enterprise 中是免费提供的。

DB2 Enterprise 9 附带以下附加特性来扩展这个 DB2 版本的功能:

纯 XML(pureXML) 提供 DB2 9 新的 XML 数据列类型和索引。DB2 9 提供一种混合型引擎,它既可以按照关系方式操作和存储基于 SQL 的数据,又可以按照层次化方式操作和存储基于 XML 的数据。 高级访问控制(LBAC) 用于提供扩展的安全架构,在这个架构中基于角色对数据进行访问。 地理数据管理特性 用于对各种应用程序中使用的空间和球面数据模式进行建模,比如气候分析、国防以及在分析中需要考虑地球曲率的应用程序。 存储优化特性 用于行级和备份/恢复压缩,可以显著提高操作的速度并使数据的存储开销最小化。 性能优化特性 提供在 DB2 Enterprise 服务器环境中使用的 DB2 Performance Expert 和 DB2 Query Patroller 产品。

DB2 Everyplace

移动计算的真正力量并不在于移动设备本身,而是在于能够利用来自其他来源的数据。DB2 Everyplace 将 DB2 的强大力量注入了移动设备,能够与其他系统进行数据同步,从而让企业数据进入移动员工的口袋,让他们能够从远程位置更新企业数据。

DB2 Everyplace 不仅仅是一种移动计算基础设施。它是一个完整的环境,包含了构建、部署和支持强大的电子商务应用程序所需的工具。DB2 Everyplace 提供一个 “指纹” 引擎(大约 200 KB),其中包含所有的安全特性,比如表加密和提供高性能的高级索引技术。它可以在当今最常见的各种手持设备上顺利地运行(提供多线程支持),比如:Palm OS、Microsoft Windows Mobile Edition、任何基于 Windows 的 32 位操作系统、Symbian、QNX Neutrino、Java 2 Platform Micro Edition(J2ME)设备(比如 RIM 的 Blackberry pager)、嵌入式 Linux 发布版(比如 BlueCat Linux)等等。

如果需要在资源有限的设备上使用关系引擎和同步服务,就应该使用 DB2 Everyplace。对于偶尔连接的笔记本电脑用户,如果他们的应用程序不需要 DB2 Everyplace 引擎中没有的特性(比如触发器),那么也可以考虑这个产品。

在 DB2 8 中,DB2 Everyplace 是作为 Mobility-on-Demand 特性提供的。在 DB2 8 或 DB2 9 中遇到这个特性时,可以认为这两个产品提供的功能是相同的。尽管在版本之间打包方式不同,但是 DB2 Everyplace 和 DB2 Mobility-on-Demand 为环境提供相同的功能、特性和能力。

在 DB2 9 中,Mobility on Demand 由 DB2 Enterprise 免费提供。DB2 Express 和 DB2 Workgroup 用户需要购买 DB2 Everyplace Enterprise Edition 来获得这些功能。

DB2 Personal Edition

DB2 Personal Edition(DB2 Personal)是单用户 RDBMS,运行于低价的商用硬件桌面计算机上。DB2 Personal 可以用在基于 Windows 和 Linux 的工作站上。DB2 Personal 包含 DB2 Express 的所有特性,但是有一个例外:远程客户机无法连接运行这个 DB2 版本的数据库(但是,具有 Control Center 的工作站可以连接这些数据库来执行远程管理)。因为 “DB2 就是 DB2”,为 DB2 Personal 开发的应用程序也可以在 DB2 的任何其他版本上运行。例如,可以使用 DB2 Personal 开发 DB2 应用程序,然后将它们部署到运行 DB2 Enterprise 9 for AIX 的生产环境中。

DB2 Personal 既适用于不连接网络的 PC,也适用于连接网络的 PC。在这两种情况下,它为用户提供了强大的数据存储,或者提供了数据库存储设施并能够连接到远程 DB2 服务器。

偶尔连接的用户可以利用 DB2 内置的复制特性和 DB2 Control Server 设置一个同步的环境,让移动员工可以与企业保持联系。当然,这只适合笔记本和某些工作站的用户,比如那些运行销售点(point-of-sale,POS)应用程序的用户。

DB2 Express - C

DB2 Express - C 其实 不算是 DB2 系列的一个版本,但是它提供了 DB2 Express 的大多数功能。2006 年 1 月,IBM 发布了这个特殊的 DB2 免费版本,可以用于基于 Linux 和 Windows 的操作系统。DB2 Express-C 是为合作伙伴和开发社区设计的,但是正如您知道的,它几乎可以应用于任何地方。DB2 Express - C 引人注目的一个特点是:它没有其他厂商发布免费版本时通常会设置的限制。在有限制的方面,它也比其他厂商的免费系统宽松得多。

例如,DB2 Express - C 没有数据库大小限制,而且可以处理 64 位内存模型。DB2 Express-C 非常适合开发人员和中小型应用部署、学校社区等等。DB2 Express-C 具有 DB2 Express 的全部灵活性和健壮性,但是没有 DB2 Express 付费版本的一些扩展特性。DB2 Express-C 中不 包含的特性包括:

DB2 Express Feature Pack 中的特性 —— 例如,高可用性灾难恢复(HADR)

数据复制捕获

24x7 IBM Passport Advantage 支持模型

如果希望在自己的环境中利用这些特性,那么至少需要购买 DB2 Express。

DB2 Express Edition

DB2 Express Edition(DB2 Express)是一种功能全面的支持 Web 的客户机/服务器 RDBMS。DB2 Express 可以用于基于 Windows 和 Linux 的工作站。DB2 Express 提供一个低价的入门级服务器,主要用于小型企业和部门的计算任务。它的功能与 DB2 Workgroup 相同,但是在服务器上可以安装的内存和价值单元(等于一个服务器处理器核心的能力)数量方面与 DB2 Workgroup 有区别。

可以添加额外特性来提供扩展的功能(比如 DB2 Enterprise 中的一些功能),而不需要购买相应的版本。本教程前面描述了 DB2 Express 9 可用的 Feature Pack。

DB2 Express 可根据由运行应用程序的处理器决定的价值单元发放许可证,或者以授权用户数量为标准发放许可证。授权用户是 DB2 9 的一个新概念,它代表经过注册能访问环境中单一数据服务器上的服务或数据的用户。例如,如果有一个用户需要访问两个不同的 DB2 Express 9 数据服务器,而且这个环境要求按照授权用户发放许可,那么这个用户需要两个 DB2 Express 授权用户许可证(每个服务器一个)。

DB2 Express 在企业中可以扮演许多角色。它非常适合那些需要完全成熟的关系数据库的小型企业。他们可能不需要某些更成熟或更重要的应用程序那样的可伸缩性,但是他们希望存在一个企业级数据库来支撑其应用程序,在需要时,可以轻松地扩展此应用程序而不必进行任何修改。注意,针对 DB2 的任何版本编写的应用程序都可以轻松地移植到任何分布式平台上的另一个版本。

DB2 Workgroup Edition

DB2 Workgroup Edition(DB2 Workgroup)是一种功能全面的支持 Web 的客户机/服务器 RDBMS。它可以用于所有支持的 UNIX 版本、Linux 和 Windows。

DB2 Workgroup 提供了一种低价的入门级服务器,主要用于小型企业和部门的计算任务。在功能方面,它支持与 DB2 Express 相同的所有特性。可以添加额外特性来提供扩展的功能,比如 DB2 Enterprise 中的那些功能,而不需要购买 DB2 Enterprise。可选的 DB2 Workgroup 的许可方式与 DB2 Express 相同。

在 DB2 8 中,有两种 Workgroup Edition:DB2 Workgroup Server Edition(DB2 WSE)和 DB2 Workgroup Unlimited Edition(DB2 WSUE)。DB2 WSE 只能按照命名用户许可证和基础服务器许可证进行许可。DB2 WSUE 只能按照处理器进行许可。在 DB2 9 中,这两个版本合成了一个版本 —— DB2 Workgroup。命名用户和服务器许可被替换为简化的授权用户。处理器许可仍然存在,但是根据 IBM 订价策略,它转换成了按价值单元付费的形式。

DB2 Workgroup 在企业中可以扮演多种角色。它非常适合中小企业(SMB),可为其提供完全成熟的可伸缩的关系数据库存储,且可以通过广域网(WAN)或局域网(LAN)来访问。它还适合需要 silo server 的企业环境,或者需要在未来进行扩展的部门。正如前面提到的,针对 DB2 的任何版本编写的应用程序可以轻松地移植到任何分布式平台上的另一个版本。

DB2 Enterprise Edition

DB2 Enterprise Edition(DB2 Enterprise)是一种功能全面的支持 Web 的客户机/服务器 RDBMS。它可以用于所有支持的 UNIX 版本、Linux 和 Windows。DB2 Enterprise 适合作为大型和中型的部门服务器。DB2 Enterprise 包含 DB2 Express 和 DB2 Workgroup 的所有功能,还添加了其他功能。某些 DB2 9 特性只在这个版本中可用,比如新的 DB2 9 Storage Optimization 特性。

与 DB2 Express 和 DB2 Workgroup 一样,DB2 Enterprise 可根据由运行应用程序的处理器架构决定的价值单元发放许可证,或者以授权用户数量为标准发放许可证。授权用户是 DB2 9 的一个新概念(但是这种度量方式在 DB2 8 Enterprise Server Edition 中就有了),它代表注册的能够访问环境中单一数据服务器上的服务或数据的用户。例如,如果有一个用户需要访问两个不同的 DB2 Enterprise 9 数据服务器,而且这个环境要求按照授权用户进行许可,那么这个用户需要两个 DB2 Enterprise 授权用户许可证(每个服务器一个)。一些特性(比如 Database Partitioning 特性)不能使用授权用户度量方式。DB2 Enterprise 还正式提供了子容量许可方式,比如 LPAR 和动态 LPAR。

由于具有数据库分区特性(DPF),DB2 Enterprise 能够对单一服务器、多个数据库服务器(所有服务器必须运行同样的操作系统)或大型 SMP 机器中的数据进行开箱即用的数据分区。

可以将 DPF 作为 DB2 Enterprise 处理器许可的一部分购买,它也可会转换成价值单元。有了 DPF,数据库的大小就只受到您拥有的计算机数量的限制。具有 DPF 特性的 DB2 Enterprise 适合于大型数据仓库,还可以满足高性能在线事务处理(OLTP)需求。具有 DPF 特性的 DB2 Enterprise 还可以将多个 SMP 机器聚集在一起,形成一个数据库映像,从而支持非常大的事务量。

Data Enterprise Developer Edition

Data Enterprise Developer Edition(DEDE)是为应用程序开发人员提供的特殊版本。这个版本提供了几个信息管理产品,使应用程序开发人员可以对应用程序进行设计、构建和建立原型,产生的应用程序可以部署在任何 IBM 信息管理软件客户机或服务器平台上。这个全面的开发人员工具集包括:

DB2 Workgroup 9 和 DB2 Enterprise 9

IDS Enterprise Edition

IBM Cloudscape/Apache Derby

DB2 Connect Unlimited Edition

以及本教程前面描述的所有 DB2 9 附加特性

这使用户能够使用价格更低的版本构建出使用最新数据服务器技术的解决方案。DEDE 中的产品只能用于对应用程序进行开发、评估、演示和测试。

DB2 8 有免费的 DB2 Personal Developer's Edition,它提供 DB2 8 Personal Edition 和 DB2 8 Connect Personal Edition 的特性。在 DB2 9 中,这个软件包已经取消了,由 DB2 Express - C 取代。

DB2 客户机

DB2 9 大大简化了将应用程序连接到 DB2 数据库所需的基础设施的部署。DB2 9 提供以下客户机:

DB2 9 Runtime Client 如果只需要让应用程序能够访问 DB2 9 数据服务器,那么这就是最佳选择。它们提供了执行此任务所需的 API,但是这种客户机没有提供管理工具。 DB2 9 Client 包含 DB2 Runtime Client 中的所有功能,还增加了 通过一组图形化工具进行客户机 - 服务器配置、数据库管理和应用程序开发的功能。DB2 9 Client 取代了 DB2 8 Application Development 和 DB2 8 Administration Client 中的功能。 Java Common Client(JCC) 这是一个 2 MB 的可重新发布的客户机,它提供了对 DB2 数据服务器的 JDBC 和 SQLJ 应用程序访问,而不需要安装和维护 DB2 客户机代码。如果要连接 DB2 for System i 或 DB2 for System z 数据服务器,那么仍然需要购买 DB2 Connect 产品。 DB2 9 Client Lite 这个客户机是 DB2 9 中新增的,它执行与 JCC 客户机相似的功能,但不是支持对 DB2 数据服务器进行基于 Java 的访问,而是用于 CLI/ODBC 应用程序。这个客户机尤其适合于那些希望将连接功能嵌入应用程序,而不需要重新发布和维护 DB2 客户机代码的 ISV。

DB2 扩展器(Extender)

本节讨论的 DB2 扩展器使数据库应用程序能够超越传统的数字和字符数据,为底层数据服务器提供额外的功能。

XML Extender

DB2 的 XML Extender 提供 XML 数据类型,支持在 DB2 数据库中存储 XML 文档,并添加了帮助在数据库中操作这些 XML 文档的功能。

可以在 DB2 中存储完整的 XML 文档,也可以将它们存储为由数据库管理的外部文件。这个方法称为 XML 列。还可以将 XML 文档分解存储进关系表中,从数据库中取出时再将信息重新组合成 XML。这基本上意味着 DB2 数据库可以将 XML 文档拆解,只取得数据,从数据库中取出时用数据重新创建 XML 文档。这个方法称为 XML 集合。

与 DB2 9 中新增的 pureXML 特性的关系

您可能会把 XML Extender 和所有 DB2 9 版本中都有的 pureXML 附加特性混淆在一起。DB2 XML Extender 提供了 DB2 8 中就有的 XML 功能。pureXML 特性使 DB2 服务器能够利用新的混合型存储引擎在 DB2 9 中原生存储 XML。pureXML 的性能、易用性、灵活性和总体的 XML 体验不是原有的 XML Extender 技术能够相提并论的;但是,在 DB2 9 中仍然免费提供了 XML Extender。如果您打算在自己的数据环境中使用 XML,那么强烈建议使用 pureXML 特性。

pureXML 特性允许将 XML 存储在磁盘上经过解析的树中,而不必将 XML 存储在大对象中或者将它分解存储进关系列中(就像 XML Extender 所要求的)。这对于需要使 XML 数据持久化的应用程序非常有好处。

在使用 pureXML 特性提供的功能时,访问数据是非常顺畅的体验。例如,可以使用 SQL 或 XQuery 分别访问关系或 XML 数据。

DB2 9 支持按照与 XML Extender 相同的方式将 XML 数据分解成关系数据,但是它使用一种出色得多的不同技术来执行这一任务。可能由于许多原因希望将 XML 数据分解成关系数据,比如在 XML 数据本身是表格性的情况下。要使用 DB2 XML Extender 将 XML 数据分解成关系数据,必须手工生成 Document Access Definition 文档,这些文档用于把节点映射到列。在 DB2 9 中(即使没有 pureXML 特性),可以使用 DB2 Developer Workbench 对数据进行分解并自动地发现这些映射。DB2 9 中的新机制也比 XML Extender 方法快得多。

DB2 Net Search Extender

这个扩展器帮助企业在搜索数据库中的数据时获得更高的性能。对于电子贸易和其他需要高性能且可伸缩的文本搜索的应用程序,高性能的内存中搜索是不可或缺的。在互联网应用程序中很可能使用这个扩展器,这些应用程序需要在大索引上有很好的搜索性能,而且需要并发查询的可伸缩性。还可以使用这个扩展器搜索大型 XML 文档。如果需要高速度的内存中搜索,那么这个扩展器正好适合您。在 DB2 8 中,Text Information Extender 与 Net Search Extender 结合使用。这个扩展器在 DB2 9 中是免费的(在 DB2 8 中,它是付费特性)。

DB2 Spatial Extender

这个扩展器可以在 DB2 中与文本和数字等传统数据一起存储、管理和分析空间数据 —— 关于地理特征位置的信息。可以利用这个功能生成、分析和研究关于地理特征的空间信息,比如办公大楼的位置或洪灾区的大小。DB2 Spatial Extender 用一组高级的空间数据类型扩展了 DB2 的功能,这些类型代表点、线和多边形等几何形状。它还包含许多操作这些数据类型的功能和特性。这些功能允许将空间信息与业务数据结合在一起,给数据库添加了另一个智能元素。这个扩展器在 DB2 9 中是免费提供的(自从 DB2 8.2 开始)。

DB2 Geodetic Extender

这个扩展器可以增强用 DB2 Spatial Extender 构建的应用程序类型。DB2 9 Geodetic Extender 可以将地面作为球体对待,从而消除投影等操作造成的不精确。在使用 DB2 Spatial Extender 中提供的空间数据类型和功能时,可以使用 DB2 Geodetic Extender 对跨国际日期变更线的地面位置和数据进行无缝的查询。可以维护精确引用地面位置的数据。

DB2 Geodetic Extender 是按照测地学的原理设计的,考虑到了地球(或用椭圆体建模的任何实体,比如太阳或其他天体)的大小和形状。设计 DB2 Geodetic Extender 的目的是高精度地处理在地球表面上定义的物体。DB2 Geodetic Extender 只能在 DB2 Enterprise 9 中使用。

DB2 Connect

许多大型组织中的大量数据由 DB2 for i5/OS、DB2 for MVS/ESA、DB2 for z/OS 或 DB2 for VSE and VM 数据服务器进行管理。有了 DB2 Connect 的帮助,在任何支持的 DB2 分布式平台上运行的应用程序都可以透明地操作这些数据,就像是本地数据服务器在管理数据一样。还可以将 DB2 Connect 及其相关工具与许多现成的或定制开发的数据库应用程序一起使用。DB2 Connect 提供了从 Windows、Linux 和 UNIX 平台连接大型机和 中端数据库的能力。

有许多 DB2 Connect 版本:Personal Edition、Enterprise Edition、Application Server Edition 和两个 Unlimited Editions(一个用于 i5/OS 环境,一个用于 z/OS 环境)。DB2 Connect 可以添加进现有的 DB2 数据服务器中,也可以作为单独的网关。无论是哪种形式,都要独立购买(但是 DB2 Enterprise 中提供了一些附赠的用户许可证)。

DB2 附加工具

有两类 DB2 工具:一类是免费的,另一类是可以单独购买的附加工具。免费工具随 DB2 一起安装,可以从 Control Center 或 Configuration Assistant 启动,或者单独启动(在本教程的下一节中会介绍这些工具)。

单独购买的工具可以帮助数据库管理员(DBA)简化管理和恢复数据等任务,并可以对 DB2 的分布式版本执行这些任务:

工具说明
DB2 Change Management Expert通过对复杂的 DB2 结构性变化进行自动化和管理,改进 DBA 的工作效率并减少人为错误。
Data Archive Expert帮助 DBA 将很少使用的数据转移到低成本的存储介质中而不需要进行额外的编程,从而满足 Sarbanes-Oxley 等法规的要求。
DB2 High Performance Unload减小数据卸载和重新分区的维护时间窗,从而改进 DBA 的工作效率。
DB2 Performance Expert帮助 DBA 更好地进行性能管理,维护最佳的数据库性能。
DB2 Recovery Expert提供快速且精确的恢复功能来保护数据。
DB2 Table Editor允许终端用户轻松安全地创建、更新和删除数据,从而保持业务数据的及时性。
DB2 Test Database Generator快速创建测试数据,并避免在测试中使用敏感的生产数据,从而避免与数据私密性法律相关联的损失。
DB2 Web Query Tool帮助终端用户使用 Web 和手持设备访问 DB2 数据。

这些工具并非在 DB2 9 的所有版本中都可用。但是,许可方式的细微差异超出了本教程的范围。

DB2 工具

工具概述

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC) 主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。 Configuration Assistant(CA) 用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。

基本工具功能

在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。

使用向导创建数据库

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问

一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1

Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1

Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本

另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。

使用笔记本创建视图

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOAD 或 IMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

Show SQL/Show Command

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

将使用 pureXML 特性

具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护

它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上

将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。

Show Command 选项

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1

Show Related

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1

Filter

可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

Help

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。

DB2 处理程序:简介

DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir。

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。

用 DB2 CW 输入命令

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1

注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。

用 DB2 CW 以交互模式输入命令

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1

使用 DB2 处理程序

在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

可以使用 c 标志定义每个语句的自动提交。

可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。

用 t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。

各种 DB2 CLP 选项

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:db2 -c command or statement...

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面 和后面 都放上减号,或者在标志前面放上加号 会关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c 或 -c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。

在运行时修改命令行选项

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符()。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。

在 DB2 CLP 中使用续行字符

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 1

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句select * from staff where dept

并将产生的内容放进文件 10。 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

本系列其他教程推荐

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划 2

DB2 9 基础(730 考试)认证指南,第 2 部分: 安全性

DB2 9 基础(730 考试)认证指南,第 3 部分: 访问 DB2 数据

DB2 9 基础(730 考试)认证指南,第 4 部分: 处理 DB2 数据

DB2 9 基础(730 考试)认证指南,第 5 部分: 处理 DB2 对象

DB2 9 基础(730 考试)认证指南,第 6 部分: 数据并发性

DB2 9 基础(730 考试)认证指南,第 7 部分: XQuery 简介

Tags:DB 基础 考试

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接