案例:
行方有一套DB2 10.5.5 for Linux,拟升级到10.5.9,之前曾经尝试升级到10.5.8,使用命令:/opt/IBM/db2/V10.5.8/instance/db2iupdt <instanceid> 升级instance时看似一起正常,没有任何报错,但su - <instanceid>后使用db2level查看发现instance还是10.5.5版本,连接到数据库后显示数据库的版本也是10.5.5。
准备工作:
由于上次升级出现的诡异情况,我们有理由相信同样情况还有可能再次发生,所以考虑了第二套方案:万一升级失败,则采用删除再重建实例的方式升级。准备工作如下:
1. 备份instance相关文件
db2 get dbm cfg > dbmcfg.txt
db2set -all > db2set.txt
db2 list db directory > db.dirct.txt
db2 list node directory > node.dirct.txt
2. 将这些信息转换成相关的命令
如update dbm cfg,db2set,catalog tcpip node,catalog db。
3. 如果是多分区数据库,则需要备份~<instname>/sqllib/db2nodes.cfg
实施过程:
1. 停实例并删除原来的instance
db2stop force;ipclean –a
root:
/opt/ibm/db2/V10.5.5/instance/db2idrop < Instance id>
2. 创建实例
/opt/ibm/db2/V10.5.9/instance/db2icrt -u <Fence id> < Instance id>
3. 用Instance id跑《准备工作步骤2》中生成的命令
4. 如果是多分区数据库,则需要还原~<instname>/sqllib/db2nodes.cfg
5. 启动实例,激活数据库并绑包
db2start
db2 activate database <DBNAME>
db2 CONNECT TO <DBNAME>
cd ~<instname>/sqllib/bnd
db2 BIND db2schema.bnd BLOCKING ALL GRANT PUBLIC SQLERROR CONTINUE
db2 BIND @db2ubind.lst BLOCKING ALL GRANT PUBLIC ACTION REPLACE
db2 BIND @db2cli.lst BLOCKING ALL GRANT PUBLIC ACTION REPLACE
db2 terminate
db2rbind <DBNAME> -l db2rbind.log
结果:
检查数据库发现一起正常,通知开发验证也没有任何问题,升级成功。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/75336/viewspace-2148384/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/75336/viewspace-2148384/