电脑技术学习

教你在AIX上安装IBM DB2 9版本的分区环境

dn001
DB2 的分区环境适合于统计类和分析的应用,如一般单位的数据仓库系统,在数据仓库系统部署过程中,分区环境的安装往往是项目部署的第一步,在 DB2 的信息中心中有类似于安装方面的资料介绍,但资料比较分散,要求安装的工程师对 IBM DB2 产品相关的网站结构要很了解,尤其不适合于那些初次使用 DB2 分区环境的使用人员,当进行安装时,安装人员先要找到这些资料,然后读懂这些资料,因此往往需要花费很长的时间,本文把安装中的过程进行了精简,以便于快速的部署 DB2 分区环境。

磁盘和内存要求

磁盘要求

磁盘要求取决于你安装的选件的多少,安装过程中有3个选件可以安装,分别是 ESE、CLIENT 和 RTCL,一般情况下,如果你安装所有的3个选件,2GB 空间是足够了。在 AIX 上,DB2 基本产品缺省是安装在/opt/IBM/DB2/V9.1目录下。

内存要求

DB2 数据库系统至少需要 256 MB RAM。对于一个只运行 DB2 和 DB2 GUI 工具的系统,至少需要 512 MB RAM。但是,建议提供 1 GB 的 RAM 以提高性能。这些需求并不包括在系统上运行的其他软件所需要的内存。

机器数目要求

你可以在一台机器上安装 DB2 分区数据库,也可以在多台机器上安装一个分区数据库,本文档假设你在 ServerA、ServerB、ServerC 和 ServerD 四台机器上进行安装。

对操作系统的安装要求

表1. 对操作系统的环境要求

AIX 版本 操作系统

AIX V5.2.0 1)64-bit AIX kernel is required;

2)TL08 and SP2;

3)Minimum C++ runtime level is xlC.rte 8.0.0.4 and xlC.AIX50.rte 8.0.0.4

AIX V5.3.0 1)64-bit AIX kernel is required;

2)TL04 and SP2;

3)Minimum C++ runtime level is xlC.rte 8.0.0.4 and xlC.AIX50.rte 8.0.0.4

使用 bosboot 命令切换至 64 位内核

要切换至 64 位内核,需要 root 用户权限并应输入下列命令:

清单1

ln -sf /usr/lib/boot/unix_64 /unix

ln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix

bosboot -a

shutdown -Fr

DB2版本9要求

DB2 版本 9 需要“用于 AIX 的 IBM C++ 运行时环境组件”,它包含 xlC.rte 8.0.0.4。这可以从 IBM AIX 支持Web 站点获得。

验证操作系统环境

执行 oslevel -s

5300-04-02 此输出结果说明已经达到了 TL04 和 SP2

验证是否启用了64位内核

清单2

/usr/sbin/bootinfo -K

 

如果启用了 32 位内核则返回“32”,如果启用了 64 位内核则返回“64”。

安装 DB2 的基本产品

将 DB2 DPF 所在的软件包 ese.tar.gz 通过 FTP 传送到每台需要运行 DPF 的机器上,通过下面的命令进行解压:

清单3

gzip –d ese.tar.gz

tar –xvf ese.tar

将目录更改到产品目录:

cd ese/Disk1

执行 DB2_install 安装产品:

./db2_install

当提示输入需要安装的产品名称时,输入 ESE CLIENT。

  

CLIENT 包含有 DB2 应用开发所需要的软件包,一般情况下都是需要安装的。

安装 DB2 的最新补丁

在初次安装 DB2 的基本产品之后,建议安装 DB2 最新的补丁程序,这对于系统将来的稳定性都是有帮助的,并且由于是在创建实例之前安装,因此不需要执行 db2iupdt 来更新实例,DB2 最新的补丁程序可以从下面的网址获得:

http://www-1.ibm.com/support/docview.wss?rs=71&uid=swg21254867

补丁包程序是压缩过的,一般也需要通过类似于解压产品包的方式来解压,在解压之后,通过执行下面的程序来安装补丁包:

  

清单4

./installFixPak -y

验证 NFS 是否在运行

在设置数据库分区环境之前,应验证“网络文件系统”(NFS)在将参与分区数据库系统的每台计算机上是否正在运行。

