本文安装系统CENTOS 6.4 DB2位数64
安装中涉及目录位置各位可自行定义
生产系统为安全和性能考虑,一般将DB2实例目录、日志目录、归档日志目录、表空间目录区分开,可建立/db2home
/db2home/log
/db2home/arclog
/db2home/db
本文章安装的是DB2 ESE 就是企业版,因为后继文档还要搭建HADR,这个是有期限的,现在EXPRESS-C是免费的。
关于文档:较之前的版本来说现在好多了,提供了部分中文文档。全部的中文文档和英文文档可以打包下载:
http://www-01.ibm.com/support/docview.wss?rs=71&uid=swg27015148
网络使用不是很方便的同学,或者网速慢的同学,可以下载DB2 信息中心到本地进行安装,下载地址在上面链接中的:A downloadable version of the latest DB2 Version 9.7 Information Center is also available for local installations.部分。
准备工作
准备centOS系统 64 bit:虚拟机或单独机器安装。下载地址 http://mirrors.163.com/centos/6.4/isos/x86_64/
下载DB2:访问 http://www-01.ibm.com/software/data/db2/ ,右上角输入DB2 V9.7 DOWNLOAD,查询结果中寻找下载。下载可通过HTTP或者IBM下载工具(需要安装JRE)。下载包名为 v9.7_linuxx64_server.tar.gz
安装centOS系统
上传DB2安装包至/software 目录
解压DB2安装包 gunzip v9.7_linuxx64_server.tar.gz
tar -xvf v9.7_linuxx64_server.tar
安装前检查
进入安装目录 cd /software/server
./db2prereqcheck 进行安装前检查
这里面会主要提到两个问题
1、
WARNING:
DBT3534W The db2prereqcheck utility determined that ASLR is set to ON and that this could cause issues with some tools.
这个是说centOS开启了内存地址随机化机制(address space layout randomization)功能,这个功能对DB2本身没有太大影响,有个别工具db2pd db2egcf 会出现异常,若有强迫症
官方解释:
DBT3534W
db2prereqcheck 实用程序确定 ASLR 设置为 ON 并且这可能导致某些工具发生问题。
说明
地址空间布局随机化 (ASLR) 缺省情况下在某些 Linux 分发上已激活。ASLR 被设计为在随机地址装入共享内存对象。
ASLR 启用后,DB2 数据库不能保证地址对共享内存对象可用。
地址空间中的此冲突意味着尝试将共享内存对象附加至特定地址的进程可能无法完成任务,从而导致 shmat 子例程失败。但是,后续使用新进程重试共享内存附加时可能会成功。结果是一组随机失败。已知会见到此错误的一些进程包括:db2pd、db2egcf 和 db2vend。
此问题可能导致的一些错误包括以下各项:
db2pd 命令可能会报告找不到数据,即使实例或数据库处于活动状态。
db2egcf 进程(用于监视)可能会错误地确定实例已关闭并启动故障转移操作。
在备份和日志归档操作中,db2vend 进程可能会失败,并产生错误,指示未能启动子进程。
用户响应
通过设置以下内核参数来关闭随机化:
kernel.randomize_va_space=0
通过发出以下命令来临时禁用随机化并重新启动 DB2 实例:
echo 0 > /proc/sys/kernel/randomize_va_space
2、
WARNING:
The 32-bit library file libpam.so is not found on the system.
这个是DB2要求的一个32位的pam库
官网解释如下
Error description
The db2prereqcheck utility was enhanced to check for libpam.so
in DB2 version 9.7 FP6 via APAR IC78338 and the validation is
done by looking up "libpam.so" (either a file or a symbolic
link) on the system. The original approach was to look up the
file libpam.so.0 on system, however this would not work on
systems with updated PAM module. PAM module could be updated
from time to time and if we hard-coded db2prereqcheck to check
for libpam.so.0, then the check would fail on newer system where
the module might have updated to upper version like libpam.so.1.
In most case a symbolic link of libpam.so would be created to
point to latest version of libpam.so.x, hence have
db2prereqcheck to look for libpam.so (either a file or a symbol
link). This approach was to avoid any further issue with PAM
module upgrade on affected platform. However this may not work
on older system which has libpam.so.0 only.
Local fix
Create a symbolic link named libpam.so that points to
libpam.so.0:
参考IBM官方解决方案IC87092:http://www-01.ibm.com/support/docview.wss?rs=0&q1=IC87092&uid=swg1IC87092&loc=zh_CN&cs=utf-8&lang=
大概意思就是说,DB2会找libpam.so文件,通常会找lipan.so.0,但可能涉及不定期更新,因此需要手工做个软链接到最新的文件
以下是具体操作
安装PAM包
[root@centos-0 server]# yum -y install pam.i686
查到安装后生成的库文件