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

developerWorks 中国  >  Information Management  >

使用 Data Studio Administrator V2.1 进行数据迁移和更改管理

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

样例代码

英文原文

英文原文


级别: 初级

Arlan Finestead, 软件工程师, IBM
Sangeetha Srinivasan, 软件工程师, IBM

2009 年 7 月 02 日

IBM® Data Studio Administrator for DB2® for Linux®, UNIX®, and Windows® 为 DBA 提供强大的管理方法,可以管理和控制对数据库所做的复杂更改,同时保留底层数据。在 2.1 版中,可以使用新的复制和粘贴功能进行迁移,这进一步简化了操作。在本文中,学习如何使用 Data Studio Administrator 管理对生产数据库表所做的更改:把对象和数据复制到测试系统中,执行所需的更改,然后把更改传播回生产数据库环境。

简介

本文讲解 Erik(一家虚构的公司 JK Enterprises 的 DBA)如何使用 Data Studio Administrator 对生产数据库应用更改,从而响应团队成员提出的请求。如果不使用 Data Studio Administrator,Erik 就必须通过手工编写脚本在测试系统中迁移和测试更改,这需要很长时间而且很容易出错。Data Studio Administrator 可以帮助 Erik 快速轻松地执行这些复杂的更改。





回页首


前提条件

本文使用 Data Studio Administrator Version 2, Release 1,带 Fix pack 1。如果您希望实践 Erik 的操作,那么需要在机器上安装 Data Studio Administrator (Administrator)。(试用版:IBM Data Studio Administrator for DB2 for Linux, UNIX, and Windows Data Studio Administrator V2.1)。

注意:这个场景使用 GSDB 数据库模拟 JK Enterprises 的生产数据库。您需要使用名为 GSDB 的示例数据库。按照以下步骤创建这个数据库:

  1. 从本文的 IBM Data Studio Administrator 2.1 中的新特性 部分获得 zip 文件,从其中解压出 GSDB_Database.sql 文件。
  2. 打开一个 DB2 命令窗口。
  3. 导航到保存 GSDB_Database.sql 文件的位置。
  4. 输入:db2 -td~ -f GSDB_Database.sql

为了跟随这个场景操作,还需要创建一个 “测试” 数据库。这需要在 DB2 Command Line Processor (CLP) 中执行以下命令: - db2 CREATE DATABASE GSDBDEV USING CODESET UTF-8 TERRITORY US

在启动 Data Studio Administrator 时,在 Data Source Explorer 中会自动地出现到生产数据库和测试数据库的连接,见 图 1。在第一次使用这些连接时,需要输入用户名和密码信息才能连接数据库。


图 1. Data Source Explorer 中的连接
Data Source Explorer 中的连接

(单击 这里 查看图 1 的大图像)。





回页首


Erik 的数据库更改请求(场景概述)

Erik 是 JK Enterprises 的 DBA,他收到一个请求,要求他在公司的所有客户中添加移动成员。为了满足这个请求,他首先把生产系统复制到测试系统,然后在测试系统上执行和测试更改。在测试更改之后,他把更改传播回生产数据库。下面的步骤演示 Erik 如何使用 Data Studio Administrator 轻松地完成这些任务。





回页首


在测试数据库中创建模式

为了满足对生产系统的更改请求,Erik 首先需要设置一个测试环境,他可以在这个环境中执行更改,而不会影响生产系统。这个更改请求涉及生产数据库中的一个模式。为了在测试数据库中反映这一点,Erik 决定在测试数据库 GSDBDEV 中创建一个名为 CHANGES 的模式,它将保存后面所做的更改。

按照以下步骤创建名为 CHANGES 的模式:

  1. 在 Data Source Explorer 中 GSDBDEV 数据库下面找到 Schema 文件夹。
  2. 右键单击 Schemas 文件夹,选择选项 Create > Schema

    图 2. 在测试数据库中创建模式
    在测试数据库中创建模式

  3. 选择 Data Object Editor 作为更改所用的编辑器。

    图 3. 选择 Data Object Editor 作为使用的编辑器
    选择 Data Object Editor 作为使用的编辑器

  4. Name 框中输入 CHANGES
  5. 单击 Preview DDL 显示要执行的 DDL。
  6. 单击 Run DDL 创建新模式。

    图 4. 在 Data Object Editor 中创建 CHANGES 模式
    在 Data Object Editor 中创建 CHANGES 模式

    (单击 这里 查看图 4 的大图像)。