先决条件

NFS 必须在每台计算机上都正在运行。

过程

要验证 NFS 是否在每台计算机上都正在运行。

在每台计算机上输入以下命令:

清单5

lssrc -g nfs

NFS 进程的状态字段应该指示活动。验证了 NFS 是否在每个系统上都正在运行之后,应检查 DB2 必需的特定 NFS 进程。必需的进程有:

rpc.lockd

rpc.statd

创建分区数据库系统的 DB2 主文件系统

此任务是设置分区数据库系统这一任务的一部分。此任务描述如何完成下列操作:

创建一个 DB2 主文件系统

NFS 导出主文件系统

NFS 在参与的每台计算机中都安装主文件系统

建议创建一个大小不低于 1 GB 的主文件系统

先决条件

您必须具有:

创建文件系统的 root 用户权限

创建了要将文件系统真正放置于的卷组。

过程

要创建以 NFS 方式导出并以 NFS 方式安装的 DB2 主文件系统,执行下列步骤:

创建 DB2 主文件系统

作为具有 root 用户权限的用户登录分区数据库系统的主计算机(ServerA),并为分区数据库系统创建名为 /db2home 的主文件系统。

输入 smit jfs 命令。

单击添加日志文件系统图标。

单击添加标准日志文件系统图标。

从卷组名列表中选择想要将此文件系统真正放置于的现有卷组。

设置文件系统的大小(文件系统大小(以 512 字节块计)(数字)字段)。此大小按 512

字节块计数缩放,如果只需要为实例主目录创建文件系统,可以使用 180 000,大约 90 MB。

在安装点字段中输入此文件系统的安装点。在此示例中,安装点为 /db2home。

将在系统重新启动时自动安装字段设置为是。其余字段可保留缺省设置。

单击确定。

导出 DB2 主文件系统

以 NFS 方式导出 /db2home 文件系统,使它可用于将参与分区数据库系统的所有计算机:

输入 smit nfs 命令。

单击网络文件系统(NFS)图标。

单击将目录添加至导出列表图标。

在要导出的目录的路径名字段中,输入要导出的路径名和目录(例如,/db2home)。

在允许具有 root 用户访问权的主机字段中输入将要参与分区数据库系统的每个工作站的名称。使用逗号(,)作为每个名称之间的定界符。例如,ServerA,ServerB,ServerC。如果是在使用高速互连,建议在此字段中还要指定每个工作站的高速互连名称。其余字段可保留缺省设置。

单击确定。

注销。

在参与的每台计算机中安装 DB2 主文件系统

登录至参与的每台计算机(ServerB、ServerC 和 ServerD),通过执行下列步骤来以 NFS 方式安装已导出的文件系统:

输入 smit nfs 命令。

单击网络文件系统(NFS)图标。

单击添加文件系统以进行安装图标。

在安装点的路径名(路径)字段中输入安装点的路径名。 安装点的路径名就是应创建 DB2 主目录的位置。对于此示例,使用 /db2home。

在远程目录的路径名字段中输入远程目录的路径名。对于本示例,应输入您在安装点的路径名(路径)字段中输入的值。

在远程目录所在的主机字段中输入导出了文件系统的机器的主机名。 这是创建了正在安装的文件系统的机器的主机名。为了提高性能,您可能想通过高速互连以 NFS 方式安装您创建的文件系统。如果想要使用高速互连来安装此文件系统,则必须在远程目录所在的主机字段中输入其名称。您应该知道,如果高速互连由于某种原因而变得不可用,则参与分区数据库系统的每个工作站都将无法访问此 DB2 主目录。

将立即安装,将条目添加至 /etc/filesystems 还是全部字段设置为全部。

将 /etc/filesystems 条目将在系统重新启动时安装目录字段设置为是。

将此 NFS 文件系统的方式字段设置为读写。

将对文件系统进行软安装还是硬安装字段设置为软安装。 软安装表示计算机将不会无限期地尝试以远程方式安装该目录。硬安装表示机器将不停地尝试安装该目录。这可能会在系统崩溃时产生问题。建议将此字段设置为软安装。其余字段可保留缺省设置。

