场景:将表格卸载到数据仓库系统, Optim High Performance Unload

该场景描述了 DBA 如何使用 Optim™ High Performance Unload 将表从生产数据库卸载到数据仓库系统,而无需脱机运行生产系统。

关于本任务

Steve 是一家银行公司的高级 DBA ,需要使用生产数据库 PROD_DB 中的数据定期更新公司数据仓库系统上的 CUSTOMER 表。 史蒂夫不想让生产系统离线,因此他将使用 Optim High Performance Unload 从生产系统中卸载工作台。

Optim High Performance Unload 不会通过 Db2® 日志文件来确定卸载期间数据库是否发生了任何变化。 因此,从实时生产数据库中卸载的数据中可能存在少量重复或缺失的记录。 但是,由于 Steve 需要定期更新数据仓库系统上的 CUSTOMER 表,因此他愿意接受少量不一致的情况。 在启动卸载之前,他将使用此任务的控制文件中的 FLUSH BUFFERPOOLS YES 和 LOCK NO 选项将 Db2 缓冲池数据写入磁盘。 这些选项将最大限度减少缺失或重复记录的数量。

以下指示信息描述 Steve 将执行的步骤以将表卸载到数据仓库系统:

过程

  1. 创建一个 Optim High Performance Unload 控制文件,在其中指定卸载选项。
    例如:
    GLOBAL CONNECT TO PROD_DB DB2 NO
    FLUSH BUFFERPOOLS YES
    LOCK NO
    ;
    UNLOAD TABLESPACE
    SELECT * FROM "STEVE"."CUSTOMER";
    OUTFILE ("unload_dir\warehouse.out" REPLACE)
    LOADFILE ("unload_dir\warehouse.load")
    FORMAT DEL
    ;
    
    创建控制文件时,请考虑以下选项:
    • 使用 DB2 NO选项,确保当SELECT子句语法过于复杂,无法 Optim High Performance Unload 处理。 此选项通过确保完全由 Optim High Performance Unload
    • 使用 FLUSH BUFFERPOOLS YES 选项来通知 Db2 卸载,以便在卸载开始之前将缓冲池数据写入磁盘。
    • 使用 LOCK NO 选项来指定不会锁定表空间,以允许生产数据库在卸载期间正常工作。
    • 在 LOADFILE 子句中指定装入文件的名称。 可以将此文件与 Db2 Load 实用程序配合使用,以装入已卸载的数据。
  2. 将控制文件保存在生产系统上的目录中。
    例如,C:\HPU_ControlFiles\scenario4.ctr
  3. 打开命令行,使用控制文件运行 Optim High Performance Unload 命令:
    db2hpu -f C:\HPU_ControlFiles\scenario4.ctr
  4. 将 Db2 Load 实用程序与 warehouse.load 装入文件配合使用,以将 warehouse.out 输出文件装入到数据仓库数据库中。

结果

Optim High Performance Unload 在从在线生产数据库中卸载客户表之前,将所有 Db2 缓冲池数据保存到磁盘,以最大程度地减少记录丢失和重复的可能性。 然后, Steve 可以使用装入文件将表装入到公司的数据仓库系统中,而不会使生产数据库脱机。