IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Information Management  >

使用 Data Studio Administrator 和 DB2 High Performance Unload 快速有效地迁移数据和模式

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

样例代码

英文原文

英文原文


级别: 初级

Don Langworthy, 软件工程师, IBM
Vinod Chirayath, 软件工程师, IBM
Kathryn Zeidenstein, 资深软件工程师, IBM

2009 年 7 月 06 日

作为数据库管理员 (DBA),当可以使用更快、更高效的硬件时,您可能需要升级您的数据库服务器。可能还需要在尽可能不影响生产性能的情况下完成这一任务。本文将介绍两个主要场景,向您逐步展示 Erik(一家虚构公司中的 DBA)如何结合使用 Data Studio Administrator 2.1 和 DB2® High Performance Unload 4.1 来快速有效地完成数据迁移。这些场景描述了如何将 Data Studio Administrator 的易用性与 DB2® High Performance Unload 的高速卸载功能有效地组合在一起。

简介

定期将数据库迁移到更新和更快的硬件是一种已知的需求。作为数据库管理员 (DBA),您可能想知道您目前遵循的流程在管理变更方面是否是最有效的。数据迁移任务是否非常繁杂和耗时?本文将描述如何使用 Data Studio Administrator 2.1 和 DB2 High Performance Unload for Linux®, UNIX®, and Windows® 4.1,展示用于执行这些任务的简单但功能强大的解决方案。

Data Studio Administrator

Data Studio Administrator 是一个重要工具,它包含基本的管理功能,比如命令和实用程序,但它擅长应对复杂的变更管理。Data Studio Administrator 能够帮助您:

  • 跟踪变更

  • 与其他进行不同变更的 DBA 合作

  • 审计和管理所贡献变更的历史记录

  • 反转或撤销任何不再需要的变更。

使用 Data Studio Administrator 2.1,您能够:

  • 在 Data Studio Administrator 用户界面内部使用 DB2 High Performance Unload 来卸载数据库中的表

  • 从 Data Studio Administrator 运行您自定义的 DB2 High Performance Unload 控制文件

DB2 High Performance Unload

DB2 High Performance Unload 通过高速卸载功能帮助您满足服务水平协议。因为 DB2 High Performance Unload 使用指定管道来并行执行加载和卸载步骤,所以迁移过程非常快。系统资源得到了有效利用。此外,在许多情况下,DB2 High Performance Unload 能够直接处理容器,避免了通过 DB2 处理的开销。

DB2 High Performance Unload 还能够重新分配数据,帮助提高备份和恢复操作的速度,它启用了从完整的数据库备份卸载和恢复单个表的功能。这些功能使其能够更容易地响应各种宕机情况。


图 1. DB2 High Performance Unload 提供了灵活的输出选项
插图中列出了各种源和输出选项。源选项包括 database_name、table_name、所有用户(非系统)表、单个表、多个表、汇总和别名表、完整备份和所有分区。输出选项包括磁带设备、指定管道、PC/IXF、分隔、不分隔、DSNTIAUL 和 XML 格式。

本文使用两个场景来展示两种产品在执行系统变更管理和快速数据保存方面的强大功能。

场景 A:从 Data Studio Administrator 使用 DB2 High Performance Unload 卸载一个表

这个例子解释从 Data Studio Administrator 使用 DB2 High Performance Unload 卸载数据所涉及到的步骤,这些数据可以使用 DB2 LOAD 实用程序加载。如果没有 Data Studio Administrator,您必须从操作系统命令行发出卸载命令。对于更复杂的卸载,您可能还需要构造一个控制文件,然后使用 -f 选项将它传递到 DB2 High Performance Unload 命令行。

场景概述

JK Enterprises,本例中虚构的公司,需要将其客户帐户转移到新数据库。Erik,JK Enterprises 的 DBA,被指派来完成此任务。他需要卸载生产数据库 GSDB 中的 GOSALESCT 模式中的 CUST 表,还需要将其加载到新数据库 GSDBNEW 中。Erik 需要尽可能快地执行此任务,将对生产计划的影响降到最低。

