DB2 最佳实践: 部署 IBM DB2 产品,第 2 部分

来源:百度文库 编辑:神马文学网 时间:2024/05/01 00:57:27

 

简介: 这篇文章分上下两部分描述了在 Linux、UNIX 和 Windows 平台上,跨多台机器快速、简单、持续地部署 DB2 9.5 产品家族的最佳实践。第 2 部分我们将介绍如何创建一个部署包或部署脚本以及如何在所有机器上运行部署脚本。

查看本系列更多内容

标记本文!

发布日期: 2009 年 3 月 18 日
级别: 中级
访问情况 165 次浏览
建议: 0 (添加评论)

平均分 (共 0 个评分 )

 

创建一个部署包或脚本

为了部署 DB2 产品到其他机器上,你必须用一个软件部署工具创建一个包或创建一个你能在那些机器上运行的脚本。这章描述了如何使用 SMS 创建一个包和怎么创建一个 Linux 和 UNIX 平台上的部署脚本。

使用 SMS2003 来打包 IBM 服务器产品

先决条件:

你必须已经安装了 SMS 2003 并且在你网络上配置了 SMS 2003 服务器和 SMS 2003 客户机工作站。更多细节参见系统管理服务器概念、计划和部署指南以及系统管理服务区操作指南http://www.microsoft.com/technet/downloads/sms.mspx

  • SMS 2003 平台和先决条件
  • SMS 2003 设置(包括设置主站点和次站点)
  • 增加客户机到 SMS 2003 系统

过程:

使用 SMS 打包一个 DB2 产品:

  1. 复制产品安装镜像到一个你能编辑它内容的位置
  2. 创建一个 DB2 响应文件。更多信息参见“创建一个响应文件”章节
  3. 在一个 SMS 2003 分发服务器,从开始菜单选择 Programs>Systems Management Server>SMS Administrator Console.
  4. 在 SMS 管理控制台,打开站点的数据库对象树,并右键点 Packages 。选择 New>Package From Definition.

    图 1. 新建包


  5. 在 Welcome to the Create Package from Definition 向导中,点击 Next.

    图 2. 欢迎使用向导


  6. 在 Package Definition 页面,点击 Browse 来搜索 DB2 包定义文件。

    图 3. 搜索 DB2 包定义文件


  7. 从浏览窗口显示的列表中,选 db2*.pdf 文件。这个文件的默认位置在安装介质的 db2\Windows\samples\ 目录。选择 打开

    图 4. 选 db2*.pdf 文件


  8. 在 Package Definition 页面,选择 Next

    图 5. 下一步


  9. 在资源文件页面,选中 Create a compressed version of the source 并点击 Next

    图 6. 选中 Create a compressed version of the source


  10. 在资源目录页面,点击 Network path (UNC name) 以从远程网络驱动访问资源文件,或者点击 Local drive on the site server以从本地驱动访问资源文件。在 Source directory 域输入存放 DB2 产品安装介质的目录名。这个目录包含 setup.exe 文件,选择 Next

    图 7. 输入路径


  11. 在 Completing the Create Package from Definition Wizard 页面,点击 Finish

    图 8. 完成页面


创建一个部署脚本

一个部署脚本通常是作为一个 shell 脚本来提供,不过你可以使用任何语言包括 Perl、Java、C 或者你能使用批处理文件。你可以考虑把这个脚本作为一个包装器来处理 DB2 安装程序,而不管安装和配置方面的问题。你在目标计算机上运行这个脚本作为部署程序的一部分。

如果你创建了一个完整的响应文件创建一个部署脚本可能很简单,也可能稍微复杂一点,尤其在你不使用一个响应文件来执行安装的情况下。

当读这些例子时、假设 /share 是远程文件系统,所有挂载了 /share 的计算机都需要部署。如果有共享文件系统就可以从远程挂载一个文件系统或者写一个脚本来自动挂载和卸下文件系统。如何挂载一个文件系统不在本文讨论范围。

在 Linux 和 UNIX 平台,文件系统可以是 NFS、AFS、DFS 或者任何数目的非本地文件系统。然而,由于“安装镜像创建一个存放位置”章节中提到的原因,不使用 Samba 文件系统。在 Windows 平台,一个 Samba 文件系统或者任何可网络访问的驱动都支持。

IBM 数据服务器客户机被用来作为例子,不过安装其他产品介质也是同样的步骤。

部署一个响应文件的安装

部署一个响应文件的安装是最简单的情况。因为产品定义、选择的组件和设置实例几乎完全压缩进一个响应文件了,你的大多数工作在运行响应文件时已经执行了。