CHANGES 模式现在出现在 GSDBDEV 数据库的 Schemas 文件夹下面,见图 5:


图 5. 测试数据库中的 CHANGES 模式
测试数据库中的 CHANGES 模式




回页首


在测试数据库中创建 CUST 表的拷贝

在测试数据库 GSDBDEV 中创建新模式之后,Erik 使用 Data Studio Administrator 中新的复制和粘贴功能把生产数据库 GSDB 中的 CUST 表复制到测试数据库 GSDBDEV 中。复制和粘贴功能执行以下任务:

  • 如果需要的话,自动地创建一个更改管理脚本
  • 把数据库对象从生产系统复制到更改管理编辑器中
  • 可选地设置数据保留命令,这些命令把与数据库对象相关联的数据从生产系统复制到测试数据库

按照以下步骤把 CUST 表从 GSDB 复制到 GSDBDEV:

  1. 导航到 GOSALESCT 模式并展开此节点,打开 Tables 文件夹。
  2. 在 Tables 文件夹下面找到 CUST 表。
  3. 右键单击 CUST 表,选择 Copy

    图 6. CUST 表上的 Copy 操作
    CUST 表上的 Copy 操作

  4. 导航到 GSDBDEV 数据库并选择 CHANGES 模式。
  5. 右键单击 CHANGES 模式并选择 Paste

    图 7. CHANGES 模式上的 Paste 选项
    CHANGES 模式上的 Paste 选项

  6. 在弹出的对话框中选择 Create a New Change Management Script,然后单击 Next

    图 8. Change Management Script Selection 对话框
    Change Management Script Selection 对话框

  7. 在默认情况下,会选择把 CHANGES 模式添加到更改管理脚本编辑器中。单击 Next

    图 9. 在默认情况下选择 CHANGES 模式
    在默认情况下选择 CHANGES 模式

    注意:尽管 Erik 在这个场景中只使用一个模式,但是如果需要,可以同时使用多个模式。

  8. 选择 Copy database objects and data,然后单击 Finish

    图 10. Copy 选项
    Copy 选项

    注意:在某些公司中,不一定需要把数据从生产系统复制到测试系统,甚至不允许这么做。如果只希望复制数据对象,那么选择 Copy database objects only 选项。选中 “Copy dependent database objects” 还会复制依赖的对象(如果有的话)。





回页首


使用更改管理脚本编辑器在 CUST 表中添加 MOBILEPHONE 列

完成粘贴操作之后,Data Studio Administrator 中显示新的更改管理脚本编辑器 GSDBDEV.changexml(见 图 11)。这个编辑器包含粘贴到 CHANGES 模式中的 CUST 表。


图 11. 包含 CUST 表的 GSDBDEV.changexml
包含 CUST 表的 GSDBDEV.changexml

(单击 这里 查看图 11 的大图像)。

现在在 CUST 表中添加一列 MOBILEPHONE。

Data Project Explorer 项目

对于每个更改操作,必须有一个 Data Project Explorer 项目。项目包含各种 Data Studio Administrator 文件和资源。更改管理脚本编辑器使用更改管理脚本文件(扩展名为 “.changexml”)记录和跟踪对数据库对象所做的更改。在新的工作空间中,粘贴操作会自动地创建新的 Data Project Explorer 项目。每个更改管理脚本链接到特定的数据库和模式。如果有现有的 Data Project Explorer 项目,那么在执行粘贴操作时可能会提示您选择现有的 Data Project Explorer 项目或创建新的项目。