此场景划分为以下几个高级步骤:

  1. 在新服务器上创建想要的数据库、模式和表

  2. 使用 High Performance Unload 任务助手卸载数据

  3. 使用 DB2 LOAD 任务助手将数据加载到测试数据库

前提条件

执行以下步骤来安装和配置一个环境,您将在 Erik 的示例场景中使用该环境:

  1. 安装 Data Studio Administrator Version 2 Release 1 with Fix Pack 1(如果需要下载试用版,请参见 参考资料)。如果未在 Data Studio Administrator Version 2 Release 1 系统上安装 Fix Pack 1,请参见 参考资料

  2. 安装一个支持的 DB2 版本。如果没有 DB2,请参见 参考资料,下载 DB2 Express-C,它是 DB2 Express Edition 的一个免费版本。

  3. 执行以下步骤来创建一个名为 GSDB 的示例数据库:
    1. 从本文的 下载 部分下载 GSDB_database.zip 文件,并从中解压出 GSDB_Database.sql 文件。如果不知道如何安装所下载的文件,请参见 “用 Data Studio Administrator 恢复数据库”(developerWorks,2009 年 4 月)。

    2. 打开一个 DB2 命令窗口。

    3. 导航到您保存 GSDB_Database.sql 文件的位置。

    4. 输入以下命令:db2 -td~ -f GSDB_Database.sql

  4. 在测试和开发服务器上都安装上 DB2 High Performance Unload for Linux, UNIX, and Windows 4.1。

在新服务器上创建想要的数据库、模式和表

执行以下步骤,创建一个名为 GSDBNEW 的示例数据库:

  1. 从本文的 下载 部分下载 GSDBNEW.zip 文件,并从中解压出 GSDBNEW.sql 文件。

  2. 打开一个 DB2 命令窗口。

  3. 导航到您保存 GSDBNEW.sql 文件的位置。

  4. 输入以下命令:db2 -td~ -f GSDBNEW.sql

创建数据库之后,使用 Data Studio Administrator 创建一个到 GSDBNEW 数据库的连接,执行以下步骤:

  1. 在数据源资源管理器(Data Source Explorer)中右键单击 Database connections 文件夹,然后单击 New,如图 2 所示。

图 2. 数据源资源管理器
屏幕截图:数据源资源管理器,其中选中了 Database Connections 和 New
  1. 选择 DB2 for Linux, UNIX, and Windows 作为 Database Manager,并基于您的环境提供实例细节和认证凭据,如图 3 所示。

图 3. New Connection 向导
屏幕截图:New Connection 向导,其中选中了 DB2 for Linux, UNIX, and Windows。并且显示 Database 为 NEWDB,Host 为 Localhost,Port Number 为 50000
  1. 单击 Finish。一个新的连接配置文件 GSDBNEW 被添加到数据源资源管理器。

使用 High Performance Unload 任务助手卸载数据

  1. 从数据源资源管理器,下钻到 GSDB 数据库中的 GOSALESCT 模式中的表。

  2. 右键单击 CUST 表,然后单击 High Performance Unload,如图 4 所示。

图 4. 选择 High Performance Unload
屏幕截图:数据源资源管理器显示选择了 CUST 和 High Performance Unload

将打开 DB2 High Performance Unload 任务助手。

  1. 指定 C:\HPU_ControlFiles 作为数据服务器数据文件目录(Data server data file directory),如图 5 所示。

图 5. High Performance Unload 任务助手
屏幕截图:High Performance Unload CUST 窗口显示了数据服务器数据文件目录为 C:\HPU_ControlFiles
  1. 单击 Customize Query 标签,选择表中所有可用的列,如图 6 所示。

图 6. 为 DB2 High Performance Unload 指定列
屏幕截图:High Performance Unload CUST 窗口显示选择了所有列
  1. 单击 Preview Command,并查看生成的 DDL,如图 7 所示。

图 7. 预览命令
屏幕截图:显示要运行的命令列表
  1. 当对命令满意之后,单击 Run 执行它们。

使用 DB2 LOAD 任务助手将数据加载到测试数据库

  1. 从数据源资源管理器,下钻到 GSDBNEW 数据库的 GOSALESCT 模式中的 CUST 表。

  2. 右键单击 CUST 表,并单击 Load,如图 8 所示。

