IBM DB2的新版本Stinger已经发布有一段时间了,从名字就可以嗅出火药味,Stinger,不知道是否真的能够刺痛对手的神经。虽然作为一个数据库的使用者——一个全部工作几乎都与数据库相关的人——的确应该关心自己所使用的软件产品是否会有一个更加光明的未来,但这似乎不用更多怀疑,把视线从冒着硝烟的战场挪开,放回到我们应该真正关心的事情上来,无论是DB2、Oracle,或是其它。
从v8.1升级到Stinger,即v8.2版本,只需要安装FixPack 级别7,简称FP7。升级到FP6的路并不十分好走,可参见另一篇文章:
http://www.aiview.com/notes/db2_fp6_upgrade.htm
照例,升级之前首先仔细阅读升级包附带的说明文档。
升级包与说明文档的下载地址如下:
ftp://ftp.software.ibm.com/ps/products/db2/fixes/
进入后选择合适的语言、版本以及升级包级别,我的升级环境是32位PC服务器,RH Linux系统,对于我的系统所合适的文件地址如下:
ftp://ftp.software.ibm.com/ps/products/db2/fixes/english-us/db2linuxIA32v8/fixpak/FP7a_MI00086/FP7a_MI00086.tar
ftp://ftp.software.ibm.com/ps/products/db2/fixes/english-us/db2linuxIA32v8/fixpak/FP7a_MI00086/FixPackReadme.txt
升级包超过700M,最好使用断点续传工具下载。
下载完成后,把升级包转移到/tmp目录
$ mv FP7a_MI00086.tar /tmp
$ cd /tmp
查询一下包
$tar -tvf FP7a_MI00086.tar
发现文件不是在同一个目录当中,所以新建一个目录:db2fp7
$mkdir db2fp7
然后把文件解开放到新建的目录中
$ tar -xvf FP7a_MI00086.tar -C db2fp7
已经看过了升级说明文件,做安装前的准备工作。
升级DB2需要脱机进行,首先转到数据库管理员用户
$su - iname
iname 是你的实例名,也是管理这个实例的用户,使用带force参数的命令停止实例
$db2stop force
接下来停止许可证服务
$db2licd end
停止DAS服务
$exit
$su - aname
aname 是DAS所有者的用户名
$db2admin stop
$exit
如果错误监视服务正在运行,也需要停止,使用如下命令查询服务状态(需要root权限)
$su -
#/bin/db2fmcu
是你db2系统文件的安装路径,比如:/opt/IBM/db2/V8.1
如果此服务正在运行,会返回类似如下输出:
FMC: up: PID = 763
否则输出:
FMC: down
使用如下命令停止服务
#/bin/db2fmcu -d
最后查看是否还有正在运行的db2相关进程,如果有其他db2进程运行,可能会导致升级失败。
# ps -aux |grep db2
如果有,杀掉
kill -s 9
准备工作已经完成,准备开始升级,需要在root用户下执行升级工作。
# cd /tmp/db2fp7
# ./installFixPak -y
接下来需要等待一会,待提示升级成功之后,需要升级实例和DAS,同样需要root权限
# /instance/db2iupdt iname
# /instance/dasiupdt dasname
接下来重新启动实例
# exit
$ su - db2
$ db2stop
$ db2start
升级工作至此完成,查看是否可以正常连接到样本数据库以及版本信息
$ db2 connect to sample
Database Connection Information
Database server = DB2/LINUX 8.2.0
SQL authorization ID = DB2
Local database alias = SAMPLE