按照以下步骤在 CUST 表中添加 MOBILEPHONE 列:

  1. 在更改管理脚本编辑器的 “Objects to be Changed” 列表中选择 CHANGES.CUST 对象,见 图 11
  2. 在编辑器右边的属性部分中选择 Columns 选项卡。

    注意:Columns 选项卡显示当前与这个表相关联的所有列。可以使用这个选项卡操作列。

  3. 单击新列图标(带加号的菱形)创建一个新列:
  4. 把默认的列名 Column1 改为 MOBILEPHONE,把类型改为长度为 32 的 varchar。

    注意:在某些情况下,用户界面不会马上显示新列的信息。单击 General 选项卡,再返回到 Columns 选项卡,就会显示新列的信息了。



    图 12. 添加到 CUST 表中的 MOBILEPHONE 列
    添加到 CUST 表中的 MOBILEPHONE 列

    (单击 这里 查看图 12 的大图像)。

  5. 单击 Preview Command 链接查看为执行表粘贴操作和添加新列生成的命令。

    图 13. 生成的 DDL
    生成的 DDL

    (单击 这里 查看图 13 的大图像)。

    可选:这时显示一个对话框,询问是否要查看描述更改的格式化报告。根据您的需要单击 YesNo。查看报告不会影响 DDL 的生成。

    在查看 DDL 时,如果注意到在运行脚本之前应该做一些修改(比如应该修改表空间容器路径),那么可以在编辑器中或者通过修改 Data Project Explorer 模型对象执行这些更改。另外,可以使用 Customize 按钮定制如何导出/导入数据(这在处理 XML 数据时特别重要)以及与 DDL 一起生成的额外命令类型(比如 Runstats)。如果出现一个对话框,它指出有数据保留错误,那么选择 Customize 按钮并把导入选项改为 LOAD



    图 14. 更改表空间
    更改表空间

    (单击 这里 查看图 14 的大图像)。

影响分析

如果数据库应用程序是用 Java 技术开发的,而且开发人员使用 Data Studio Developer,那么非常容易检查数据库更改是否会影响某一应用程序。例如,可以使用 SQL outline 轻松地查明哪些查询要使用 CUST 表并查看相关的 Java 源代码,从而了解添加新列是否会影响某些查询(比如 SELECT *)。相关示例请参见文章 “IBM Data Studio Developer 2.1 的新特性”(developerWorks,2008 年 12 月)。

  1. 单击 Run 按钮运行命令。更改现在会应用于 GSDBDEV 数据库。

    可选:要想确认是否成功地执行了生成的命令,可以查看更改管理脚本编辑器的 Messages 部分。

Erik 现在可以测试对测试数据库 GSDBDEV 所做的更改。因为在表中添加了新列,应该仔细地测试可能受此更改影响的所有应用程序。





回页首


把更改从测试数据库 (GSDBDEV) 迁移回生产数据库 (GSDB)

对于本文,我们假设 Erik 已经完成了所需的测试,认为可以把更改合并到生产数据库 GSDB 中了。

为了帮助把更改从 GSDBDEV 数据库迁移回 GSDB 数据库,Erik 创建一个新的更改管理脚本。

按照以下步骤在 GSDB 数据库上创建一个新的更改管理脚本:

  1. 右键单击 Data Project Explorer 中的任何地方,选择 New > Change Management Script

    图 15. 创建新的更改管理脚本
    创建新的更改管理脚本

  2. 把这个脚本命名为 CHANGE TO PRODUCTION,然后单击 Next

    图 16. 指定脚本名称
    指定脚本名称

  3. 选择 GSDB 数据库的连接并单击 Next

    图 17. 选择 GSDB 数据库连接
    选择 GSDB 数据库连接

  4. 选择 GOSALESCT 模式并单击 Finish

    图 18. 为更改管理脚本选择模式
    为更改管理脚本选择模式

    注意:选择原来在 GSDB 数据库中创建对象所用的模式。

显示新的更改管理脚本编辑器,见 图 19。下一节使用这个编辑器。


图 19. GSDB 数据库上的更改管理脚本编辑器
GSDB 数据库上的更改管理脚本编辑器

(单击 这里 查看图 19 的大图像)。





回页首


使用 “Compare and Migrate” 向导把 CUST 更改迁移到生产数据库

