db2iupgrade / db2ckupgrade failure due to SQL0551N

Troubleshooting

Problem

db2iupgrade or db2ckupgrade fail due to SQL0551 database authorization error.
SQL0551N The statement failed because the authorization ID does not have the required authorization or privilege to perform the operation. Authorization ID: "DB2INST2". Operation: "EXECUTE". Object: "SYSPROC.ENV_GET_REG_VARIABLES". SQLSTATE=42501

Symptom

When db2iupgrade is executed, it will run db2ckupgrade to ensure each of the databases belonging to the DB2 instance can be upgraded. The example log is from v10.5 to v11.1 upgrade and confirms SAMPLE1 can be upgraded successfully, but it fails for SAMPLE2 so db2iupgrade fails.
db2iupgrade log
Version of DB2CKUPGRADE being run: VERSION "11.1"
Database: "SAMPLE1"
DBT5542I The db2ckupgrade utility has successfully put the database in upgrade pending state.
DBT5537I The db2ckupgrade utility has completed processing for database "SAMPLE1".
Database: "SAMPLE2"
[IBM][CLI Driver][DB2/AIX64] SQL0551N The statement failed because the authorization ID does not have the required authorization or privilege to perform the operation. Authorization ID: "DB2INST2". Operation: "EXECUTE". Object: "SYSPROC.ENV_GET_REG_VARIABLES". SQLSTATE=42501

Cause

The instance owner does not have EXECUTE authority. Normally instance owner does not have DBADM authority if it was not the original creator of the database. This often occurs when restoring database to another system with a different instance user id.
SQL0551N The statement failed because the authorization ID does not have the required authorization or privilege to perform the operation. Authorization ID: "DB2INST2". Operation: "EXECUTE". Object: "SYSPROC.ENV_GET_REG_VARIABLES". SQLSTATE=42501

Resolving The Problem

In this example we grant DBADM to instance owner since there may be other routines (stored procedures / user defined functions) which require EXECUTE or DBADM authority. The alternative is to issue "GRANT EXECUTE ON ... TO USER DB2INST2" from a user with DBADM authority then re-issue db2iupgrade or db2ckupgrade to see if SQL0551 is returned for a different routine.

db2 "connect to SAMPLE2"

db2 "select grantor, grantee, dbadmauth from syscat.dbauth"

db2 "connect reset"

This will show the user id which has DBADM authority in the GRANTEE column.

Then login as user id with dbadm authority to grant instance id "DB2INST2"

db2 "connect to SAMPLE2 user <DBADM userid>"

db2 "grant dbadm on database to user DB2INST2"

db2 "connect reset"

Then see if SQL0551 has been resolved.

<New version being upgraded to>/bin/db2ckupgrade SAMPLE2

Notes

  • Always run db2ckupgrade from the version to be upgraded to. For example when upgrading from v10.5 to v11.5, run db2ckupgrade from v11.5 installation directory.
  • Ensure root account running db2iupgrade is not sourcing  environment variables like $PATH, $LIBPATH (AIX), $LD_LIBRARY_PATH (Linux) from <DB2 instance>/sqllib/db2profile. In some cases, users do this so that root user can start, stop DB2 instance. But this will cause problems with db2iupgrade, since the environment variables will point to old version of DB2 instead of new version.
  • ------------------------------------------------------------------------------------------
    如果你觉得文章有用,欢迎打赏

