DB2函数get_dbsize_info出错问题

  • A+
所属分类:数据库

温馨提示:史上最大、最贵的iPhone已上线,再不多学点技术就只能割肾了! 

b2 v9.7 fp8升级到补丁fp11

升级实例成功

数据库升级使用db2upgradev97命令正常

但其中有一个数据库执行部分函数报错

其他数据库正常 

例如有错误:

$ db2 "call get_dbsize_info(?,?,?,-1)"

SQL0443N  Routine "GET_DBSIZE_INFO" (specific name "") has returned an error 

SQLSTATE with diagnostic text "SQL0001 

Token:/home/db2inst1/sqllib/bnd/st_admin.bnd".  SQLSTATE=38553

DB2函数get_dbsize_info出错问题

问题分析


   查看db2diag.log:

DB2函数get_dbsize_info出错问题

此类错误跟DB2软件自身有关,而非用户数据问题。

DB2函数get_dbsize_info出错问题

   检查ibm官网的案例并进行处理

查到几乎完全匹配的案例:

http://www-01.ibm.com/support/docview.wss?uid=swg21637888

根据案例进行处理:

使用实例用户重新绑定系统对象,但问题没有解决,报一些权限问题,手工执行grant也是报权限问题。

DB2函数get_dbsize_info出错问题

观察SQL0551N 的错误,也都是权限问题,而当前的用户是实例用户,一般情况下也都是拥有数据库的最高权限。

   继续分析


发现需要用数据库创建者进行执行,检查syscat.dbauth发现,数据库创建者不是实例用户db2inst1而是db2admin,ibm官网的案例中只是简单的指出要用实例用户来操作,有欠周全。

DB2函数get_dbsize_info出错问题

   重新修订数据库内部的无效数据对象:


DB2函数get_dbsize_info出错问题

以前无法修复的无效对象,现在已经能够完全修复了。

   收尾操作,重新绑定所有的包

$ db2rbind gycc -l /tmp/gycc.out

 Rebind done successfully for database 'GYCC'.

另外,该问题在升级之前是已经存在的


原本以为升级补丁后会修复该问题,最终发现并没有解决。所以,建议升级数据库之前,将数据库的问题预先修复好了再进行升级。

///

   作者:赵海潮

2008年入职银信科技,长期服务于金融行业IT系统维护,擅长IBM硬件产品维护,包括小型机、存储、SAN、磁带库等设备,同时熟悉DB2、Informix、AIX、TSM、MQ等软件产品运维,对EMC存储以及其他IT产品也有一定的了解。

avatar

发表评论

您必须才能发表评论!