暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

db2v9.5fp1升级db2v10.5过程--导库结构

Oracle行者 2021-04-28
832

先上靓照一张。

版本db2 v9.5.0.1 64

SunOS SPARC 5.10

三个database: TEST ,HNEAS,TDEAS.test不用,测试时建的,年代久远,也没人去清理了。由于db2 database无连接时,会处理inactive状态,不会分配缓冲池,所以不耗费服务器资源,所以也没删除。

该主机上只有一个实例。

db2一个主机允许多个实例,一个实例可以加载多个数据库。这个和oracle db不一样的哈。oracle一个实例只能加载一个数据库。

先说一下(一般情况的)整体思路:

1.通过db2look导数据库结构

2.通过db2move导数据库数据

3.将数据库结构db2look.sql和数据打包传到新主机

4.db2 -tvf 跑脚本建库

5.db2move 导入数据

由于我们这个库有点特殊,v9.5db2beta版本,我们启用了一个特性--兼容oracle特性

一些数据库厂商为了增强自身竞争力,兼容对手特定sql语法。很不幸,db2v9.5的这个特性由于bug太多,于db2v9.5 fp4取消了。也就是说,db2v9.5fp1-db2v9.5fp3这个兼容性运行还行。但到v9.5fp4-v9.5fp11这个特性取消了!然后直到db2v9.7这个特性才开启。所以db2v9.5一旦启用oracle兼容性,且用到这个特性,数据库无法进行小版本升级!

而且,这个bug导致一个很棘手的问题---导致db2look无法导出全库脚本。

我们看一下这个开关:

下一步,db2look 导结构:

这个大致意思是有一个内部对象报错。

 

针对这个我采用一个ibm 800提供修改过的db2look包。这个包能够忽略这样的内部对象。

但这个也有一个副作用,就是导出来的结构,有很多有问题--针对存储过程以及函数定义,涉及回车换行符都没转换,导致sql脚本无法执行。所得逐个将回车换行符进行手工替换。

 

我们看一下这个ibm 800提供的修改过的db2look包。

这个db2look包含三个文件,db2lkfun.bnd,db2look.bnd,db2look

db2look 导脚本之前,要先执行:db2lkfun.bnd,db2look.bnd修改数据库对象。

然后通过db2look导库

成功导出hneas.

再导另一个库:

然后将两个库结构脚本拿回改吧改吧。改到无错能顺序执行为止。




 

关注古月,每天都有新分享!哦不,每两天吧。。。每周吧最近好盲


文章转载自Oracle行者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论