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

developerWorks 中国  >  Information Management  >

DB2 Express-C 9 DBA 和开发人员实验教程,快速实验 7

提取 EXPRESS 数据库的 DDL

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


编辑, developerWorks 编辑团队, IBM

2008 年 5 月 15 日

在部署数据库时,目标应该是使数据库的重建尽可能简单且可重复。这常常使用 SQL 脚本来完成,可以在安装 DB2 之后立即执行这些脚本。在本次实验中,将使用 Control Center (控制中心) 从 EXPRESS 数据库中提取出对象定义。

目标

在部署数据库时,目标应该是使数据库的重建尽可能简单且可重复。这常常使用 SQL 脚本来完成,可以在安装 DB2 之后立即执行这些脚本。在本次实验中,将使用 Control Center (控制中心) 从 EXPRESS 数据库中提取出对象定义。





回页首


前提条件





回页首


步骤

IBM 为社区提供了 DB2 免费版本 DB2 Express-C,它提供了与 DB2 Express Edition 相同的核心数据特性,为构建和部署应用程序奠定了坚实的基础。

DB2 Express-C

1.打开 Control Center (控制中心)。

2.在对象树中右击 EXPRESS 数据库并选择 “生成 DDL ” 菜单项。这会启动 “生成 DDL ”对话框。


图 1。启动“生成 DDL ”对话框
启动“生成 DDL ”对话框

3.在 Generate DDL 对话框中,按照下图为生成的 DDL 指定选项。如果您在环境中创建了其他对象,比如表空间、缓冲池等等,那么应该在这里将它们选中。因为还没有创建这些类型的对象,所以不选择这个选项。也不包含数据库统计数据,因为生产环境和开发环境包含的统计数据很可能不一样。同样,配置参数也可能不一样。在您的环境中,如果将要部署的方式与配置方式完全相同,那么可以选择这些选项。


图 2。设置“语句”选项卡
设置“语句”选项卡

注:由于我们没有进行授权和创建表空间、缓冲池和数据库分区,所以我们不生成对应的语句。

4.移动到“对象”选项卡。在这里,可以选择希望为其生成 DDL 的对象。在本例中,选择您用来创建所有对象的用户和模式,并为这个模式中的所有对象生成 DDL。单击“生成”按钮开始生成 DDL。


图 3。设置“对象”选项卡
设置“对象”选项卡

选择“调度”选项卡,保留默认值。


图 4。设置“调度”选项卡
设置“调度”选项卡

点击“显示命令”按钮,可以查看对应的命令。如图 5 所示。

图 5。显示对应的命令


图 5。显示对应的命令
显示对应的命令

 

关于 db2look 的具体命令语法,您可以在命令行直接执行。


清单 1。 db2look 命令语法
                
语法: db2look -d DBname [-e] [-xs] [-xdir Path] [-u Creator] [-z Schema] 
[-t Tname1 Tname2...TnameN] [-tw Tname] [-h] [-o Fname] [-a] [-m] [-c] 
[-r] [-l] [-x] [-xd] [-f] [-fd] [-td x] [-noview] [-i userID] [-w password]  
[-v Vname1 Vname2 ... VnameN] [-dp] [-ct] [-wrapper WrapperName] 
[-server ServerName] [-nofed] [-wlm] [-ap] [-wrapper WrapperName] 
[-server ServerName][-fedonly][-nofed]
        db2look [-h]

        -d: 数据库名称:这必须指定

        -e: 抽取复制数据库所需的 DDL 文件
       -xs: 导出 XSR 对象并生成包含 DDL 语句的脚本
     -xdir: 路径名:将用来放置 XSR 对象的目录
        -u: 创建程序标识:如果 -u 和 -a 都未指定,那么将使用 $USER
        -z: 模式名:如果同时指定了 -z 和 -a,那么将忽略 -z
        -t: 生成指定表的统计信息
       -tw: 为名称与表名的模式条件(通配符)相匹配的表生成 DDL
       -ap: 生成 AUDIT USING 语句
      -wlm: 生成特定于 WLM 的 DDL 语句
        -h: 更详细的帮助消息
        -o: 将输出重定向到给定的文件名
        -a: 为所有创建程序生成统计信息
        -m: 在模拟方式下运行 db2look 实用程序
            -c: 不要生成模拟的 COMMIT 语句
            -r: 不要生成模拟的 RUNSTATS 语句
        -l: 生成数据库布局:数据库分区组、缓冲池和表空间。
        -x: 生成排除对象的原始定义程序的“授权”语句 DDL
       -xd: 生成包括对象的原始定义程序的“授权”语句 DDL
        -f: 抽取配置参数和环境变量
       -td: 将 x 指定为语句定界符(缺省定界符为分号(;))
        -i: 登录到数据库驻留的服务器时所使用的用户标识
        -w: 登录到数据库驻留的服务器时所使用的密码
   -noview: 不要生成 CREATE VIEW ddl 语句
  -wrapper: 为适用于此包装器的联合对象生成 DDL
   -server: 为适用于此服务器的联合对象生成 DDL
    -FEDONLY: Only created Federated DDL Statements
    -nofed: 不要生成 Federated DDL
       -fd: 为 opt_buffpage 和 opt_sortheap 以及其他配置和环境参数生成 db2fopt 语句。
        -v: 只为视图生成 DDL,当指定了 -t 时将忽略此选项
       -dp: 在 CREATE 语句之前生成 DROP 语句
       -ct: 按对象创建时间生成 DDL 语句

5.检查生成的 DDL。前一个步骤的结果是一个脚本,其中包含所选对象的所有 SQL 语句。现在要将这个脚本组织到逻辑分组中。


图 6。生成 DDL
生成 DDL

6.在文件系统中创建一个称为 C:\express 的目录,将生成的 DDL 文件保存在这个新目录中并命名为 schema.ddl。(单击“保存”按钮。)


图 7。保存 DDL 脚本
保存 DDL 脚本

7.在“命令编辑器”中打开刚才保存的文件。(提示:在“命令编辑器”中,选择 文件 > 打开。参见“快速实验 2 ”)

8.尽管我们实际上只需要表的 DDL,但是将来这个文件也可能包含其他数据库对象的 DDL,但是按照对象的类型把 DDL 放在不同的文件中是一种很好的做法。

9.目前,还建议删除所有:

  • CONNECT TO 数据库语句
  • DISCONNECT 语句
  • CREATE FUNCTION 和 CREATE PROCEDURE 语句
  • 不必要的注释

现在或许有多个脚本:

C:\express\schema.ddl               表、视图、索引和约束的 DDL

C:\express\others.ddl                 其他对象的 DDL

10.为了便于部署,对脚本进行清理:

  • 删除不必要的注释(比如 -- CONNECT TO…)
  • 将函数和过程放到单独的文件中(在有大量函数和过程的情况下,这会很有帮助)。还可以按照功能或应用程序进行分组(比如 billing.ddl、math.ddl、stringfunc.ddl 等等)。

11.您可能会注意到,脚本中使用一个特殊字符(@)表示触发器、函数和过程的结尾。这是为了区分 CREATE <object> 语句的结尾和对象中过程式语句的结尾。





回页首


参考资源



关于作者

此内容是由 developerWorks 编辑团队为您提供。如有建议或问题,请通过以下邮件地址与编辑团队联系:dwinfo@us.ibm.com




对本文的评价










回页首


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