图 8. 加载表
屏幕截图:数据源资源管理器屏幕显示选中了 CUST 和 Load

将打开 Load 任务助手。

  1. 单击 Import table 任务助手中的 Files 标签,并使用您创建的数据文件。

  2. 单击 Preview command,并查看生成的 DDL,如图 9 所示。

图 9. 预览命令
屏幕截图:显示了要运行的命令列表
  1. 当对命令满意之后,单击 Run 执行它们。




回页首


场景 B:迁移模式

场景概述

JK Enterprises 购买了新硬件,用来安装一个测试服务器,这个服务器名为 GSDBTEST。Erik 被指派执行将 GOSALES 数据库模式(表和数据)从其现有开发数据库 (GSDBDEV) 迁移到 GSDBTEST 的任务。

这个场景划分为以下高级步骤:

  1. 在新服务器上创建数据库和模式

  2. 使用 Data Studio Administrator 变更管理功能将表复制到新服务器

  3. 使用 DB2 High Performance Unload 任务助手迁移数据

在新服务器上创建数据库和模式

执行以下步骤,创建一个名为 GSDBTEST 的示例数据库:

  1. 从本文的 下载 部分下载 GSDBTEST.zip 文件,并从中解压出 GSDBTEST.sql 文件。

  2. 打开一个 DB2 命令窗口。

  3. 导航到您保存 GSDBTEST.sql 文件的位置。

  4. 输入以下命令:db2 -td~ -f GSDBTEST.sql

创建数据库之后,使用 Data Studio Administrator 创建一个到 GSDBTEST 数据库的连接,执行以下步骤:

  1. 在数据源资源管理器中右键单击 Database connections 文件夹,然后单击 New,如图 10 所示。

图 10. 数据源资源管理器
屏幕截图:数据源资源管理器,其中突出显示了选择的 Database Connections 和                     New
  1. 选择 DB2 for Linux, UNIX, and Windows,并基于您的环境提供实例细节和认证凭据,如图 11 所示。

图 11. New Connection 向导
屏幕截图:New Connection 向导,其中选择了 DB2 for Linux, UNIX, and                     Windows,还显示 Database 为 NEWDB,Host 为 Localhost,Port Number 为 50000
  1. 单击 Finish。一个新的连接配置文件 GSDBTEST 被添加到数据源资源管理器。

使用 Data Studio Administrator 变更管理功能将表复制到新服务器

在场景的第一部分中,Erik 使用 Data Studio Administrator 的复制并粘贴功能复制了 GOSALES 模式中的表。为了跟踪所做变更,使用了一个变更管理脚本,这个脚本是一个用于跟踪变更管理过程的 Data Studio Administrator 资源。

后台操作

当创建变更管理脚本时,也创建了数据库的两个物理模型。一个模式是基础模型,它表示数据库的当前状态。另一个模型是目标模型,该模型被编辑来指定数据库在变更之后的状态。

完成以下步骤,复制 GOSALES 模式中的表并将其粘贴到 GOSALESTEST 数据库中:

  1. 从数据源资源管理器,下钻到 GSDB 数据库的 GOSALES 模式中的表。

  2. 选择该模式中的所有表。

  3. 右键单击选择的表,然后单击 Copy,如图 12 所示。

图 12. 从 GSDB 数据库复制表
屏幕截图:数据源资源管理器显示选择了所有表和 Copy 命令
  1. 从数据源资源管理器中,导航到 GSDBTEST 数据库,并下钻到 GOSALES 模式。

  2. 右键单击 GOSALES 模式文件夹,然后单击 Paste,如图 13 所示。

图 13. 粘贴到 GSDBTEST 数据库
屏幕截图:数据源资源管理器显示选择了 GOSALES 和 Paste

启动变更管理脚本(Change Management Script)任务助手。在变更管理脚本任务助手中执行以下步骤:

  1. 选择 Create a New Change Management Script 并单击 Next。默认情况下会选中 GOSALES 模式。

  2. 单击 Next

  3. 选择 Copy database objects only,如图 14 所示。

图 14. 在变更管理脚本编辑器(Change Management Script Editor)中复制数据库对象
屏幕截图:Paste Database Objects 窗口,其中选择了 Copy Database                     Objects Only
  1. 单击 Finish。结果类似于图 15。

