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

记一次DB2数据库import数据报错

IT那活儿 2021-02-27
2507
点击上方蓝字关注我们

一、报错原因

快下班的的时候突然应用找到我们说他们通过import工具进行入数据的时候报错,然后这批数据很紧急,需要我们抓紧时间解决。

问报什么错,应用侧发过来一个错误代码

SQL0805N  Package "NULLID.SQLUFH13 0X4141414141594758" was not found.

SQLSTATE=51002

从上述错误消息中,缺少的软件包是NULLID.SQLUFH13,它对应于db2uimpm.bnd。

二、解决问题

这个库是新装的,应该没有绑定这个程序包,就查下这个包在数据库里是不是存在

db2 "SELECT PKGSCHEMA, PKGNAME, PKGVERSION,UNIQUE_ID FROM SYSCAT.PACKAGES WHERE PKGSCHEMA= 'NULLID' and PKGNAME='SQLUFH13'"

要解决此问题,需要通过绑定标识的绑定文件来创建丢失的程序包。

执行一下命令进行绑定

cd~/sqllib/bnd

db2connect to test

db2bind db2uimpm.bnd blocking all grant public sqlerror continue

绑定完成没有报错,那就在检查一下这个包是都存在

发现还是不存在,就有点疑惑了,就想应用侧既然不能用import工具入数据,我建个测试表看看能不能入呢

过程如下:

1、新建一张表

db2"create table t3 (col1 char(10), col2 int ) in ts4"

2、创建几行数据

[db2inst1@db11~]$ cat t4.del

"aaaa",1

"bbbb",2

"cccc",3

3、import入数据

db2"import from t4.del of del insert into t4"

4、查看数据

db2"select * from t4"

一遍流程,如行云流水般顺畅,没有报错啊这就奇怪了,让应用侧在重新import下在试试,发现还是报错。

到应用主机看了下,发现应用的客户端是DB2的V9.7版本,而我们的服务器版本是V11.1的版本,难道是因为版本不一致的问题,造成的这个报错,到这时突然想到因为版本不一致难道需要在客户端执行绑定命令,来把这个程序包绑定到服务器端,就在客户端执行下绑定命令

绑定完成后在服务端在检查下

发现有这个程序包了,让应用侧测试了下,反馈可以正常import数据了

当然也可以在客户端执行这个命令

db2bind @db2ubind.lst blocking all grant public

会把客户端用到的所有的程序包都绑定一下,可以根据需求单独绑定,如果不知道绑定哪一个程序包,就可以使用这个命令.

END

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

评论