确保此文件系统是在是否允许在此文件系统中执行 SUID 和 SGID 程序字段设置为是的情况下安装的。这是缺省设置。

单击确定。

注销。

在分区数据库环境中为 DB2 服务器安装创建必需的用户

运行 DB2 实例需要三个用户和组。下表说明在下列指令中使用的用户名和组名。可以指定您自己的用户名和组名,但是它们必须符合系统命名规则和 DB2 命名规则。

表2. 创建必需的用户和组

必需的用户 用户名 组名

实例所有者 db2inst1 db2iadm1

受防护的用户 db2fenc1 db2fadm1

管理服务器用户 dasusr1 dasadm1

* 必须具有 root 用户权限才能创建用户和组。

限制

您创建的用户名必须同时符合操作系统命名规则和 DB2 命名规则。

过程

要创建全部这三个用户,执行下列步骤:

登录主计算机。

通过输入下列命令,为实例所有者创建一个组(例如,db2iadm1),为将要执行 UDF 或存储过程的用户创建一个组(例如,db2fadm1),并为管理服务器创建一个组(例如,dasadm1):

清单6

mkgroup id=999 db2iadm1

mkgroup id=998 db2fadm1

mkgroup id=997 dasadm1

通过使用下列命令,为前一步骤中创建的每个组创建一个用户。每个用户的主目录将是您先前创建且共享的 DB2 主目录(db2home):

清单7

mkuser id=1004 pgrp=db2iadm1 groups=db2iadm1 home=/db2home/db2inst1 core=-1 data=491519

stack=32767 rss=-1 fsize=-1 db2inst1

mkuser id=1003 pgrp=db2fadm1 groups=db2fadm1 home=/db2home/db2fenc1 db2fenc1

mkuser id=1002 pgrp=dasadm1 groups=dasadm1 home=/home/dasusr1 dasusr1

通过输入下列命令,为创建的每个用户设置初始密码:

清单8

passwd db2inst1

passwd db2fenc1

passwd dasusr1

注销。

作为已创建的每个用户(db2inst1、db2fenc1 和 dasusr1)登录主计算机。因为这是这些用户第一次登录系统,所以可能会提示您更改每个用户的密码。

注销。

在将参与分区数据库环境的每台计算机上创建完全相同的用户和组帐户。

更新用于分区 DB2 安装的环境设置

此任务描述了将参与分区数据库系统的每台计算机上需要更新的环境设置。

过程

要更新 AIX 环境设置:

作为具有 root 用户权限的用户登录计算机。

通过输入以下命令,将 AIX maxuproc(每个用户的最大进程数)设备属性设置为 4096:

清单9

chdev -l sys0 -a maxuproc='4096'

注:如果另一映像正在运行,则可能需要将 bosboot/reboot 切换为 64 位内核。

在参与分区数据库系统的所有工作站上,将 TCP/IP 网络参数设置为下列值。这些值都是这些参数的最小值。如果任何网络相关参数都已设置为较高的值,则不要更改它。

thewall = 65536

sb_max = 1310720

rfc1323 = 1

tcp_sendspace = 221184

tcp_recvspace = 221184

udp_sendspace = 65536

udp_recvspace = 65536

ipqmaxlen = 250

somaxconn = 1024

要列示所有网络相关参数的当前设置,输入以下命令:

清单10

no -a | more

要设置参数,输入以下命令:

no -o parameter_name=value

其中:

parameter_name 表示想要设置的参数。

value 表示想要对此参数设置的值。

例如,要将 tcp_sendspace 参数设置为 221184,输入以下命令:

清单11

no -o tcp_sendspace=221184

如果正在使用高速互连,则必须将 css0 的 spoolsize 和 rpoolsize 设置为下列值:

spoolsize 16777216

rpoolsize 16777216

要列示这些参数的当前设置,输入以下命令:

清单12

lsattr -l css0 -E

要设置这些参数,输入下列命令:

/usr/lpp/ssp/css/chgcss -l css0 -a spoolsize=16777216

/usr/lpp/ssp/css/chgcss -l css0 -a rpoolsize=16777216

如果没有使用 /tftpboot/tuning.cst 文件来调整系统,则在安装之后可以使用 DB2DIR/misc/rc.local.sample 样本脚本文件,其中 DB2DIR 是 DB2 产品安装的路径,来更新网络相关参数。要在安装之后使用样本脚本文件来更新网络相关参数,执行下列步骤:

通过输入下列命令,将此脚本文件复制到 /etc 目录,并使它可由 root 用户执行:

清单13

cp /usr/opt/db2_09_01/misc/rc.local.sample /etc/rc.local

chown root:sys /etc/rc.local

chmod 744 /etc/rc.local

查看 /etc/rc.local 文件并对其进行更新(如果有必要的话)。

向 /etc/inittab 文件添加一个条目,以便每当机器重新引导时执行 /etc/rc.local 脚本。可使用 mkitab 命令来向 /etc/inittab 文件添加一个条目。要添加此条目,输入以下命令:

清单14

mkitab "rclocal:2:wait:/etc/rc.local > /dev/console 2>&1"

通过输入以下命令,确保 /etc/inittab 文件包括 /etc/rc.nfs 条目:

清单15

lsitab rcnfs

通过输入以下命令,在不重新引导系统的情况下更新网络参数:

清单16

/etc/rc.local

确保具有足够的交换空间来运行 DB2 ESE 的分区安装。如果没有足够的交换空间,则操作系统将停止正在使用大部分虚拟内存(这可能是其中一个 DB2 进程)的进程。要检查可用的交换空间,输入以下命令:

清单17

lsps -a

此命令将返回类似于以下的输出:

表3. 交换空间输出结果

Page Space Physical Volume Volume Group Size %Used Active Auto  Type 
paging00  hdisk1 rootvg 60MB  19 yes yes lv 
hd6  hdisk0 rootvg 60MB  21 yes yes lv 
hd6  hdisk2 rootvg 60MB  21 yes yes lv

建议可用交换空间应是在计算机上安装的物理内存量的两倍。

验证参与的计算机上的可用端口范围

此任务描述了验证参与的计算机上的可用端口范围时需要执行的步骤。端口范围由“快速通信管理器”(FCM)使用。FCM 是 DB2 用来处理数据库分区服务器之间的通信的功能部件。当在主机器上安装实例拥有的数据库分区服务器时,DB2 根据指定的参与分区数据库环境的数据库分区服务器数目保留端口范围。缺省范围为四个端口。当在参与的计算机上安装数据库分区服务器时,“DB2 安装”向导必须能够保留相同的端口范围;端口范围必须在每个数据库分区服务器上都是可用的。应该在安装实例拥有的数据库分区服务器之后,并在安装任何参与的数据库分区服务器之前执行此任务。

先决条件

要更改 services 文件,需要具有 root 用户权限。

过程

要验证参与的计算机上的可用端口范围:

打开位于 /etc/services 目录中的 services 文件。

查找为 DB2 的“快速通信管理器”(FCM)保留的端口。这些条目应类似如下:

DB2_db2inst1 60000/tcp

DB2_db2inst1_1 60001/tcp

DB2_db2inst1_2 60002/tcp

DB2_db2inst1_END 60003/tcp

DB2 将保留 60000 之后的前四个可用端口。

在参与的每台计算机上,打开 services 文件,并验证在主计算机的 services 文件中为 DB2 FCM 保留的端口是否未使用。如果参与的某台计算机正在使用需要的端口,则应确定所有计算机的可用端口范围,并更新每个 services 文件(包括主计算机上的 services 文件)。

启用远程命令的执行

必须在单一分区数据库环境和分区数据库环境中都更新 .rhosts 文件以执行远程命令。

在分区数据库中,每个数据库分区服务器必须具有对参与实例的所有其他数据库分区服务器执行远程命令的权限。可以通过更新实例的主目录中的 .rhosts 文件来授予此权限。因为实例的主目录在共享 DB2主文件系统上,所以只需要一个 .rhosts 文件。

先决条件

必须具有 root 用户权限。 必须知道每台参与计算机的主机名 必须知道实例所有者的用户名。

过程

作为具有 root 用户权限的用户登录主计算机。

在实例主目录中创建 .rhosts 文件。例如,如果实例主目录是 /db2home/db2inst1,则可以通过输入以下命令来使用文本编辑器创建 .rhosts 文件:

清单18