图 15. 变更管理脚本编辑器
屏幕截图:变更管理脚本编辑器窗口显示了 Objects To Be Changed 列中的一些表
  1. 单击 Preview Command 并查看生成的 DDL,如图 16 所示。

图 16. 预览命令
屏幕截图:要运行的命令列表
  1. 对命令满意之后,单击 Run 执行它们。
记住检查生成的 DDL

检查生成的 DDL,确保表空间和容器名称准确无误。可以单击 Open in SQLX Editor 来更改 DDL。

如果执行成功,您复制的所有表都将在 GSDBTEST 数据库的 GOSALES 模式中创建,如图 17 所示。


图 17. 数据源资源管理器视图显示了测试数据库(GSDBTEST)中新创建的表
屏幕截图:数据源资源管理器窗口显示了 GSDBTEST 数据库中新创建的表

使用 DB2 High Performance Unload 任务助手迁移数据

使用 DB2 High Performance Unload 4.1,使用一个 DB2 High Performance Unload 控制文件就能够卸载数据、转移数据以及将其加载到新数据库中。场景 A 中已提到过,Data Studio Administrator 提供了一个 DB2 High Performance Unload 任务助手来帮助您创建一个简单的控制文件,用于从单个表中卸载数据。但是,要迁移一个模式中的所有表的数据,您需要创建一个控制文件,并且可以从 Data Studio Administrator 调用它。完成以下步骤,创建一个控制文件:

  1. 通过修改清单 1 中的模板,在文本编辑器中创建控制文件。确保根据您自己的环境修改了 TARGET ENVIRONMENTWORKING IN 行。

清单 1. 控制文件模板
				
GLOBAL CONNECT TO GSDB
UMASK "022";

MIGRATE TABLESPACE 
SELECT * FROM GOSALES.INVENTORY_LEVELS;
TARGET ENVIRONMENT (INSTANCE "NEWINST" ON "NEWSERVER" IN GSDBTEST)
WORKING IN ("user_dir_on_new_system")
FORMAT MIGRATION;

MIGRATE TABLESPACE 
SELECT * FROM GOSALES.ORDER_METHOD;
TARGET ENVIRONMENT (INSTANCE "NEWINST" ON "NEWSERVER" IN GSDBTEST)
WORKING IN ("user_dir_on_new_system")
FORMAT MIGRATION;

MIGRATE TABLESPACE 
SELECT * FROM GOSALES.PRODUCT;
TARGET ENVIRONMENT (INSTANCE "NEWINST" ON "NEWSERVER" IN GSDBTEST)
WORKING IN ("user_dir_on_new_system")
FORMAT MIGRATION;

MIGRATE TABLESPACE 
SELECT * FROM GOSALES.PRODUCT_BRAND;
TARGET ENVIRONMENT (INSTANCE "NEWINST" ON "NEWSERVER" IN GSDBTEST)
WORKING IN ("user_dir_on_new_system")
FORMAT MIGRATION;

MIGRATE TABLESPACE 
SELECT * FROM GOSALES.PRODUCT_COLOR_LOOKUP;
TARGET ENVIRONMENT (INSTANCE "NEWINST" ON "NEWSERVER" IN GSDBTEST)
WORKING IN ("user_dir_on_new_system")
FORMAT MIGRATION;

MIGRATE TABLESPACE 
SELECT * FROM GOSALES.PRODUCT_FORECAST;
TARGET ENVIRONMENT (INSTANCE "NEWINST" ON "NEWSERVER" IN GSDBTEST)
WORKING IN ("user_dir_on_new_system")
FORMAT MIGRATION;

MIGRATE TABLESPACE 
SELECT * FROM GOSALES.PRODUCT_LINE;
TARGET ENVIRONMENT (INSTANCE "NEWINST" ON "NEWSERVER" IN GSDBTEST)
WORKING IN ("user_dir_on_new_system")
FORMAT MIGRATION;

