WEB开发网
开发学院数据库DB2 DB2 V9.7 应用于 SAP 的新特性概述 阅读

DB2 V9.7 应用于 SAP 的新特性概述

 2010-02-04 00:00:00 来源:WEB开发网   
核心提示:DB2 9.7 和 SAPIBM DB2 for Linux, Unix, and Windows V9.7(简称 DB2 9.7)是 IBM 在 Linux,Unix 和 Windows 平台上的企业级数据库产品 DB2 for LUW(SAP 对应代码为 DB6)的最新版本,DB2 V9.7 应用于 SAP 的新特

DB2 9.7 和 SAP

IBM DB2 for Linux, Unix, and Windows V9.7(简称 DB2 9.7)是 IBM 在 Linux,Unix 和 Windows 平台上的企业级数据库产品 DB2 for LUW(SAP 对应代码为 DB6)的最新版本。此版本已经在 2009 年 6 月正式被 IBM 官方发布,在 DB2 V9.5 的基础上进行了很多方面的改进,并且根据企业实际 IT 应用领域的需求提供了多种新特性,这些改进和新特性有助于 IBM DB2 的客户和合作伙伴更好的使用 DB2 服务自己的不断变化和成长的业务需求,以及更好的节省信息资源和维护成本,从而来降低企业 IT 运营的所有权总成本(TCO)。

作为全球最大的企业应用软件提供商,SAP AG(下文简称 SAP)是 IBM DB2 最重要和紧密的合作伙伴之一。在 SAP 位于德国 walldorf 的总部和 IBM DB2 的研发中心多伦多实验室都有 IBM 和 SAP 共同组建合作的研发和集成、支持团队,双方在系统研发,产品集成,技术创新和客户支持方面始终保持无缝的合作,并在 2005 年携手推出“专为 SAP 优化的 DB2”版本 DB2 UDB V8.2.2,帮助客户更加轻松地配置运行在 DB2 上的 SAP 解决方案,并提高 DB2/SAP 系统的性能,稳定性和可用性。在这个标志双方完美合作的里程碑式的版本之后,DB2 将更多专为 SAP 优化的特性集成到自身的通用数据库版本内,并在后续 DB2 版本的开发过程中,将对 SAP 解决方案的优化和支持容纳其中,使得每个新版本或者补丁在发布之时,就提供了对 SAP 应用的所有新特性。同时,在 IBM 的最新版本的 DB2 产品或者补丁正式发布之后,就立即对其进行 SAP 认证测试,以使 SAP 客户能在第一时间就能享受到 DB2 的最新特性和功能,同时确保 SAP 客户使用这些新特性的安全性和可靠性。

2009 年 8 月,在 IBM 正式发布 DB2 9.7 数周之后,IBM 和 SAP 就共同完成了对它的扩展认证测试并将其针对所有 SAP 产品发布给 SAP 客户,此版本现在可以通过 SAP Service Marketplace 下载。相对于之前的 DB2 V9.5 版本而言,DB2 9.7 主要在以下几个方面对 SAP 产品客户提供了更好的支持:更全面的压缩;可管理性的增强;性能和安全性的提高;更便捷的监控等,下面将逐个进行简单的介绍。

索引压缩

DB2 从 V9 开始就提供了行压缩(Row Compression)的功能,对表数据进行深度压缩,以降低存储空间要求、改进 I/O 效率以及允许迅速访问磁盘中的数据。在 9.7 版本中,又添加了索引压缩的功能,加上下一节将提到的临时表压缩等,这些深度压缩特性能够非常显著地降低数据库的存储需求。根据部分 SAP 客户应用 DB2 9.7 的测试数据统计,索引压缩率普遍超过 50%,部分索引可以达到 85% 以上,对整个 SAP 数据库的压缩率,也由单纯数据压缩的 40% 左右,提升到 65% 左右。

