在UNIX上安装DB2 UDB修订包的实用技巧
本文将帮助您下载和安装 DB2® UDB 修订包,并理解该过程中涉及的步骤。每个 DB2 修订包都有一个 Readme.txt 文件,当我们阅读本文时,将经常参考它。
与其它软件产品相似,也要以修订包形式对 DB2 进行频繁的修订。一个给定的 DB2 版本最终可能会有多达 15 个或更多的修订包,每个包都包含对所发现的问题的许多补丁。APARLIST.TXT 文件包含了其中各个补丁的简短描述。有时候,修订包包含新特性,为 DB2 产品提供更强大的功能。这些都在 ReleaseNotes.txt 文件中有描述。修订包带有 APARLIST.TXT 和 ReleaseNotes.txt 文件。
首先,请检查一下必要的要求:
1.当前系统上安装了 DB2 UDB 版本 6.1 或版本 7.2。
2.操作系统是 UNIX。
3.DB2 版本是个人版、工作组版或企业版(EE)。
4.在对下载的修订包进行解压缩及解包之后,有足够的文件系统空间来保存这些文件(取决于要下载的修订包,文件系统需要 140 到 900 兆字节的空间)。
5.您能够在系统上获得 root 和实例所有者权限。
从DB2 ftp 站点下载修订包
在下载特定的 DB2 修订包之前,可以通过在 DB2 命令窗口上输入 db2level 来确定当前的修订包设置。结果类似如下:
DB21085I Instance ' db2v71' uses DB2 code release 'SQL07020' with level identifier '3010105' and informational tokens 'DB2 v7.1.0.41','s010426' and ' U475377'.
在粗体字中,“b2v71”表示 DB2 版本,而“U475377”则表示修订包级别。后者是加密代码,可以通过转至 IBM 的 DB2 UDB 下载修订包和客户机 Web 页面来对它进行译码。
单击与您的 DB2 版本(即版本 6 或版本 7)相关的链接,它位于该 Web 页面的左上方。这将把您带到另一个 Web 页面,您将在(它的顶部中央)选择操作系统。单击适用于操作系统的链接并将代码与其修订包发行号进行比较。当执行 db2level 命令时,如果输出显示为 '' 而不是 'U475377',那么它意味着您没有安装任何修订包。
注:DB2 修订包不要求您依次安装每个修订包。例如,即使您目前使用的是修订包 1,也可以为版本 6.1 安装修订包 8。
要下载修订包,可以转至上面提到的修订包站点,或选择下面的选项之一:
FTP 到匿名服务器 ftp.software.ibm.com。转至 ps/products/db2/fixes/%L/%P/,其中,%L 是适当的语言环境(如美国英语、西班牙语和德语等),%P 是产品名/版本(例如,db2ntv71 等)。
使用 Web 浏览器来连接到 DB2 UDB 和 DB2 Connect 在线支持 Web 页面。
在 CompuServe 上,执行 GO IBMDB2。然后,转至适当的库以查找修订包。
在 IBM PCC BBS(在美国)上,拨打 919-517-0001(在北卡罗来纳州罗利),然后在主菜单上输入“db2”以查找修订包。
如果您将通过 UNIX 命令行 ftp 来下载修订包,请确保在连接到 ftp 站点之后输入‘bin’以进入二进制方式。这是正确传输修订包 tar.Z 文件所必需的。如果下载到一台 Windows NT 机器,然后 ftp 到一台 UNIX 机器,您也需要输入‘bin’来正确传输该文件。复制该文件之后,请检查一下,确保无论是在 Windows NT 机器上还是在 UNIX 机器上,原始文件和被 ftp 的文件的文件大小都相同(以字节为单位)。在传输完成之前,ftp 会话期间的一种常见情况是因被中断而终止。如果在原始文件和副本之间有几个字节差异,则将会出现问题。
由于不正确的文件大小而引起的最常见错误发生在将文件解包(untar)期间。tar 操作结束时的错误将是“tar: directory checksum error”,这意味着文件大小与期望的文件大小不匹配。即使发生这种错误,也会产生安装文件,致使某些人相信他们可以安装修订包。
您应该按照下面的顺序来准备安装修订包。在下面的示例中,我们将修订包 3 用于 Sun Solaris 上的 DB2 版本 7.1:
注:某些修订包可作为 tar 格式的未解压缩的文件下载。如果是的话,只要从步骤 1 跳到步骤 3。
将修订包从 IBM 网站下载到一个工作目录。确保您有足够的文件系统空间(这个修订包的压缩大小为 307 兆字节,但它会因为修订包的不同而不同)。请当心,当下载该文件时,不能对它重命名。另外,请确保您有该目录的写许可权。
将修订包复制到 UNIX 机器之后,执行解压。
uncompress FP3_U475377.tar.Z
解压该文件之后,文件的扩展名将为 .tar,如下所示:
FP3_U475377.tar
现在,这个文件的大小为 450 兆字节。
现在,准备将该 tar 文件解包。
tar -xvf FP3_U475377.tar
把该文件解包之后,原始的 tar 文件(450 兆字节)将与最新创建的名为 delta_install 或修订包名称(在本示例中是 FP3_U475377)的安装目录一起保留;它大约也是 450 兆字节。这二项合计达 900 兆字节左右。如果 tar 操作成功,则应该除去该 tar 文件并只留下 FP3_U475377 目录。请确保不在 tar 命令中使用‘i’选项,因为这将忽略目录校验和错误。
下面的命令行输出显示了解压之后的 .tar 文件和解包之后的安装目录:
$ pwd/export/home/db2v71/work2$ ls -ltotal 920068 - (in kilobytes)drwxr-xr-x 92 db2v71 db2grp71 2048 May 9 13:28 FP3_U475377 -rw-r--r-- 1 db2v71 db2grp71 470822912 Jul 12 10:39 FP3_U475377.tar
下面显示了 FP3_U475377 安装目录的内容。内容可能会因平台和修订包的不同而不同,但 installallpatch 文件应该是可见的:
$ pwd/export/home/db2v71/work2/FP3_U475377$ ls172031-000 172031-024 172031-048 172031-072 172031-001 172031-025 172031-049 172031-073 172031-002 172031-026 172031-050 172031-074 172031-003 172031-027 172031-051 172031-075 172031-004 172031-028 172031-052 172031-076 172031-005 172031-029 172031-053 172031-077 172031-006 172031-030 172031-054 172031-078 172031-007 172031-031 172031-055 172031-079 172031-008 172031-032 172031-056 172031-080 172031-009 172031-033 172031-057 Fixpakreadme.txt 172031-010 172031-034 172031-058 backoutallpatch 172031-011 172031-035 172031-059 br 172031-012 172031-036 172031-060 cn 172031-013 172031-037 172031-061 de 172031-014 172031-038 172031-062 en 172031-015 172031-039 172031-063 es 172031-016 172031-040 172031-064 extras 172031-017 172031-041 172031-065 installallpatch 172031-018 172031-042 172031-066 jp 172031-019 172031-043 172031-067 kr 172031-020 172031-044 172031-068 ru 172031-021 172031-045 172031-069 172031-022 172031-046 172031-070 172031-023 172031-047 172031-071
从上面可以看到,installpatch 可执行文件驻留在这里。这是您将用来执行修订包安装的文件。该目录还包含有助于安装的 Fixpakreadme.txt 文件。
安装修订包
既然您已经下载了修订包,而且解压和解包都没有任何错误,那么您将使系统准备安装修订包并对 DB2 实例和数据库执行更新。在我们概述该过程时,您应该有 Fixpakreadme.txt 文件。在开始之前,请阅读 Fixpakreadme.txt 中的所有信息,因为可能有一些您应该考虑到的特定于您的环境的项。
您应该执行这些操作以成功安装修订包。
在每个 DB2 实例上,您都必需注册为实例所有者并执行:
DB2“force applications all”命令,以强制执行该实例的所有应用程序。
DB2“terminate”,以停止所有后端 DB2 进程。
db2stop,以停止实例服务。
db2licd end,以停止许可证守护程序。
注册为 admin 服务器所有者并用 db2admin stop 命令停止 admin 服务器。
注:可以通过执行下列操作来检索驻留在系统上的 DB2 实例列表:
将用户切换到 root 用户
将目录更改为 /instance(例如, /opt/IBMdb2/V7.1/instance (Sun) 或 /usr/lpp/DB2_07_01/instance (AIX®))
执行 db2ilist 命令: ./db2ilist
要检索管理服务器名,请执行上面的步骤 1 和 2,然后执行 dasilist 命令。
现在,可以安装修订包了。使用前面示例中的 FP3_U473577 安装目录,将目录更改为该目录并查找可执行文件 installallpatch。执行该文件以开始安装修订包。当发生错误或者您不再需要这个修订包时,如果您的安装目录包含 backoutallpatch(如 上面所示),则可以撤消这个修订包。如果这个可执行文件不能用于您的平台和修订包发行版,则您系统上的 DB2 产品不能回复到前一个修订包,从而必须卸载并重新安装 DB2。
这里是您将看到的在修订包安装期间修订包中所应用的每个补丁的输出:
INFO: Do NOT interrupt while installing patch 172031-059...Installation of was successful.INFO: Do NOT interrupt while installing patch 172031-060...Installation of was successful.INFO: Do NOT interrupt while installing patch 172031-061...Installation of was successful.INFO: Do NOT interrupt while installing patch 172031-063...Installation of was successful.
结束语
既然已经成功应用了修订包,您将需要按照 Fixpakreadme.txt 文件中所描述的那样通过 db2iupdt 命令更新 DB2 实例。您还需要重新联编数据库,才能对它们应用修订。如果没有执行这个操作,那么一些新功能可能不会生效。这仅适用于前面创建的实例和数据库;所有在应用修订包之后创建的新实例和数据库都将自动具有新的修订。
修订包是复杂的软件世界所必需的,这些技巧将帮助您成为一名更能干且见多识广的 DB2 用户。如果您对本文中的改进有任何意见,请通过页面底部的对本文的评价链接提供反馈。有关安装期间产生的错误,您可能需要购买 IBM Value Option for Developers 来解决。