MIGRATE TABLESPACE 
SELECT * FROM GOSALES.PRODUCT_NAME_LOOKUP;
TARGET ENVIRONMENT (INSTANCE "NEWINST" ON "NEWSERVER" IN GSDBTEST)
WORKING IN ("user_dir_on_new_system")
FORMAT MIGRATION;

MIGRATE TABLESPACE 
SELECT * FROM GOSALES.PRODUCT_SIZE_LOOKUP;
TARGET ENVIRONMENT (INSTANCE "NEWINST" ON "NEWSERVER" IN GSDBTEST)
WORKING IN ("user_dir_on_new_system")
FORMAT MIGRATION;

MIGRATE TABLESPACE 
SELECT * FROM GOSALES.PRODUCT_TYPE;
TARGET ENVIRONMENT (INSTANCE "NEWINST" ON "NEWSERVER" IN GSDBTEST)
WORKING IN ("user_dir_on_new_system")
FORMAT MIGRATION;

  1. 将控制文件保存在运行 Data Studio Administrator 的计算机上,比如保存在以下位置:C:\HPU_ControlFiles\MigrateSchema.ctr。

  2. 从数据源资源管理器中下钻到 GSDB 数据库的 GOSALES 模式中的任何表,比如 PRODUCT 表。

  3. 右键单击 PRODUCT 表,并单击 High Performance Unload,如图 18 所示。

图 18. 数据源资源管理器中的 High Performance Unload 选项
屏幕截图:数据源资源管理器显示选择了 PRODUCT 和 High                     Performance Unload

将打开 DB2 High Performance Unload 任务助手。

  1. 单击 DB2 High Performance Unload 任务助手上的 Customize Query 标签。

  2. 要使用控制文件,选择 Upload control file 选项,找到并选择您创建的文件。这将在编辑器中打开控制文件,如图 19 所示。

图 19. High Performance Unload 任务助手
屏幕截图:High Performance Unload PRODUCT 窗口显示数据服务器数据文件目录为 C:\HPU_ControlFiles\MigrateSchema.ctr 并且选择 Upload Control File
  1. 单击 Run 将数据迁移到测试数据库。




回页首


结束语

本文演示了一种结合使用 Data Studio Administrator 易用的用户界面和 DB2 High Performance Unload 的强大功能来加速数据迁移的方式。文中的逐步说明能够帮助数据库管理员高效地结合使用这些工具。

致谢

作者衷心感谢 Sweta Patel 和 Tina Chen 对本文的仔细评审,感谢他们提供了宝贵的反馈。






回页首


下载

描述名字大小下载方法
示例数据库 GSDBGSDB_database.zip132KBHTTP
示例数据库 GSDBNEWGSDBNEW.zip515KBHTTP
示例数据库 GSDBTESTGSDBTEST.zip186KBHTTP
关于下载方法的信息


参考资料

学习

获得产品和技术

讨论


作者简介

Don Langworthy 的照片

Don Langworthy 是位于加州圣何塞的硅谷实验室的一名软件工程师。他从 2004 年就开始担任 DB2 Change Management Expert。在业余,Don 会在中学棒球比赛中担当裁判。


Vinod Chirayath 的照片

Vinod Chirayath 是位于堪萨斯州 Lenexa 的 IBM 实验室 Information Management Tools 小组的一名软件工程师。他从 2008 年就开始担任 Data Studio 管理员,并且拥有计算机科学硕士学位。


Kathy Zeidenstein 在 1987 年加入 IBM 硅谷实验室。她最初加入的是 DB2 for OS/390 组织,在这里,她首次接触了对象关系。当她开始在 SQL 标准团队工作之后,她了解了 DB2 中许多更高级的对象关系特性,因为这项产品的许多语言设计都会提交给 SQL 标准委员会。




对本文的评价








IBM、developerWorks 和 DB2 是 IBM Corporation 在美国和/或其他国家的商标。 Microsoft、Windows、Windows NT 和 Windows 徽标是 Microsoft Corporation 在美国和/或其他国家的商标。 UNIX 是 The Open Group 在美国和其他国家的注册商标。 Linux 是 Linus Torvalds 在美国和/或其他国家的注册商标。 其他公司、产品或服务名称可能是其他公司的商标和服务标志。 其他公司、产品或服务的名称可能是其他公司的商标或服务标志。

IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款