对 SAP ERP 或者 BW 客户而言,系统中经常有海量的数据,某些表的大小能够达到或者超过数百 GB,相关的索引占用的存储空间也十分惊人。与行压缩类似,索引压缩功能不仅减少了对存储空间的需求,同时也减轻了对数据传输的 I/O 压力,提高了 SAP 系统的缓冲池命中率(hit ratio)。如果想对某个索引启用压缩特性,则需要将此索引的压缩标记设置为’ YES ’,语法如下:

 ALTER INDEX <IndexName> COMPRESS YES 

然后对这个索引进行在线或者离线重组后,即完成对此索引的压缩。

针对索引压缩,数据库管理器可以使用不同的压缩技术,比如 RID 列表压缩(RID List Compression)和前缀压缩(Prefix Compression)。对 SAP 系统来说,此特性被 SAP R/3 4.6D 及其之后的版本完全支持。在下面两种情况下,索引的压缩特性是自动启用的:

基于 DB2 9.7 安装了一个新的 SAP 系统,而且此索引的对应表的压缩是启用的。

当从一个较前 DB2 版本升级到 9.7 之后,如果此索引是在数据库升级之后生成的,并且其对应的表的压缩是启用的。

SAP 提供了多种工具,包括 DB2 脚本或 SAP 程序来帮助用户单个或者批量手动启用索引压缩,将之前未使用压缩的表和索引进行深度压缩。但需要注意的是,目录索引和 MDC 块索引等无法使用压缩功能。

临时表压缩

在 DB2 9.7 中,系统临时表和用户临时表也可以被压缩,这个新特性使得用户在不损失性能的情况下进一步降低存储成本,甚至在一些大规模排序操作中,可以提高查询性能,这是由于:

减少了大规模排序中的 I/O 数据传输。

更多的排序操作可以在缓冲池中进行。

这个特性同样被 SAP R/3 4.6D 及其以上版本所支持,并且是默认启用的。

图 1. 临时表压缩原理图
DB2 V9.7 应用于 SAP 的新特性概述

内联 LOBs

通常,DB2 使用大对象(LOB)数据类型存储类型为 BLOB, CLOB 和 DBCLOB 的大对象数据类型,在常规表数据中存储描述符,指向对应大对象所保存的位置。在 DB2 9.7 中,引入了内联 LOBs(inline LOBs)的概念。当 LOB 小于指定大小时,LOB 将存储在基本表行(而不是单独的 LOB 存储对象)中。超出指定大小的 LOB 仍以透明方式存储在 LOB 存储对象中。

如果大部分时间使用小 LOB,那么对于执行查询、插入、更新或删除 LOB 的任何操作而言,基本表行存储提供更好的性能,原因是需要的 I/O 操作较少。如果还使用数据行压缩,那么会压缩 LOB,这会降低存储空间要求并提高 LOB 的 I/O 效率。因为这些优点,SAP 从 7.00 版本开始也对 DB2 9.7 更改了 ABAP(Advanced Business Application Programming)数据字典相关数据类型的对应关系,之前使用 LONG VARCHARs 的表记录转为使用 LOBs 类型。

表 1. SAP 使用的 DB2 LOB 数据类型

ABAP DDIC TypeNon-UnicodeBytes in data pageUnicode
LCHR CLOB(32K) LOGGED ≤ 120 CLOB(99K) LOGGED
LRAW BLOB(32K) LOGGED ≤ 120 BLOB(32K) LOGGED
STRG CLOB(1G) LOGGED ≤ 252 DBCLOB(512M) LOGGED
RSTR BLOB(1G) LOGGED ≤ 252 BLOB(1G) LOGGED

基于 DB2 9.7 安装的新系统,SAP 将会默认使用内联 LOBs。对从之前版本升级到 9.7 的系统,已存在表的 LOBs 类型数据,只有在更新或者新插入记录的时候,才会存储到基本表行内。如果需要将已存在表的所有 LOBs 都以内联形式存储,则必须执行表重组。

增强的自动存储管理