Unix 和 Linux 平台

/share/client/db2setup -u /share/client/v95GA/db2client.rsp

Windows 平台

\\server\share\setup -u \\server\share\client\db2client.rsp

在这些例子中的用户定制的响应文件在产品的 /share/client 或 \share\client 目录

安装后任务

要使用 DB2 数据服务器客户机,你通常必须编目远程服务器和数据库。然而,你也可以使用 db2cfimp 自动的编目这些连接,并用 db2cfexp 导出这些连接,或者你可以手动编目这些连接。

例如,在 Linux 和 UNIX 平台,你可能已经有生成好的一个实例的配置文件 ,db2inst1 使用 db2cfexp 实用程序。你能使用 db2cfimp 实用程序来像下面这样复制配置:

su – db2inst1 -c ". sqllib/db2profile;            db2cfimp /share/rtcl/v9GA/db2inst.exp"

手动编目等同于创建实验

su – db2inst1 -c ". sqllib/db2profile;            db2 catalog tcpip node ..."

在后面的情况,最好把编目放到另外一个文件然后允许 CLP 读取那个文件:

su – db2inst1 -c ". sqllib/db2profile;            db2 -tvf /share/rtcl/v9GA/catalog.db2"

你可以使用这些其他文件来执行其他 DB2 设置任务,就像下面例子显示的:

catalog tcpip node server remote serverhostname;            catalog database sample at node server;

在 Windows 平台上命令也是一样的。不过,为了设置你想使用的 DB2 实例,使用 DB2INSTANCE 环境变量并用 db2cmd /C 来运行 DB2 命令:

set DB2INSTANCE=DB2            “ C:\Program Files\IBM\SQLLIB\BIN\DB2CMD.EXE “ /C            “ DB2 CATALOG DATABASEsampleAT NODEserver

服务器考虑:

在部署一个服务器时,你通常需要额外的命令来创建和设置数据库、表空间、表。例如,在客户端创建一个脚本并使用 db2 – tvf来运行这个脚本,这能让你简化你的部署。

在一个 UNIX 上的并行环境,部署脚本必须能更新 .rhosts 和 db2nodes.cfg 文件。

使用 db2_install(Linux 和 UNIX)配置一个安装

你能使用 db2_install 命令来配置一个安装。这个方法绕过了创建响应文件步骤以及响应文件带来的所有好处。

安装阶段仍然相对简单:

/share/client/v95GA/db2_install -p CLIENT -n -b /install/path

一个产品的产品标识是唯一的。为了查看一个可用产品列表,不加任何参数运行 db2_install,参见信息中心。

你可以使用部署脚本来创建用户、实例和 DAS 。创建用户是操作系统特定的功能,因此更多信息请参考操作系统手册。关于创建实例和 DAS,在 DB2 信息中心中有所讨论。

更多安装后的任务,参见“配置一个响应文件安装”章节

配置一个补丁

比起执行初始安装,升级现有 DB2 产品安装即使不是更重要,也算同样重要。幸运的是,升级通常非常容易。

你可以从http://www.ibm.com/software/data/db2/udb/support.html下载补丁。

一定要阅读补丁 readme 文件以及 APARs 的列表。你能在与补丁相同的 FTP 目录中,或者从下载网站页的一个连接找到这个文档。 Readme 提供了如何安装补丁包以及已知问题或 workaroud 的信息。任何可能在已发布的最新补丁中更改或添加请参考 readme 。

Linux 和 UNIX 平台

对你的客户进行一次升级可能就这么简单:

  1. 下载新的客户机。
  1. 把客户机镜像放到 /share,例如,在 /share/rtcl/v9FP5 。
  1. 添加补丁的动作到你的部署脚本,如下面例子显示的:
# code to ensure your applications are stopped            /share/rtcl/v9FP5/installFixPack -b /install/path            /install/path/instance/db2iupdt -e            # any post-fixpack steps you might require

从 DB2 9.5 开始,db2iupdt 步骤由 installFixPack自动完成。如果你正在对一个服务器应用补丁包,你可能需要首先停止所有实例,并在完成后重启它们。在一个并行环境,你必须在实例节点这么做。

如果你安装了很多产品,例如在 DB2 企业服务器版本安装 WebSphere Information integrator Relational Wrappers,使用通用补丁包代替单个产品的补丁包。

新的安装方法包括装到一个新的路径,测试并把实例更新到新的副本。如果有需要这可以阶段性的推出。这对于那些宕机和不响应时间需要保持在最小范围的服务器尤为重要。

