su - db2instl -c ".sqllib/db2profile;
db2 –tvf /share/rtcl/catalog.db2"
另外一份文件可以执行设置 DB2 所需的其他操作。例如,
catalog tcpip node server remoteserverhostname;
catalog databasesampleatnodeserver;
updatedbm cfg usingjdk_path/opt/lBMJava2-141;
服务器事项
在服务器部署中,通常需要附加命令来创建和设置数据库、表空间、表,等等。至于客户机,创建单个 /share/ddi/createdb. db2 脚本即可简化部署脚本。
并行服务器事项
除了上述的服务器事项以外,在并行环境中,部署脚本必须可以按需更新 .rhosts 和 db2nodes.cfg 文件。
使用 db2_install 部署安装
虽然该方法绕开了响应文件创建步骤,但是它也错过了响应文件安装带来的所有方便之处。
安装阶段相当简单:
/share/rtcl/db2_install -p DB2.RTCL -n
产品标识符对每一种产品来说都是唯一的:请参考产品文档,以获取更多关于 db2_install 命令的信息,或者运行 db2_install(无任何参数),以查看产品清单。
如果需要其他语言支持,则部署脚本必须逐个安装。有关如何执行该操作的更多信息,请参见下面的“部署手动安装”一节。
试运行阶段
部署脚本现在还需要按需处理用户、实例和 DAS 的创建。创建用户是特定于操作系统的功能,应当参考操作系统指南。实例和 DAS 的创建将在“DB2 安装和配置补充说明”中讨论。
有关其他安装后工作的信息,请参见上面“部署响应文件安装”一节中的相关小节。
部署手动安装
该方法的优势是,它是一种安装的最精确方法,同时也是一种准备和调试时间最密集型的方法。因为它还是最高级的安装,是专为了解操作系统封装格式的系统管理员提供的,所以本文将知识水平进行了假定。
该部署脚本的第一阶段是拟定 DB2 代码本身。这是独立于系统之外的,因为 DB2 使用每一种操作系统所固有的安装工具。
在 AIX 上,DB2 使用 installp 命令。
在 Solaris 上,DB2 使用 pkgadd 命令。
在 HP-UX 上,DB2 使用 swinstall 命令。
在 Linux 上,DB2 使用 rpm 命令。
在该情况下成功编写部署脚本的关键是:了解适用于您的操作系统的工具,了解哪一个软件包包含所需的 DB2 代码,了解安装的顺序。中级和高级 shell 脚本用户可以在安装介质的 db2/platform 目录中的 db2_install 脚本中找到该信息。
例如,要在 Linux 上安装具有 JDBC 支持和 French 消息的精简 Run-time 客户机,请执行以下命令(为简洁起见调整命令行):
rpm -ivh IBM_db2msen81 IBM_db2cliv81 IBM_db2msfr81 IBM_msFR81 IBM_cucs81 IBM_jdbc81 IBM_db2conv81 IBM_db2rtsg81
rpm 的顺序与 db2_install 脚本中的顺序相同。在某些系统中,顺序是很重要的;而在其他系统中,将所有的软 包放在一行中允许安装程序按需记录它们,以实现操作系统先决条件。
为了确定您需要安装哪一些软件包,请查看同一目录中的 ComponentList.htm 文件,以获取有关描述的完整清单。
手动安装脚本的第二阶段是试运行阶段。有关该阶段的更多信息,请参见上面的“使用 db2_install 部署安装”一节中的相关小节。
部署 DB2
到目前为止,准备部署所需的所有操作都已经完成。因为前期成本原因,这些操作仅执行一次,而实际的部署可以快速地在数百或者数千台计算机上执行,而以后单独添加额外的计算机几乎不需要成本。
您可以部署软件的软件环境有很多种。但是,不同于详细讲解如何使用具体部署软件,本文重点关注一般想法,允许您调整想法来适应部署 DB2 的软件和环境。
部署的两种基本样式是 push(放)和 pull(拖)。
在 push(放)部署中,集中化位置启动与每台计算机的联系。这通常适用于需要在没有用户操作的情况下设置很多计算机的集中 IT 部门。然而,为了实现该操作,必须已经在每一台需要“pushed(放到)”的机器上安装和运行自动化的服务(例如 rshd、sshd 或其他部署软件),并且这些机器必须具有可用于 IT 部门的恰当的访问权限。
在 pull(拖)部署中,每一个安装 DB2 的位置启动自身与服务器的联系,以开始安装。通常,它是 Web 页面、电子邮件或者其他位置中的链接。这通常适用于需要安装 DB2 的计算机数量很少,或者没有提供自动化服务可用于支持 push(放)安装的情况。
Push 安装示例
#! /bin/sh
dst_computers="wrkstnl wrkstn2 wrkstn3" for comp in $dst_computers; do ssh -1 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
想法是将上述代码,或者与上述代码非常类似的代码存放在 shell 脚本中,例如 db2deployment.sh,您可以用来存放 DB2 安装。
由于大多数操作已经由部署脚本完成,所以需要 push 安装脚本完成的操作很少。
该示例假设,在其他情况下,ssh 设置在所有工作站上,并且运行 ssh 的用户有权访问每一台工作站上的 root。
Pull 安装示例
#! /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.$$
该脚本几乎与 push 示例中的脚本一样。同样,部署脚本执行大部分的操作。由于该原因,您仅需要设置环境,以便适当的用户可以以 root 身份运行脚本。
结束语
将 DB2 部署到数百、甚至数千台 UNIX 或者 Linux 客户机或者服务器中,并不比部署到单台客户机或者服务器中困难。利用一些计划和测试,大规模部署 DB2 就可以是一项常规管理任务。
商标
AIX、DB2、DB2 Connect、DB2 Universal Database、IBM 和 MVS 是国际商业机器公司在美国及其他国家的注册商标。
Microsoft 和 Windows 是 Microsoft Corporation 在美国及其他国家的注册商标。
UNIX 是 Open Group 在美国及其他国家的注册商标。
Linux 是 Linus Torvalds 在美国及其他国家的商标。
其他公司、产品和服务名称可能是其他公司的商标或服务标志。
Copyright International Business Machines Corporation, 2004. 保留所有权利。