为了把更改从测试数据库 GSDBDEV 迁移回生产数据库 GSDB,Erik 使用 Data Studio Administrator 中的比较和迁移功能。Erik 可以通过比较和迁移功能以图形化方式比较测试数据库和生产数据库。他可以选择两个数据库之间的更改/差异并根据需要调整它们。在这个示例中,他找到对 CUST 表所做的更改并把它们合并到生产数据库中。

  1. 从菜单栏中选择 Change Management > Compare and Migrate Objects

    图 20. Compare and Migrate Objects 菜单
    Compare and Migrate Objects 菜单

  2. 选择 GSDBDEV 测试数据库连接(这个数据库包含要迁移的更改),然后单击 Next

    图 21. 选择 GSDBDEV 数据库连接
    选择 GSDBDEV 数据库连接

  3. 添加一个针对 CHANGES 模式的 mask:
    1. Masks 选项卡中,选择 SCHEMA 作为 Database Object,选择 CHANGES 作为 In Mask,选择 GOSALESCT 作为 Out Mask,然后单击 Add Mask


    图 22. 连接 GOSALESCT 和 CHANGES 模式的 mask
    连接 GOSALESCT 和 CHANGES 模式的 mask

  4. Ignores 选项卡中添加对象,从而减少在比较向导中显示的更改数量:
    1. 单击 Ignore Database Objects 下拉菜单打开 Ignores 选项卡。
    2. 选择 BPNAME,然后单击 Add Ignore
    3. 对于 TABLESPACESCONTAINERAUTHORIZATION 重复相同的步骤。
    4. 在选择 BPNAME、TABLESPACES、CONTAINER 和 AUTHORIZATIONS 作为要忽略的数据库对象之后,单击 Next


    图 23. 添加忽略
    添加忽略

  5. 在比较编辑器中,找到 CUST 表下面的 MOBILEPHONE 列,单击 Copy from Left to Right 图标,然后单击 Finish。这会把 MOBILEPHONE 列迁移到生产数据库 (GSDB) 中的 CUST 表。

    图 24. 找到 CUST 表下面的 MOBILEPHONE 列
    找到 CUST 表下面的 MOBILEPHONE 列



    图 25. 迁移到 GSDB 数据库的 MOBILEPHONE 列
    迁移到 GSDB 数据库的 MOBILEPHONE 列

  6. MOBILEPHONE 列现在显示在更改管理脚本编辑器的对象列表视图中。

    图 26. 对象列表视图中显示 MOBILEPHONE 列
    对象列表视图中显示 MOBILEPHONE 列

  7. 单击 Preview Commands 链接在 Commands 部分中检查更改。

    图 27. 为迁移的表和列生成的命令
    为迁移的表和列生成的命令

    (单击 这里 查看图 27 的大图像)。

  8. 单击 Run 把更改部署到 GSDB 生产数据库。

部署更改之后,可以在 Data Project Explorer 中找到 CUST 表,通过 columns 文件夹查看刚部署的更改。


图 28. GSDB 生产数据库中的 MOBILEPHONE 列
GSDB 生产数据库中的 MOBILEPHONE 列




回页首


结束语

Eric 现在完成了公司提出的请求。通过使用 Data Studio Administrator,他很轻松地完成了这个任务,所需的手工工作量非常小。Data Studio Administrator 提供了容易使用的向导,可以带领开发人员处理复杂的任务。






回页首


下载

描述名字大小下载方法
本文的 GSDB 示例数据库GSDB_database.zip33KBHTTP
关于下载方法的信息


参考资料

学习

获得产品和技术

讨论
  • Data Studio 团队博客:了解 Data Studio 专家团队提供的建议、提示和经验教训,分享他们与世界各地的客户合作的经历。

  • Data Studio 社区空间:在这里了解关于 Data Studio 及相关产品和技术的信息,参与讨论,分享自己的经验。

  • 参与 developerWorks blogs 并加入 developerWorks 社区。



作者简介

Arlan Finestead

Arlan 是 IBM 的软件工程师,从事 Data Studio Administrator 产品。在 IBM 工作的 8 年中,他参与了用于数据库管理的工具和语言开发。


Sangeetha Srinivasan

Sangeetha Srinivasan 是 IBM 硅谷实验室的开发人员。她从 2006 年开始从事 Data Studio Administrator 产品。在此之前,她从事 DB2 for Z/OS 本地压力测试方面的工作。她拥有计算机工程硕士学位。




对本文的评价










回页首


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