在这个情况下,你需要从初始化安装保留你原来的响应文件,以作为新安装的基础。删除所有关于实例或者 DAS 的部分,并通过 FILE 关键字使用一个新的安装路径。像上面那样部署安装,并使用 db2iupdt 工具以移动实例到新的副本。

这让你在不需要停止生产应用的情况下部署代码,而且在运行 db2iupdt 的那段时间,你只需要停下 DB2 服务器的应用程序。

Windows 平台

第一步是获得你需要的补丁包。你需要为你需要在计算机上部署的所有产品获得一个补丁包。如果你有不止一个 DB2 产品安装在一个特定的计算机上,这很重要也是必须的。

所有在你计算机上已经安装了的补丁包必须在安装时已解压并可用,因为在这个副本中的所有 DB2 产品必须保持在同一个版本。如果 DB2 设置向导不能访问镜像中的所有部分,安装将不能继续。

把所有补丁包存储在相同位置,使安装程序能在它安装过程中查找补丁包。所有介质必须解压到同一个主路径的子路径中。

补丁包是自解压 zip 文件。把它们解压到相同目录。产生的目录结构看起来像这个例子:

           \\SERVER\FIXPAK             ├─── CLIENT            ├─── SERVER            ├─── IIRW            ├─── QP            ├─── WM            └─── WSE

在你把补丁包释放到相同路径后,你可以在与一个使用响应文件安装初始产品相类似的方式来配置它们。

如果你不需要对初始安装做任何更改,就可以使用与你在初始安装中相同的文件。否则,要从响应文件样例开始构建一个响应文件。你可以在 \db2\windows\samples 目录中找到响应文件。

在多数情况下在你需要在响应文件中做的唯一改变就是同意许可证条款,并以指定LIC_AGREEMENT=ACCEPT 来表达。如果你想在安装中设置另外的数据库管理配置参数或者配置注册变量,你可以在响应文件中指定。

除非你非常肯定没有 DB2 库在使用,设置 KILL_PROCESSES 为 YES 。 KILL_PROCESSES 关键字将停止所有 DB2 实例,并将立即停止所有可能访问 DB2 库文件的应用程序。如果你不想终止某些应用程序,就确保它们在安装时不要运行。

另外,你也可以为 setup.exe 指定 -f 参数。不过,你要确保在响应参数中能保留尽可能多的选项,那么安装能尽可能的持续的重现。


回页首

在所有机器上运行部署脚本或定义

之前的章节给你提供了关于准备部署的信息。你可以执行一次这些动作,产生一些前期成本,然后可以再配置成百上千的计算机。你可以几乎毫无成本地增加计算机。

这里有两种基本部署形式:推送和拖入

在一个推送部署中,一个集中的位置发起与每个计算机的联系。这通常适合 IT 集中的部门想要在没有用户操作的情况下设置许多计算机。不过,为了做到这样一个自动化服务,像 rshd、sshd、SMS 或其他部署软件必须已经安装并运行在每一台被“推送”的计算机中,并能被 IT 部门访问到。

在一个拖入部署中,每个安装了 DB2 产品的位置自己联系服务器以启动安装。常常,这个操作使用一个网页或者邮件中的链接实现。这种形式适合很少的计算机需要安装 DB2 产品,或者没有自动化的服务来发起一个推送安装。

使用 SMS 分发 IBM 数据服务器产品

使用 SMS 你可以从一个中心位置来设置 DB2 或 IBM 数据服务器产品的安装,并能多台计算机跨网络稳定有效的安装。 SMS 提供了能自动部署任务的工具,因此减少了用户必须执行工作的总量。这个安装方法适用于 DB2 或 IBM 数据服务器产品在相当数量基于相同安装的客户机上的大型部署。

先决条件:

你必须安装了 SMS 2003 并在你的网络上配置了 SMS 2003 服务器和你的 SMS 2003 客户机工作环境。

更多细节参见微软操作系统管理服务器概念、计划和部署指南以及微软系统管理服务器操作指南http://www.microsoft.com/technet/downloads/sms.mspx

  • SMS 2003 平台和先决条件信息
  • 设置 SMS(包括设置主次站点)
  • 添加客户机到 SMS 2003 系统

过程:

