shell中执行db2数据库命令_利用 Shell 脚本实现 DB2 数据库的敏捷开发

利用 Shell 脚本实现 DB2 数据库的敏捷开发

常伟

2010 年 3 月 01 日发布

本文是“使用脚本加速 DB2 存储过程的开发”的升级篇。

在前一篇文章中我们通过使用 Windows 下的 bat 批处理 (.bat) 脚本来帮助我们进行数据库开发。

本文中介绍的 mydbtool 脚本是对它们的重写。mydbtool 是用 shell 脚本来编写的。之所以使用 shell 而不是 bat,

是因为 shell 提供了更多的功能,而且它可以在 Windows(Cygwin) 和 Linux/Unix 等系统下使用。所以 mydbtool 是一个功能更强大,

而且跨平台的工具。本文不会重复介绍前一篇已经介绍过的命令,它们在 mydbtool 脚本中仍然适用。

下面我们将主要讨论 mydbtool 脚本提供的一些高级功能。

本文主要讨论使用 Shell 脚本与 DB2 交互的一些技巧和方法。介绍了利用 Shell 脚本帮助我们进行存储过程调优和部署。

同时通过一个演示项目的开发过程的介绍来展示如何使用文中的脚本进行开发。

背景

我们遇到的问题

在项目中我们大量使用了存储过程,并且每三个月发布一个新版本。在开发每个版本中,

我们要经过:Unit Test,Function Verification Test (FVT) 和 User Acceptance Test (UAT) 阶段,

然后我们才会把代码发布到 Production 环境。每个阶段对应一个数据库(fvtdb,uatdb 和 proddb 等 )。

大家知道,存储过程的部署不像 J2EE 应用程序的部署。J2EE 应用程序只需要把所有的 Java class, XML,JSP 等文件打成 ear 包,

部署到 J2EE 服务器上就可以了。

但是存储过程的部署需要我们只更新修改过的存储过程。因此,如何正确快速的把存储过程部署到为数众多的数据库中,就是一个很大的问题。

我们的解决方案

敏捷开发要求我们能够迅速应对变化,快速应对变化就要求我们尽量把一些耗时的工作自动化。

出于这个目的,我们开发了 mydbtool 脚本来解决我们遇到的问题。它提供很多数据库开发和部署的工具,可以大大提高开发工作的效率和准确性。

其部署工具可以比较数据库 (fvtdb, uatdb 和 proddb 等 ) 之间的不同,生成一个报告。通过该报告,我们可以很容易的把更新的存储过程部署到正确的数据库环境中。

在介绍 mydbtool 之前,让我们先了解一下 Cygwin 和 Shell。

Cygwin 简介

Cygwin 是一个用于在 Windows 上模拟 Linux/Unix 操作系统环境的软件。运行 Cygwin 后,你会得到一个类似 Linux/Unix 的 Shell 环境,

在其中你可以使用绝大部分 Linux/Unix 软件和功能。如 sed, awk, 运行 Shell 脚本等等,总之如果你想使用某个 Linux/Unix 下 的功能,

而 Windows 上又找不到好的软件的话,你就可以采用 Cygwin。这样就解决了我们的问题,我们开发好一套 Shell 脚本后,

如果你用的工作站是 Linux/Unix,那么可以直接运行脚本;如果你用的是 Windows 操作系统,那么可以把脚本放到 Cygwin 环境下运行,效果是一样的。

Cygwin 的下载及安装:请参见 参考资料 中的 "Cygwin 中国镜像"。你只需要安装默认的软件包就可以开始使用 mydbtool 脚本了。

Shell 编程简介

Shell 也叫做命令行界面,它为我们和 Linux/Unix 系统之间提供了一个交互的接口。用户既可以输入命令来执行各种各样的任务,

也可以通过编写 Shell 脚本完成更加自动化和复杂的操作。它的作用就是按照一定的语法规范将用户指令加以转化并传给系统进行处理。

Linux/Unix 操作系统提供了几种不同的 Shell, 如 Bourne Shell(/bin/sh)、Korn Shell(/bin/ksh)、Bourne Again Shell(/bin/bash)、

Tenex C Shell(tcsh)、C Shell(/bin/csh) 等,其中 Bourne Again Shell( 即 bash) 是自由软件基金会 (GNU) 支持开发的一个 Shell 版本,

它是很多 Linux 系统中一个默认的 Shell。Cygwin 中默认的 Shell 也是 Bash。

本文的 mydbtool 脚本就是采用 Bash 来编写的,它充分利用了 DB2 的常用命令和 sed, awk 等 Linux/Cygwin 下的文本处理工具。

mydbtool 用法简介

要使用 mydbtool 脚本,你需要把本文中的附件 mydbtool.zip 解压到某个目录,然后把该目录放到 PATH 里面。

清单 1. 使用 export 设置 PATH 变量export PATH=mydbtool_dir;$PATH

mydbtool 有两种使用模式,一种是交互式,一种是命令式。交互式方式方便用户执行 DB2 命令。命令式则可以在其他脚本中调用


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部