2004-2-22 12:17
燕狂徒
简介<br /><br /><br /> 本文描述在不使用“db2setup”命令的情况下(“DB2 Quick Beginnings”手册中就是使用这个命令),如何在 UNIX 平台上安装和配置 DB2 Version 8.1。为什么不使用标准方法呢?至少有两个很好的理由: <br /><br />Version 8.1 中的“db2setup”实用程序要求具有 X 窗口环境,因为该实用程序是一个图形化的、基于 Java 的应用程序。您也许不想只是因为要安装数据库就在数据库服务器上安装 X。或者可以像我那样,为那些使用 SSH(secure shell)命令行接口的客户机安装远程的数据库软件。这样虽然可以通过 SSH 远程地运行 X,但是速度非常慢。 <br />“db2setup”实用程序要处理安装的方方面面。因此,如果想安装一个稍微有点不同的组件,或者换一种安装实用程序,那么就不能使用“db2setup”了。在 Linux 环境中更是如此,因为这种环境中并不是所有的发布都使用 Red Hat Package Manager(RPM)安装系统。 <br /><br /> 虽然这里介绍的安装过程要复杂得多,但是毕竟这种方法提供了一定程度的灵活性,这是使用“db2setup”时不可能达到的。这种方法还带来了另一大好处,那就是允许我们洞察 DB2 基础的工作原理。 <br /> 在本文中,我们将重点关注在 Linux 上安装 DB2 V8.1 Personal Edition,这里的 Linux 发行版本既有 Mandrake 9 (基于 RPM),也有 Debian “Woody”(基于 DEB)。但是,要转换这些安装说明,以便用于其他的 UNIX 平台或者其他版本的 DB2,也是相当容易的事情。 <br /> 而如果使用的是 Microsoft Windows,会怎么样呢?我想您肯定会问这样的问题。如果这样,那么对于标准的图形化安装程序是没有替代方法的。<br /><br />软件安装<br /><br /><br /> 为 UNIX 系统安装 DB2 的第一个任务是安装系统软件。这里有两种选择:<br /><br /><br /> 如果我们有一个基于 RPM 的 Linux 系统(或者想在其他平台上使用标准的安装实用程序),并且喜欢纯英语的系统,那么我们可以使用“db2_install”命令。<br /> 如果我们没有基于 RPM 的 Linux 系统(或者想在其他平台上使用非标准的安装工具),或者您需要非英语版本的系统,那么必须手动地安装每个 DB2 包。<br /><br /><br /><br />使用“db2_install”<br /><br /> “db2_install”脚本位于安装介质的根目录下(与“db2setup”在同一个目录)。这是一个基于文本的安装过程,用于安装一套标准的(纯英语)组件。输入下列一行,以便从其所在位置运行该脚本:<br /><br /><br /><br />./db2_install<br /><br /> 此脚本首先检测操作系统的类型,然后从目录 db2/<os>>(例如 db2/linux)运行一个特定于操作系统的“db2_install”。接着,该脚本请求输入一个给定列表中的适当字符串,以选择 DB2 版本。在这里,我们选择 DB2.PE。之后该脚本将完成系统软件的安装。<br /> 我们可以控制安装过程的某些方面,例如安装的位置,方法是更改这个特定于操作系统的脚本。通过更改默认的位置,我们还可以安装非英语版本的系统。不过一般来说,除非有绝对的必要去作更改,否则最好还是使用脚本中的默认设置。<br /><br />手动的包安装<br /><br /><br /> 如前所述,如果我们想要使用非标准的安装实用程序,或者想要安装非英语版本的系统,那么就必须手动地安装各个包。<br /> 所有供安装的包都存放在特定于操作系统的目录下(例如 db2/linux)。对于所有的语言来说,大部分包都是标准的,不过还是有三套包有其独特的语言版本:Control Center Help、Java Help 和 Product Messages。这些包的包文件格式为: <br /><br />IBM_db2chxx81-8.1.0-0.i386.rpm : Control Center Help<br />IBM_db2jhxx81-8.1.0-0.i386.rpm : Java Help<br />IBM_db2msxx81-8.1.0-0.i386.rpm : Product Messages <br /><br /> 其中 xx 是语言代号(例如,en 表示英语,es 表示西班牙语,等等)。<br /> 如果使用的是标准的 RPM 安装实用程序,那么使用标准的 RPM 安装命令(rpm -Uvh rpmfile)来安装与语言无关的包和其中一个特定于语言的包。<br /> 如果要在一个非 RPM Linux 的系统(例如 Debian)上进行安装,那么使用“alien”命令将 RPM 转换为 Debian 包。这一过程可能要花费较长的时间,因此明智的做法是只转换那些想要安装的包(即,不是转换所有特定于语言的文件)。最简单的方法是将想要安装的包复制到一个临时目录中,然后运行以下脚本:<br /><br />#!/bin/bash<br />cd /<br />for f in /temp/directory/*.rpm<br />do<br />alien -d $f<br />done<br /><br /> 这将产生一套 .deb (Debian 安装)文件,接着可以使用以下面的命令来安装这些文件:<br /><br />dpkg -i filename.deb<br /><br /> 虽然可以直接使用 alien 命令转换和安装所有的文件(通过在上述脚本中指定一个附加的 -i 选项),但更安全的做法是首先转换所有的文件,然后手动地安装每个文件。一旦这一过程完全通过了测试,并且确信在将 .rpm 转换为 .deb 格式的过程当中没有错误发生,那么整个过程就可以自动运行了。<br /><br /> 这样便结束了系统软件的安装。<br /><br />配置数据库服务器<br /><br /><br /> 一旦安装好了系统软件,我们就需要执行大量的配置任务,这些任务通常都是由“db2setup”在“幕后”完成的: <br /><br />创建实例和管理服务器用户 ID 。 <br />创建实例和管理服务器。 <br />创建到 DB2 共享库的链接。 <br />在系统启动时自动启动实例。 <br /><br /> 在本文中,我们假设已经将系统软件安装到标准安装目录中,并且想要创建一个实例 db2inst1 和一个管理服务器。<br /><br />创建用户 ID<br /><br /><br /> 我们使用以下标准操作系统命令来创建用户 ID 及其相关的组:<br /><br />groupadd db2grp1<br />groupadd db2fgrp1<br />groupadd dasadm1<br />useradd -g db2grp1 -m -d /home/db2inst1 -p password db2inst1<br />useradd -g db2fgrp1 -m -d /home/db2fenc1 -p password db2fenc1<br />useradd -g dasadm1 -m -d /home/dasusr1 -p password dasusr1<br /><br /> 当然,我们不会将密码设置为像“password”(或“ibmdb2”,或者其他类似的内容)这样明显的内容。<br /><br />创建实例<br /><br /><br /> 首先我们使用以下命令创建管理服务器实例:<br /><br />/opt/IBM/db2/V8.1/instance/dascrt -u dasusr1<br /><br /> 接着使用以下命令创建数据库实例 db2inst1:<br /><br />/opt/IBM/db2/V8.1/instance/db2icrt -u db2fenc1 db2inst1<br /><br /> 这个命令有一些可选的参数。特别地,-a 选项允许我们指定一个不同于缺省的“SERVER”的认证机制。<br /><br />创建共享库链接<br /><br /><br /> 这一步通过在标准库路径内产生到 DB2 共享库的链接,使得这些 DB2 共享库在系统范围内可用。如果在服务器上安装了 DB2 的早期版本,那么在这一步应该小心一点,因为这一步将替换到早期版本的链接。这些链接主要是用于应用程序开发。但是我们发现,如果没有正确地设置这些链接的话,就会碰到与某些附带软件有关的问题。我们还特别发现,除非对这些链接进行了设置,否则用 TSM(Tivoli Storage Manager)来进行备份和恢复并不会像正常情况下那样有效。 <br /> 要设置库链接,可以使用以下命令:<br /><br />/opt/IBM/db2/V8.1/cfg/db2ln<br /><br />安排自动的实例启动<br /><br /><br /> 与 DB2 的早期版本相比,在系统启动阶段自动启动 DB2 实例的过程已经发生了改变。先前是通过使用 inittab 运行一个名为 /etc/rc.db2 的脚本来按要求启动实例。而现在不这样了。相反,现在是从 inittab 运行一个名为“DB2 Fault Monitor Coordinator”(db2fmcd)的守护程序(daemon):下面一行应该放在 /etc/inittab 的底部:<br /><br />fmc:2345:respawn:/opt/IBM/db2/V8.1/bi n/db2fmcd # DB2 Fault Monitor Coordinator<br /><br /> 这本身并不会启动任何实例。要启动实例,必须以 DB2 实例所有者的身份运行以下命令来设置每个 DB2 实例的实例变量:<br /><br />db2set DB2AUTOSTART=YES<br /><br /> 这样就完成了 DB2 服务器的基本配置。如果您不想只是因为要启动新创建的实例就重新启动计算机,那么只需使用“db2start”从命令行启动新实例。<br /><br />结束语<br /><br /><br /> 我们已经看到,在没有图形化工具,甚至不使用标准包管理器的情况下,仍然可以在 UNIX 平台上安装可以运行的 DB2 服务器。在实现了使 DB2 在标准安装情况下不可用的地方变为可用这一主要目标的同时,我们还得以洞察 DB2 安装过程的内部工作原理,而在以前这么有用的洞察我们都只能白白错过。