DB2 的自动存储(Automatic Storage)极大的减少了数据库管理的工作量,并且完全集成于 SAP 安装和 DBA 控制台(DBA Cockpit)中,在 DB2 9.7 中,自动存储功能得到了进一步加强,更加灵活易用。

此前,DB2 无法更改已经生成的数据库或者表空间的自动存储属性,在 9.7 中,可以使用 ALTER DATABASE SQL 语句来讲未启用自动存储的数据库转化为自动存储数据库,而且可以使用 ALTER TABLESPACE SQL 语句将已存的 DMS 表空间转化为自动存储表空间,以及使用 ALTER DATABASE SQL 和新的 DROP STORAGE 选项来在线删除存储路径。

例如,下面 SQL 语句可以将一个非自动存储数据库转换为自动存储数据库,SQL 语句中新添加的路径将用来作为数据库的存储路径,一旦语句执行完成,此数据库的自动存储即被启用。

 ALTER DATABASE <DatabaseName> 
 ADD STORAGE ON <Path1> [,<Path2>,...,<Pathn>] 

存储空间回收

DB2 9.7 提供了与以往不同的对象寻址机制去寻找数据对象所在的页面,这种新的机制使得数据库系统能够轻而易举地减少表空间的大小,非常便捷地将不再使用的存储空间回收,包括降低表空间的高水位(High Water Mark,HWM),将高水位之下的未使用空间还给文件系统。SQL 语句 ALTER TABLESPACE 与 REDUCE 选项配合使用即可达到此目的。但是由于 DMS 表空间和自动存储表空间的内在差异,此语句在使用上面也有所不同。

对于自动存储器空间,REDUCE 选项具有子选项,可用来指定是否将存储空间缩小最大可能的量或缩小当前表空间大小的某一百分比。其命令形式为:

ALTER TABLESPACE <TablespaceName> REDUCE [ <size>| MAX | STOP ] 

DMS 表空间有所不同,需先将 ALTER TABLESPACE 语句与 LOWER HIGH WATER MARK 选项一起使用,然后将 ALTER TABLESPACE 语句与 REDUCE 选项及关联容器操作子句配合使用。具体语法为:

ALTER TABLESPACE <TablespaceName> LOWER HIGH WATER MARK [ STOP ] 
ALTER TABLESPACE <TablespaceName> REDUCE … 

对于在 DB2 9.7 中新创建的 DMS 或者自动存储表空间,回收存储空间是默认启动的,而且它是一个在线操作,不会影响 SAP 系统的运行。并且此功能可通过 SAP 中的 DBA 控制台来监控和管理,不过需要将相关 SAP 的支持包(Support Package)升级到相应级别。

可以通过以下 SQL 语句来查看系统中有哪些表空间已经启动可回收存储器:

 SELECT tbsp_name FROM TABLE (MON_GET_TABLESPACE('',-2)) AS T 
 WHERE reclaimable_space_enabled = 1 

在升级到 DB2 9.7 之前就已经生成的表空间并不被此特性支持,在 SAP 系统中,如果需要将此类表空间转化为支持可回收存储,可以使用 SAP 中的工具 DB6CONV 来将此表空间所有表转移到一个新生成的表空间中。DB6CONV 是一个基于 ABAP 程序,存在于在 SAP 4.6 之后的版本,可以在 SAP 系统运行的时候在线使用。

提高表空间容量

DB2 9.7 相对于 V9.5 而言,大型表空间和临时表空间的最大容量扩充了四倍。如下表所示,如果表空间使用 32KB 的页大小,其表空间最大可达到 64TB。这对于有着庞大并且日益快速增长的数据库的 SAP ERP 或 BW 系统而言,有着重要的意义,给未来难以预料的数据增长留下了足够的空间。

表 2. 表空间容量对比

页大小 DB2 V9.5表空间限制 DB2 9.7表空间限制
4 KB 2 TB 8 TB
8 KB 4 TB 16 TB
16 KB 8 TB 32 TB
32 KB 16 TB 64 TB