db2iupgrade / db2ckupgrade failure due to SQL0551N的更多相关文章

  1. 解决MySQL连接超时Communications link failure due to underlying exception

    最近在用一个MySQL的Java连接池的过程中,连接一晚上不释放,第二天就会造成超时的错误,查了一下原因,原来是因为MySQL默认的空闲等待时间是8个小时,一旦空闲超过8个小时,就会抛出异常.异常文本 ...

  2. SSH项目过一段时间之后再访问会报一次Could not open Hibernate session for transaction 异常,Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlyi,再重新方法即可访问成功(通常出现在过了一晚之后再去访问系统)

    前端时间到客户那去进行项目的上线测试,将项目部署好之后,运行都是正常的,可是每到了第二天早上访问的时候,就会报一个Could not open Hibernate session for transa ...

  3. Communications link failure due to underlying exception异常处理(转)

    最近的一个项目在Hibernate使用C3P0的连接池,数据库为Mysql.开发测试没有问题,在运行中每个一段长的空闲时间就出现异常: java 代码 org.hibernate.exception. ...

  4. 解决mysql连接异常—-com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception

    DBCP连接池连接MySql数据库时,一奇葩数据库设置为30秒内无请求自动断开.超时后链接无法关闭,活动链接数飞奔,最后挂掉. 网上找了一圈,一般是这三种,方法一pass,方法二测试无效可能设置错了吧 ...

  5. Communications link failure due to underlying exception: ** BEGIN NESTED EXC

    一是将 wait_timeout=31536000 interactive_timeout=31536000 将过期时间修改为1年. 二是在连接URL上添加参数:&autoReconnect= ...

  6. Communications link failure报错的处理

    一.报错的问题: 测试环境在做压力测试的时候爆出错误 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications l ...

  7. mysql交互式连接&非交互式连接

    交互式操作:通俗的说,就是你在你的本机上打开mysql的客户端,就是那个黑窗口,在黑窗口下进行各种sql操作,当然走的肯定是tcp协议. 非交互式操作:就是你在你的项目中进行程序调用.比如一边是tom ...

  8. Intel VT入门

    前言     传说中的VT貌似很神秘的样子,关于VT入门的资料又很少,于是研究了一番 由于资源有限,自身水平亦有限,并且是闭门造车之作,如有错误的地方请指正,不胜感激! 关于VT可以先参考海风月影写的 ...

  9. 【转载】Tomcat崩溃事件

    转载地址:http://www.blogjava.net/tedeyang/archive/2008/06/04/205740.html Tomcat崩溃事件 今天一大早产品一部项目经理就来找我,他们 ...

  10. 【转】c3p0详细配置

      官方文档 : http://www.mchange.com/projects/c3p0/index.html <c3p0-config><default-config>&l ...

随机推荐

  1. mybatis动态标签——where、if

    mapper接口 public interface EmpMapper { List<Emp> getEmp(Emp emp); } mapper.xml <?xml version ...

  2. Windows常用快捷键(但我本人不太熟知的)

    Shift+Ctrl+ESC: 打开任务管理器 Windows+E: 打开文件资源管理器 Windows+R: 运行文件 Windows+Tab: 切换应用程序 Shift+Delete: 永久删除

  3. 安装pytorch报错 ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device

    windos安装,报错如下 看了不少回答,大概是缓存和内存满了 我的C盘只给了70G,然后意外发现只剩下3G多了,先用系统自带的清理工具清理了一下,然后腾讯电脑管家"工具箱"中的& ...

  4. JDK8在xp安装办法

    jdk默认不支持xp,用到了后来的api,直接没法安装. 具体安装步骤: 1.用7-zip打开jdk8的版本8u231之前的版本. 2.导航到 .rsrc\1033\JAVA_CAB10\111把里面 ...

  5. Android FragmentTabHost底部选项卡实现

    记录一下底部选项卡的实现,很常见的代码,大神勿嘲笑. 说一下思路,在activity底部要放上FragmentTabHost放上选项,几个无所谓,每个选项卡都对应一个fragment,点击选项卡颜色改 ...

  6. mysql的数据操作

    INSERT [INTO] 表名 [(字段名1,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),... 说明:主键列是自动增长,但是在全列插入时 ...

  7. Java实现简单薪水计算器相关操作代码

    /** * 薪水计算器 * 1.通过键盘输入用户的月薪,每年是几个薪水 * 2.输出用户年薪 * 3.输出一行字"如果年薪超过10万,恭喜你超越了90%的国人:如果年薪超过了20万,恭喜你超 ...

  8. java运算符相关学习

    java运算符 面试题1: 计算2*8如何操作效率更高? 剖析: 2 * 8 => 实际上是2 * 2 * 2 * 2 2<<3 System.out.println(2<&l ...

  9. Apache druid笔记

    Apache Duid学习笔记2 1.历史节点的查询效率与内存数据比成正比,内存越大则读取磁盘的次数越少, 历史节点内存越大总数据量越小则查询速度越快. 2.缓存机制可以选择外部和内部缓存,外部缓存如 ...

  10. FileChannel 数据传输(文件拷贝)

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...