使用 SMS 来分发 DB2 或者 IBM 数据服务器产品:

  1. 在 SMS 管理控制台中创建了一个包后,打开 Site Database 对象数并右键单击 Packages 。选择 All Tasks>Distribute Software

    图 9. SMS 管理控制台


  2. 在 Welcome to the Distribute Software Wizard 页面点击 Next

    图 10. Welcome 页面


  3. 在 Package 页面,点击 Select an existing package 并选择你想分发的包,选择 Next

    图 11. 选择你想分发的包


  4. 在 Distribution Points 页面选择包分发点并点击 Next


    图 12. 选择包分发点


  5. 在 Advertise a Program 页面,点击 Yes。点击 Next

    图 13. Advertise a Program 页面


  6. 在选择一个 Program to Advertise 页面,选择程序以为你分发集合做广告并点击 Next

    图 14. 选择程序


  7. 在 Advertisement Target 页面,选择 Advertise this program to an existing collection ginger 指定一个选择名字 Create a new collection and advertise this program to it,选择 Next

    图 15. 指定一个选择名字


  8. 在 Advertisement Name 页面上,在 Name 域输入一个名字来确定广告,并且可选添加注释,点击 Next


    图 16. 输入一个名字


  9. 在 Advertise to Subcollections 页面,选择 Advertise the program only to members of the specified collection 或者 Advertise the program to members of the subcollection as well,点击 Next

    图 17. Advertise to Subcollections 页面


  10. 在 Advertisement Schedule 页面,指定你希望程序广告给你的 SMS 客户机的时间。

    图 18. Advertisement Schedule


  11. 在 Assign Program 页面,指定你是否希望分配这个程序,这对你的客户机是强制的。点击 Next

    图 19. Assign Program


  12. 在 Completing the Distribute Package Wizard 页面,点击 Finish 以广播这个程序到你的 SMS 客户机。在你已经使用分发了 DB2 或者 IBM 数据服务器产品后,它将自动的通过计算机网络在你的客户机上安装

    图 20. Completing the Distribute Package Wizard


一个推送安装的例子(UNIX)

下面的例子显示了可能在用于推送 DB2 安装的 shell 脚本中使用的代码,例如 db2deployment.sh,

#! /bin/sh            dst_computers="wrkstn1 wrkstn2 wrkstn3"            for comp in $dst_computers; do            ssh -l root $comp "mkdir /share;            mount -t nfs -o ro fileserver:/bigshareddisk /share;            /share/rtcl/deployment.sh;            umount /share; rmdir /share" >> /var/log/deploy.$comp &            done

方法就是把上面的代码或类似代码放入一个你能用来推送 DB2 安装的 shell 脚本,像 db2deployment.sh,

因为部署脚本完成了大多数的工作,只剩下很少的工作需要推送安装脚本完成。

这个例子假设 ssh 在所有工作站都已经设置好了并且 root 用户在所有工作站被授权无需密码地运行它。

一个使用脚本进行 pull 安装的例子(UNIX)

下面脚本几乎和推送安装的例子差不多。此外,部署脚本完成了大多数工作并且你必须设置你的环境使得用户可以以 root 身份运行脚本。

#! /bin/sh            (mkdir /share            mount -t nfs -o ro fileserver:/bigshareddisk /share            /share/rtcl/deployment.sh >> /share/logs/`hostname`.out            umount /share; rmdir /share) >> /var/log/deploy.$$


回页首

使用 db2iprune 来减少一个 DB2 产品安装文件的大小

DB2 数据服务器产品在它的安装介质中通过包含大量可安装功能提供了扩展性。但是镜像占用空间大小可能会带来麻烦。你可以在 windows 平台上使用 db2iprune 命令行实用工具来避免这些麻烦。db2iprune 实用工具可以减少安装镜像的大小。

db2iprune 实用工具位于 \db2\windows\utilities\db2iprune 目录,并且由输入文件和 db2iprune 可执行文件以及一个基本使用方法的文本文件组成。

使用输入文件(.prn 文件)来制定哪些功能以及组件你想从安装介质中删除。db2iprune 可执行文件(db2iprune.exe)删除和这些功能和语言相关的 cabinet(.cab)文件(cabinet 文件是一系列处于部署的目的打包在一起的相关文件),而且如果镜像中的一个不同功能组件显示这个镜像中的不同功能,它可以从安装镜像删除一个组件。

只有未指定功能,以及所有未指定功能的组件都包括在裁剪的安装镜像中。等裁剪的镜像被安装时,那些删除的功能就不会出现在图形化界面上。 在一个裁剪过的介质被安装后,结果和在完整镜像安装时用户只选择这些功能子集是一样的。

使用 db2iprune 实用工具的结果是一个使用普通产品安装方法可以被装的新的、更小的安装镜像。

使用 db2prune 实用工具来裁剪一个 DB2 产品安装介质

使用输入文件(.prn 文件),存放在\db2\windows\utilities\db2iprune目录。来取消你想从产品安装镜像中删除的功能和语言的注释。