vi /db2home/db2inst1/.rhosts

为每台计算机(包括主计算机)向 .rhosts 文件添加条目。.rhosts 文件具有以下格式:

hostname instance_owner_user_name

一些系统可能需要指定长主机名,例如:ServerA.yourdomain.com。在将主机名条目添加至 .rhosts 文件之前,确保能够解析 /etc/hosts 和 /etc/resolv.conf 文件中的主机名。

$INSTHOME/.rhosts 文件应该包含类似如下的条目:

ServerA.yourdomain.com db2inst1

ServerB.yourdomain.com db2inst1

ServerC.yourdomain.com db2inst1

ServerD.yourdomain.com db2inst1

可以在 .rhosts 文件中指定以下条目,而不是分别指定每个主机名,但是此操作可能会产生安全风险,仅应在测试环境中这样做。

+ db2inst1

如果在 db2nodes.cfg 文件中指定了高速交换机(网络名),则还应将每台计算机的网络名条目添加至 .rhosts 文件。网络名值是在 db2nodes.cfg 文件的第四列中指定的。带有高速交换机(网络名)条目的 .rhosts 文件可能类似如下:

ServerA.yourdomain.com db2inst1

ServerB.yourdomain.com db2inst1

ServerC.yourdomain.com db2inst1

ServerD.yourdomain.com db2inst1

Switch1.yourdomain.com db2inst1

Switch2.yourdomain.com db2inst1

Switch3.yourdomain.com db2inst1

Switch4.yourdomain.com db2inst1

如果不使用 .rhosts 文件,也可以使用 /etc/hosts.equiv 文件。/etc/hosts.equiv 文件将包含与 .rhosts 文件完全相同的条目,但是必须在每台计算机上创建它。

创建 DB2 实例

在参与分区安装的任何一台机器上运行下面命令创建 DB2 实例:

清单19

/opt/IBM/db2/V9.1/instance#./db2icrt -a server -p 50000 -s ese -u db2fenc1 db2inst1

更新节点配置文件

节点配置文件(db2nodes.cfg)位于实例所有者的主目录中,它包含一些配置信息,告诉 DB2 有哪些服务器参与分区数据库环境的实例。分区数据库环境中的每个实例都有一个 db2nodes.cfg 文件。对于每个参与实例的服务器,db2nodes.cfg 文件必须包含一个条目。当创建实例时,会自动创建 db2nodes.cfg 文件并对拥有实例的服务器添加条目。

例如,在拥有实例的服务器 ServerA 上使用“DB2 安装”向导创建了 DB2 实例时,db2nodes.cfg 文件将被更新为如下所示:

0 ServerA 0

此任务提供了一些步骤,以将 db2nodes.cfg 文件更新为包括参与的计算机的条目。

先决条件

必须在所有参与的计算机上安装 DB2 应用程序。

DB2 实例必须存在于主计算机上。

您必须是具有 SYSADM 权限的用户。

如果您打算将高速交换机用于数据库分区服务器之间的通信,或者如果分区配置将具有多个逻辑分区,则复查『DB2 节点配置文件』主题以获取配置示例和有关 db2nodes.cfg 的文件格式的信息。

限制

在“过程”部分的步骤中使用的主机名必须是标准主机名。

过程

要更新 db2nodes.cfg 文件:

作为实例所有者登录(在本示例,db2inst1 是实例所有者)。

通过输入以下命令确保已停止 DB2 实例:

清单20

$INSTHOME/sqllib/adm/db2stop

其中 $INSTHOME 是实例所有者的主目录(db2nodes.cfg 文件在实例运行时被锁定,并且仅当实例停止时才可以编辑该文件)。

例如,如果实例主目录为 /db2home/db2inst1,则输入以下命令:

清单21

/db2home/db2inst1/sqllib/adm/db2stop

对于每个 DB2 实例,向 .rhosts 文件添加一个条目。通过添加以下项来更新文件:

其中 是数据库服务器的 TCP/IP 主机名, 是用来访问数据库服务器的实例的名称。

向每个参与的服务器的 db2nodes.cfg 文件添加一个条目。当第一次查看 db2nodes.cfg 文件时,它应该包含类似于以下内容的条目:

0 ServerA 0