其他特性

监控增强

DB2 9.7 包含了一个新的监控构造。新的“Time Spent”( 时间花费 ) 监控器可以帮助用户找出数据库系统在那里消耗了更多的时间;新的事件监控器添加了锁、包缓存等监控;对索引、容器等对象提供了更多的信息,如索引存取统计等。这些增强有助于更加有效和准备地帮助用户分析数据库运行状况以及进行调优。在 SAP DBA 控制台中也集成了更多新功能,更加便于用户通过控制台来管理数据库。

安全增强

DB2 9.7 使用了传输层安全(TLS)和安全套接字层协议(SSL)来增强数据库传送数据的安全性。数据库和 SAP 之间的数据交互将会更加安全。

SAP BW 性能增强

DB2 9.7 提供了多种新特性来继续提高 SAP BW 系统的性能,例如扫描共享,允许多个扫描程序协调共用缓冲池页,并通过缓冲池页保留时间来潜在降低 I/O,从而提高工作负载并发性和性能。同时在数据库分区(DPF)环境中,增强了优化器的成本模型,以改进分区数据库环境中的某些查询的性能。

在线移动表数据

此前,SAP 系统在 DB2 中进行表数据移动操作时,会使用存储过程 ONLINE_TABLE_MOVE。在 DB2 9.7 中,一个新的存储过程 ADMIN_MOVE_TABLE 取代了原来的 ONLINE_TABLE_MOVE。此存储过程将表中的数据移至名称相同(但其存储器特征可能不同)的新表对象,同时使数据保持联机并可供访问。还可在表移动时生成新的优化压缩字典。对 SAP 而言,此功能使得用户可以在保持数据联机的情况下,将表数据移到新的表对象,这有助于在避免数据脱机的情况下启动压缩、存储空间回收以及在不同表空间移动数据表等操作,从而降低维护的成本和复杂度。

可压缩数据复制源表

对于此版本,可对充当复制源表的表启用行压缩。这意味着可同时对 CREATE TABLE 和 ALTER TABLE 语句指定 COMPRESS YES 和 DATA CAPTURE CHANGES 选项。这个功能对 SAP CRM 系统有着重要的意义,因为此系统需要经常复制数据表到其他系统以进行进一步商务智能分析。

原生"Truncate Table" 语句

由于在之前的 DB2 版本中未提供“TRUNCATE TABLE”功能,SAP 的 ABAP 数据库接口层使用 IMPORT 功能模拟了一个“TRUNCATE TABLE”命令,从而导致数据库页面不能返回给表空间。DB2 9.7 提供了此命令,因此在 SAP 内核(kernel)版本 7.00 中,数据库接口层开始使用 DB2 的“TRUNCATE TABLE”命令来快速删除表中所有行,并且如果当时没有联机备份在同时运行的话,数据页将会立即返回给表空间。

MDC 表空间在线回收

在 DB2 9.7 中,用户可以使用一个在线重组(online REORG)命令,即可释放 MDC 表中的空数据区,无需完全脱机表重组。在之前的 DB2 版本中,可用空间只能供 MDC 表使用,现在则可被表空间中的其他对象使用。此特性也已完全集成于 SAP 的 DBA 控制台中。

总结

本文主要简单介绍了 DB2 9.7 中对 SAP 系统用户有较大影响和帮助的一些新特性。希望通过本文读者能够了解相关新特性的概要,以及如何使用正确的方式来实现和利用这些新特性,从而帮助 DB2/SAP 客户节省资源,提高数据库性能,降低系统维护工作量等。本来只是一个概述,关于 DB 9.7 和 SAP 相关的更多功能和具体使用办法,可以参考 developerworks 或者 SAP SDN 的 DB2 for LUW 专区中的文章,或者搜索 IBM DB2 9.7 Information Center for Linux, UNIX and Windows 和 SAP Note 以获得更多相关信息。

Tags:DB 应用 SAP

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