注释是由星号(*)表示。db2iprune 输入文件包含 3 个关键字:

  • PROD 关键字确定被裁减的 DB2 产品安装介质。这个关键字是必须的而且你不应该改动它。
  • LANG 关键字指定从这个产品安装镜像中删除什么语言。要删除语言的 .cab 文件和这个语言在安装介质中的 doc 文件。对相应的 LANG 关键字取消注释。
  • COMP 关键字指定从 DB2 产品安装介质中删除什么组件。要删除一个功能的 .cab,只需取消相应 COMP 关键字的注释。

在同一个输入文件中你可以取消多个 COMP 和 LANG 关键字的注释,以删除几个功能或语言。db2iprune 输入文件与产品响应文件(用于自动安装)有所不同。产品响应文件是用来指定你想安装的组件,而 db2iprune 输入文件却是用来指定你想从镜像中删除不被安装的组件的。

使用下面的语法从命令行运行 db2iprune.exe

db2iprune.exe -rinput_file_path-proot_directory-odestination_directory            

这里:

    • 输入文件路径表示 db2iprune 输入文件的完整路径
    • root_directory表示安装源镜像的根目录的完整路径。这个目录包括 setup.exe 文件和产品安装 DVD 的根目录
    • destination_directory表示裁剪后的新镜像将被复制到的目标位置的完整路径。请确保你对这个目录有写权限


下面,取消以下 db2client.prn 文件中这些行的注释:

*PROD                     = CLIENT            *COMP                     = CONFIGURATION_ASSISTANT            *COMP                     = CONTROL_CENTER            *LANG                     = BR            *LANG                     = CN            *LANG                     = CZ            *LANG                     = DE            *LANG                     = DK            *LANG                     = ES            *LANG                     = FI            *LANG                     = FR            *LANG                     = IT            *LANG                     = JP            *LANG                     = KR            *LANG                     = NO            *LANG                     = PL            *LANG                     = SE            *LANG                     = TW

取消这些行的注释将从安装镜像中删除配置助手和控制中心的功能。它们将在选择组件时不可使用 , 并且所有和这些功能相关的的文件也会被删除。

要基于这些 db2client.prn 输入文件中的更改来裁剪镜像的话,在命令提示符输入下面命令。

c:\db2iprune.exe -r c:\db2client.prn -p d:\CLIENT\image -o d:\SMALL_CLIENT\image

在命令窗口会显示以下输出:

Please wait...  The product image is being copied to the destination specified:            d:\SMALL_CLIENT\image.            Deleting .cab files for the feature whose token is CONFIGURATION_ASSISTANT...            Deleting .cab files for the feature whose token is CONTROL_CENTER...            Deleting .cab files for all features of language: BR...            Deleting .cab files for all features of language: CN...            Deleting .cab files for all features of language: CZ...            Deleting .cab files for all features of language: DE...            Deleting .cab files for all features of language: DK...            Deleting .cab files for all features of language: ES...            Deleting .cab files for all features of language: FI...            Deleting .cab files for all features of language: FR...            Deleting .cab files for all features of language: IT...            Deleting .cab files for all features of language: JP...            Deleting .cab files for all features of language: KR...            Deleting .cab files for all features of language: NO..            Deleting .cab files for all features of language: PL...            Deleting .cab files for all features of language: SE...            Deleting .cab files for all features of language: TW...

使用任何一种普通安装方法来安装并维护裁剪后的 DB2 产品安装镜像。如果你选择典型安装,安装步骤会安装除了已经从镜像中裁剪掉的组件之外典型的组件集。

db2iprune 实用工具删除了的组件将不会作为选项,在安装过程中被显示出来。然而,被删除了的语言仍然会显示在语言选项面板中。因此要确保你不要选择你已经用 db2iprune 实用工具从镜像中删除的组件。如果你选择了一个你已经删除了的组件,你将收到一个错误信息。

如果你使用一个补丁包中的 db2iprune 实用工具,要确保这个补丁包括所有初始安装的功能和组件。如果补丁包镜像不包含所有已经安装的功能或组件,当你尝试这个补丁请求的时候,你将收到一个缺失 .cab 文件的错误信息。


回页首

总结

在 Windows、Linux、或者 UNIX 上配置成百甚至上千个 DB2 客户端或服务器并不比配置一个客户机或服务器更困难。如果进行一些规划和测试,DB2 产品的大规模部署可以成为一个普通的管理任务。

使用这篇文章中的最佳实践要点,可以明显的提高在你的计算机间的大规模部署的容易度。本文描述的自动化安装方法是最简单和最灵活的方法,能够为你的重要客户节约安装和配置时间。


关于作者

developerWorks 中国网站编辑团队。