此条目包括数据库分区服务器号(节点号)、数据库分区服务器驻留的服务器的 TCP/IP 主机名以及数据库分区服务器的逻辑端口号。

如果正在对安装概述中所描述的分区配置(有四台计算机,每台计算机上安装一个数据库分区服务器)进行安装,则应该出现类似如下的更新 db2nodes.cfg:

0 ServerA 0

1 ServerB 0

2 ServerC 0

3 ServerD 0

当完成更新 db2nodes.cfg 文件时,输入 INSTHOME/sqllib/adm/db2start 命令,其中 INSTHOME 是实例所有者的主目录。例如,如果实例主目录为 /db2home/db2inst1,则输入以下命令:

清单22

/db2home/db2inst1/sqllib/adm/db2start

注销。

设置 TCP/IP 通讯

修改/etc/services,使 TCP/IP 的通讯成为可能

修改/etc/servcies,增加下面的信息:

db2_conn 50000/tcp

用 db2inst1 用户登录,运行 su – db2inst1

启动数据库

运行 db2start

设置 TCP/IP 通讯协议,然后重新启动数据库

运行 db2set DB2COMM=tcpip”

运行 db2 terminate”

运行 db2 update dbm cfg using svcename db2_conn”

运行 db2stop force;db2start”

使用 db2licm 命令注册 DB2 产品或功能部件许可证密钥

在安装了 DB2产品或功能部件的每一台机器上,应该注册一个 DB2 产品或功能部件许可证密钥。有关这些产品选项的更多信息,请参阅 Web 上的 DB2 版本 9 包装信息。如果要在安装期间自动添加产品或功能部件许可证密钥,则需要在启动“DB2 安装”向导之前将许可证密钥复制到安装映像的 /db2/license 目录。

过程

要注册 DB2 许可证密钥,输入:

db2licm -a filename

其中 filename 是和产品或功能部件对应的许可证文件的完整路径名和文件名。许可证文件位于和 DB2 产品或功能部件关联的激活 CD 的 /db2/license 目录中。

要将 DB2 产品或功能部件许可证密钥注册为实例所有者:

创建实例环境并成为实例所有者。

使用相应的命令注册 DB2 许可证:

对于 Linux 和 UNIX 操作系统:

db2instance_path/adm/db2licm -a filename.lic

对于 Windows 操作系统:

db2instance_pathadmdb2licm -a filename.lic 其中 db2instance_path 是创建 DB2 实例的位置,而 filename 是与已购买的产品相对应的许可证文件的完整路径名和文件名。许可证文件位于产品或功能部件的激活 CD 的根目录的 /db2/license 目录中。

验证分区数据库服务器安装

要验证是否成功安装了 DB2 服务器,创建样本数据库并运行 SQL 命令来检索样本数据并验证数据是否已分发至所有参与的数据库分区服务器。

先决条件

已完成所有安装步骤。

过程

要创建 SAMPLE 数据库:

作为拥有实例的用户登录主计算机(ServerA)。在本安装示例中,db2inst1 是拥有实例的用户。

输入 db2sampl 命令来创建 SAMPLE 数据库。

缺省情况下,将在实例所有者的主目录中创建样本数据库。在本示例中,/db2home/db2inst1/ 是实例所有者的主目录。实例所有者的主目录是缺省数据库路径。

处理此命令可能要花几分钟。没有完成消息;当返回命令提示符时,该过程完成。

创建 SAMPLE 数据库时,该数据库自动以数据库别名 SAMPLE 进行编目。

输入 db2start 命令来启动数据库管理器。

在 DB2 命令窗口中输入下列 DB2 命令来连接至 SAMPLE 数据库,并检索在部门 20 工作的所有职员的列表:

清单23

db2 connect to sample

db2 select * from staff where dept = 20

要验证是否已将数据分发至数据库分区服务器,在 DB2 命令窗口中输入下列命令:

清单24

db2 select distinct dbpartitionnum(empno) from employee;

输出将列示 employee 表使用的数据库分区。

结论

至此,恭喜你的 DB2 分区环境已经安装成功了,接下了你可以创建用户数据库、database partition group、缓冲池、用户表空间以及带有 partition key 的用户表,进入开发阶段或导入用户数据了。