内容提要 : 本文给出了在Red Hat Linux上安装DB2 EEE的主要步骤
正文 :清注意所有步骤都应以root用户登录, 除非特殊说明
安装步骤概述
1.在服务器上安装 Red Hat Linux 7.1
2.配置网络硬件
3.装载NFS文件系统
4.创建数据库的用户和组
5.激活rsh
6.安装和配置DB2
7.配置多个节点(数据库的多个分区)
8.配置数据库管理服务器
9.配置操作系统内核
10.创建数据库
安装步骤详述:
步骤1. 安装 Red Hat 7.1
典型的Red Hat 7.1的安装并没有包含安装和运行DB2 EEE的所需要的所有软件包, 请根据需要安装下列软件包, 另外请选择不要安装防火墙软件.
X - 如果要运行基与Java的DB2 Control Center(控制中心)
Xinetd - DB2通讯时需要这个软件包
rsh - 为DB2 EEE所用(ssh将不工作)
pdksh - 安装EEE时需要
Nfs-utils - NFS文件系统装载时需要
步骤2. 配置网络硬件
DB2 EEE要求分区间的通讯, 所以我们推荐EEE节点间的通讯最好用专有的网络, 下面这个例子通过在每台机器上安装两个网卡实现了公有网络和DB2 EEE的私有网络的分离
机器1
主机名: DB2lab1
网卡1 - IP地址 (公共): 9.19.156.33
- 子网掩码 : 255.255.252.0
网卡2 - IP地址(DB2 EEE专用): 10.10.10.9
- 子网掩码: 255.255.255.0
机器2
主机名: DB2lab2
网卡1 - IP地址 (公共): 9.19.156.34
- 子网掩码: 255.255.252.0
网卡2 - IP地址(DB2 EEE专用): 10.10.10.10
- 子网掩码: 255.255.255.0
步骤3.配置NFS文件系统
DB2 EEE的可伸缩性来源于对硬件资源的最大可能的并行应用. 有一些配置文件是所有DB2分区都需要共享的, 通过装载(Mount)NFS文件系统这些文件才得以共享.
创建和测试NFS Mount(装载)的步骤如下:
1 在DB2集群的所有节点上创建 /db2home目录
2 在DB2集群的第一个节点上(该节点是实例所有者)导出NFS文件系统
(1) 在 DB2lab1上创建/etc/exports文件
(2) 在/etc/exports文件中加入下列入口: /db2home db2lab*.local.domain(rw)
(3) 在DB2lab1上重起NFS服务, 命令如下:
./etc/init.d/nfs restart
(4) 验正文件系统导出是可工作的, 用下面的语句
showmount --exports
3 在集群的所有其它机器上装载该文件系统
(1) 在/etc/fstab文件中插入下面语句: 'DB2lab2:/db2home /db2home nfs rw 0 0'
(2) 在集群的所有机器上装载被导出的文件系统, 命令如下
mount /db2home
步骤4 创建用户和组
DB2安装程序能创建EEE所需的用户和组. 下面是手工创建所需用户和组的步骤, 手工创建是为了保证所有机器的一致性
1. 在所有机器上创建所需的组, 命令如下:
groupadd -g 550 db2iadm
groupadd -g 551 db2fadm
groupadd -g 552 db2as
2. 在所有机器上创建所需的用户, 命令如下:
useradd -u 550 -g 550 -d /db2home/db2inst1 db2inst1
useradd -u 551 -g 551 -d /db2home/db2fenc1 db2fenc1
useradd -u 552 -g 552 -d /db2home/db2as db2as
3. 为所有机器上的用户设置密码, 命令如下:
passwd db2inst1
passwd db2fenc1
passwd db2as
用户db2inst1将作为实例的所有者. 存储过程将会运行在db2fenc1用户下
步骤5 安装rsh
DB2 EEE用rsh来远程地执行命令. 有两种方法可以激活rsh. 第一种方法是在实例所有者的根目录下提供安全文件 .rhosts. 第二种方法是为集群中的每一台机器提供安全文件/etc/hosts.equiv. 这两种方法都会在文件中列出允许发远程命令的用户及执行该命令的机器名. 在Red Hat 7.1中, root用户是不能使用rsh的.
方法1:
1. 创建/db2home/db2inst1/.rhosts.equiv文件
2. 在.rhosts.equiv文件中加入下列语句:
DB2lab1 db2inst1
DB2lab2 db2inst1
3. 在所有机器上重起xinetd服务,命令如下:
/etc/init.d/xinetd restart
方法2:
1. 在集群的每一台机器上创建/etc/hosts.equiv文件
2. 在hosts.equiv文件中加入下列语句:
DB2lab1 db2inst1
DB2lab2 db2inst1
3. 在所有机器上重起xinetd服务,命令如下:
/etc/init.d/xinetd restart
步骤6 安装和配置DB2 EEE
有两个脚本对于安装和配置DB2很重要, 一个是db2_install, 一个是db2setup. 前者只能安装DB2的库文件, 不能用来创建EEE的实例. 后者却两件事都可以做. 下面的例子用db2setup程序来完成安装.
1. 在每一个节点上运行db2setup程序, db2将会被装到/usr/IBMdb2/v7.1/目录下. 需要注意的是db2setup脚本要求libncurses.so.4库能被正确查看,但Red Hat 7.1的缺省安装并没有这个库. 变通的方法是用下面的命令来创建和libncurses.so.5的象征连接
ln -sf /usr/lib/libncurses.so.5 /usr/lib/libncurses.so.4
2.在第一台机器创建DB2实例(db2lab1),命令如下:(请注意只在第一台机器创建实例)
/usr/IBMdb2/v7.1/install/db2setup
步骤7: 配置EEE的多个节点
在你安装和配置完DB2 EEE后, 你将需要创建EEE的新的分区. /db2home/db2inst1/sqllib/db2nodes.cfg文件定义了DB2 EEE中都存在哪些分区. 添加分区可以用下列步骤:
1. 在db2nodes.cfg文件中为新分区加一行记录,例如:
1 DB2lab2 0
2. 在创建实例的机器上打开/etc/services文件并检查为FCM通讯保留的监听端口已存在,该入口示例如下:
db2inst1 60000/tcp(db2inst1是实例名)
3. 登录集群中的其它机器并修改/etc/services文件,加入同样的入口.
4. 编辑/db2home/db2inst1/sqllib/db2nodes.cfg文件并指定FCM通讯经过的网络地址,样例如下:
0 db2lab1 0 10.10.10.9
1 db2lab2 0 10.10.10.10
步骤8 配置管理服务器
管理服务器用来管理DB2实例,通过下列步骤来创建管理服务器:
1. 执行/usr/IBMdb2/V7.1/install/db2setup
2. 选择创建管理服务器选项
步骤9 配置内核
为了提高DB2性能和可同时存在的数据库连接的个数,你需要修改ipc内核参数, 步骤如下:
1. 配置msgmni参数
sysctl -w kernel.msgmni=128
2. 为了系统启动时该参数配置就生效,需要在/etc/sysctl.conf文件中加入下列入口:
kernel.msgmni=128
步骤10 创建数据库
在缺省情况下, 数据库会被建在实例所有者的/home目录下, 这不是我们所需要的, 因为实例所有者的/home目录位于NFS文件系统下. 所以我们需要在发出创建数据库命令的时候为数据库指定位置. 数据库系统表只位于第一个数据库分区里,用户表会分布在各个分区里. 在创建数据库时指定的路径在集群中的每一台机器上都应该存在而且实例所有者对该路径应该具有读和写权限, 最好的选择是把该路径的所有权赋予实例所有者. 具体操作步骤如下:
1. 分别在db2lab1和db2lab2上以root用户的身份创建一个目录
mkdir /testdbdir
2. 把对该目录的所有权赋予实例所有者
chown /testdbdir db2inst1
3. 以实例所有者的身份创建数据库
db2 "create database test on /testdbdir"