db2iupdt might fail with DBI1978E.

Technote (FAQ)


Question


Lets take an example where you are upgrading the db2 instance (db2inst1) from DB2 V10.1FP0 to DB2 V10.1FP2.

# ./db2iupdt db2inst1
DBI1446I The db2iupdt command is running.

DB2 installation is being initialized.

cat: cannot open /db2/db2inst1/sqllib/ctrl/.instuse
cat: cannot open /db2/db2inst1/sqllib/ctrl/.instuse

DBI1978E Update of instance db2inst1 is not supported.

Explanation:

The DB2 copy of the instance does not have the same version number as
the target DB2 copy. You can only update an instance from one copy to
another if both copies have the same version. To move a DB2 instance
between different versions, use the db2iupgrade command.

User response:

Make sure that the instance is valid for update and then try the command again with a valid instance name. A major error occurred during the execution that caused this program to terminate prematurely. If the problem persists, contact your technical service representative.

For more information see the DB2 installation log at "/tmp/db2iupdt.log.21627064".
DBI1264E Errors were encountered in running db2iupdt.
Please refer to the installation log file /tmp/db2iupdt.log.21627064 for more information.

Explanation:
All processed and failed operations have been saved into this log file.

User response:
Do not modify this file in any way. This file is for IBM Technical Support reference.
-------

Note that as of DB2 V9.7 .instuse file lies outside ctrl directory i.e in this case under /db2/db2inst1/sqllib. So, why is it looking for instuse under ctrl directory?

# cat /db2/db2inst1/sqllib/.instuse
BitWidth=64
RealBitWidth=64
DB2DIR=/db2/db2inst1/db2_v10_01
InstanceType=1
InstallerID=0
INSTVER=101
V=10
R=1
M=0
F=0
I=0
S=0

You can collect below outputs to debug this scenario :
1> db2 traces and script traces of failing db2iupdt command :
export setopts=-x
db2iupdt -d db2inst1 1> /tmp/db2iupdt.script.trc 2> /tmp/db2iupdt.script.trc

2> Global registry output by running 'db2greg -dump -g' command.

Once you have above data from db2 trace, you might see that the machine is having a DB2 V9.5 installation and due to which DB2 query that path to get the instance in that installation as seen below:

8254 ||||||||| 1 InstallProcess::executeLocal 90 -DATA- , STRING = /db2/db2inst1/db2_v9_05_04_sp22631/instance/db2ilist 1> /tmp/db2ioMSah7F 2> /tmp/db2ieMSah7G
8255 ||||||||| 1 InstallProcess::executeLocal 100 -DATA- , INT = 0
8256 ||||||||| 1 InstallProcess::executeLocal 110 -DATA- , STRING = WEXITSTATUS
8257 ||||||||| 1 InstallProcess::executeLocal 150 -DATA- , INT = 0
8258 ||||||||\ 1 InstallProcess::executeLocal EXIT Thu Aug 22 02:26:05 2013 -- , INT = 0
8259 |||||||\ 1 InstallProcess::execute EXIT Thu Aug 22 02:26:05 2013 -- , INT = 0
8260 |||||||/ 1 InstallProcess::exitCode ENTRY Thu Aug 22 02:26:05 2013 -- ,
8261 |||||||\ 1 InstallProcess::exitCode EXIT Thu Aug 22 02:26:05 2013 -- , INT = 0
8262 |||||||/ 1 InstallProcess::getStdOutputLength ENTRY Thu Aug 22 02:26:05 2013 -- ,
8263 ||||||||/ 1 iPutFileInBuffer ENTRY Thu Aug 22 02:26:05 2013 -- ,
8264 ||||||||| 1 iPutFileInBuffer 10 -DATA- , STRING = /tmp/db2ioMSah7F
8265 |||||||||/ 1 iFopen ENTRY Thu Aug 22 02:26:05 2013 -- ,
8266 |||||||||| 1 iFopen 10 -DATA- , STRING = /tmp/db2ioMSah7F
8267 |||||||||| 1 iFopen 20 -DATA- , STRING = rt
8268 |||||||||\ 1 iFopen EXIT Thu Aug 22 02:26:05 2013 -- , INT = 0
8269 ||||||||| 1 iPutFileInBuffer 20 -DATA- , STRING = db2inst1
8270 |||||||||/ 1 iFclose ENTRY Thu Aug 22 02:26:05 2013 -- ,
8271 |||||||||\ 1 iFclose EXIT Thu Aug 22 02:26:05 2013 -- , INT = 0
8272 ||||||||\ 1 iPutFileInBuffer EXIT Thu Aug 22 02:26:05 2013 -- , INT = 0
8273 |||||||\ 1 InstallProcess::getStdOutputLength EXIT Thu Aug 22 02:26:05 2013 -- , INT = 6
8274 |||||||/ 1 InstallProcess::getStdOutput ENTRY Thu Aug 22 02:26:05 2013 -- ,
8275 |||||||\ 1 InstallProcess::getStdOutput EXIT Thu Aug 22 02:26:05 2013 -- , INT = 0
8276 ||||||| 1 InstanceGlobalList::_assignType_lt98Ver 40 -DATA- , STRING = db2inst1

So /db2/db2inst1/db2_v9_05_04_sp22631/instance/db2ilist returned db2inst1.
In DB2 V9.5, db2ilist depends on profile.reg file present in install path to list the instances.

To come out this issue run /db2/db2inst1/db2_v9_05_04_sp22631/instance/db2iset -d db2inst1 or
edit the profiles.reg file and remove db2inst1 entry.
Then to check run /db2/db2inst1/db2_v9_05_04_sp22631/instance/db2ilist, this should return empty or should not show db2inst1.

Then run db2iupdt db2inst1 from DB2 V10.1FP2 path.


Answer

Rate this page:

(0 users)Average rating

Document information


More support for:

DB2 for Linux, UNIX and Windows

Software version:

9.5, 9.7, 9.8, 10.1, 10.5

Operating system(s):

AIX, HP-UX, Linux, Solaris, Windows

Reference #:

1649500

Modified date:

2013-09-11

Translate my page

Machine Translation

Content navigation