自 DB2 Universal Database Version 8 开始,您已经能够压缩备份映像。自 DB2 10.1 版本开始,也可以对日志归档应用压缩功能。无论您是否具备 DB2 Storage Optimization Feature 许可,都可以使用这些功能。 用于压缩备份映像和归档日志的默认算法与 compress(1) UNIX 实用程序采用的算法类似。
备份压缩
您可以为各备份映像单独启用备份压缩。当执行备份操作时,请指定 COMPRESS 语句,具体例子如下所示:
BACKUP DATABASE TDB2 to /vol_aux/backups/ COMPRESS
如果您使用行压缩和索引压缩,并且遵循了缩小表空间的容器大小的指导原则,那么数据库的整体大小可能会大幅缩小。因此,如果禁用行压缩和索引压缩,您的备份映像将自动缩小,小于其实际大小。与此同时,通过对备份映像应用压缩功能可实现的额外空间节约量可能会大幅减少。当有大量表采用自适应行压缩时,这一规律尤其适用。但是,备份映像压缩还能够压缩元数据、LOB、目录表以及无法通过任何其他方式进行压缩的其他数据库对象。
决定是否需要压缩备份映像时,最重要的指标是执行备份时的 CPU 和磁盘利用率。备份压缩可能会产生大量 CPU 开销。只有在备份过程遭遇 I/O 瓶颈时才应当使用备份压缩。例如,如果您将备份映像存储在一个为分散在不同物理磁盘的某个卷上或者备份至网络附加或非本地存储介质上,那么可能会发生这种状况。在这些情况下,整个备份流程的 CPU 利用率将会增加,但 I/O 开销节约量可以有效缩短备份时间。
如果您将备份存储在 ">Tivoli Storage Manager (TSM) 软件上,则应使用内置于 TSM 的压缩和重复数据删除功能。如果您拥有多个最新的备份映像,重复数据删除逻辑可大幅增加存储空间整体节约量。 如果只有部分表使用行压缩和索引压缩,最好根据压缩设置将表和索引分离到不同的表空间中。此外,可以考虑在表空间级(而不是数据库级)执行备份。在这种情况下,您可以平衡压缩设置,仅对包含未经压缩的表和索引的表空间备份执行压缩。
日志归档压缩
如果您为数据库配置了日志归档,则可通过数据库配置参数对这些日志归档启用压缩。您可以单独针对主归档方法、辅助归档方法和相应的归档位置启用或禁用日志归档压缩。日志归档压缩要求使用数据库管理器处理归档流程,也就是说,您必须将归档方法设置为 DISK、TSM 或 VENDOR。下面的示例展示了在启用压缩的情况下,如何设置主要日志归档和基于磁盘的日志归档:
UPDATE DB CFG FOR TDB2 USING LOGARCHMETH1 DISK:/vol_aux/archive/tdb2
UPDATE DB CFG FOR TDB2 USING LOGARCHCOMPR1 ON
对于辅助归档方法,您也可以用类似的方式启用压缩。
日志归档压缩在启用后完全自动执行。将日志盘区从活动日志路径移动到归档位置后,数据库管理器将自动压缩日志盘区。当检索日志文件(可能在 ROLLBACK 和 ROLLFORWARD 命令操作期间发生)时,数据库管理器会在将压缩的日志文件从归档位置移动到活动日志路径或溢出日志路径时自动扩展这些文件。如果在恢复过程中,数据库管理器在活动日志路径或溢出日志路径中遇到一个压缩的日志盘区,将会自动扩展该盘区。例如,如果手动从归档位置将日志盘区检索到活动日志路径或溢出日志路径,则可能会发生这种状况。 当决定是否要对日志归档启用压缩时,需要考虑的注意事项与应用备份压缩类似。检查归档位置的可用 I/O 带宽,并查看它是否是归档流程期间的瓶颈。
如果您的日志归档位于非本地卷或未分散在大量磁盘上的卷上,可以考虑启用压缩。此外,如果您将日志归档至磁盘上的暂存位置,以便随后通过 db2tapemgr 实用程序传输到磁带上,也可以考虑启用压缩。在这种情况下,压缩有助于缩短将归档日志传输至磁带花费的时间。 如果您归档至 TSM,可以考虑使用其内置的压缩工具。日志归档的行为与 DB2 10.1 版本中压缩工具的行为极其类似,因为它们采用了同一种算法。与备份压缩不同的是,一般无法从重复数据删除功能中获得额外收益。
当您使用行压缩和索引压缩时,写入事务日志的某些数据已经是压缩格式。因此,记录的数据量要小于您对未经压缩的表执行同样的操作时需要处理的数据量。不过,即使广泛使用行压缩和索引压缩,事务日志中通常包含足够的元数据和其他未压缩项目,可供您在几乎任何日志归档上实现重大的存储空间节省。
最佳实践
• 谨慎选择要执行压缩的候选表和索引。
• 先估算压缩率,然后再选择应用哪种行压缩模式。
• 了解并选择对现有的表和索引进行压缩的特定方法。
• 通过使用可回收存储表空间,轻松地将压缩节约的存储空间返回到文件系统。
• 通过采用统计方法,监控并测量行压缩的有效性。
• 通过采用自适应行压缩模式,缓解表重组需求。
• 通过压缩备份映像和日志归档,控制管理数据占用的存储空间。
结束语
运用 DB2 Storage Optimization Feature 提供的压缩技术能够大幅降低当前及未来的存储空间需求并提高绩效,这种方法对工作负载受 I/O 限制的环境尤其有效。通过搭配使用此软件与其他管理数据压缩功能,对大型 OLTP 工作负载或数据仓库实施具有空间意识的存储策略将不再困难。