今天在生产机上做fixpack的升级。
一开始觉得问题应该不大,当然备份也已经做了,没曾想./installFixPack 命令发出后,漫长等待了执行到step 50,卡了很久(我这是DB2 V11.1),
然后窗口超时。。。。退出了。
无奈重新进入,想着刚才的./installFixPack也没执行完,就再执行一次,可这报错就来了!
root:/db2data/universal # ./installFixPack -b /opt/ibm/db2/V11.1
DBI1131E The user ID ERROR: is invalid.
Explanation:
An attempt to access the given user ID failed. One of the following
situations has occurred:
* This user ID does not exist on the system.
* The home directory of this user does not exist or is not set up
properly.
* One of the user attributes needed by the database manager is unset.
* The UID of this user is 0
User response:
Make sure a valid user ID with valid home directory, shell, primary
group and secondary group has been used. Create a new user if necessary.
Related information:
Creating group and user IDs for a DB2 database installation (Linux
and UNIX)
DB2 users and groups (Linux and UNIX)
The user ID ERROR: is invalid. 这是什么鬼!这究竟啥意思。。。
然后就各种检查,差点就打算要重新卸载DB2再安装了,反正有备份,俺们不怕!
突然在检查的过程中,输了db2ilist,一堆乱七八糟的东西就出来了
db2inst1@myserver:~> db2ilist
ERROR: The embedded runtime path in /opt/ibm/db2/V11.1/bin/db2 is incorrect:
/DoNotCreateThisPath_marker1_for_chglibpath:/view/db2_v111m4if1_linuxamd64_special_38505_special_38747/vbs/INST/lib:/view/db2_v111m4if1_linuxamd64_special_38505_special_38747/vbs/INST/lib/gskit:/view/db2_v111m4if1_linuxamd64_special_38505_special_38747/vbs/engn/lib:/view/db2_v111m4if1_linuxamd64_special_38505_special_38747/vbs/common/lib/Linux_AMD64:/view/db2_v111m4if1_linuxamd64_special_38505_special_38747/vbs/das/lib/Linux_AMD64:/view/db2_v111m4if1_linuxamd64_special_38505_special_38747/vbs/engn/lib/bldsupp:/view/db2_v111m4if1_linuxamd64_special_38505_special_38747/vbs/system/fm/lib/Linux_AMD64:/fillspacexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:/fillspacexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:/fillspacexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:/fillspacexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:/fillspacexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:/fillspacexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:/fillspacexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:/marker2_for_chglibpath:/opt/ibm/db2/V11.1/lib64:/opt/ibm/db2/V11.1/lib64/gskit
ACTION: Please run /opt/ibm/db2/V11.1/install/db2chgpath and rerun the previous command.
Contact IBM Support if the problem persists.
各位请注意这句话,我一开始开到一堆东西晕得,差点漏掉,导致我在尝试做db2idrop也是报错,回头来仔细看才发现有这么一句话! 划重点。
然后就照着执行了!
root:/opt/ibm/db2/V11.1/instance # /opt/ibm/db2/V11.1/install/db2chgpath
The output will be saved in /db2data/tmp/db2chgpath.log.18982
Starting the update of runtime path ...
Sat Oct 26 23:00:52 AEDT 2019
Changing the embedded runtime path for DB2 deliverables installed
under /opt/ibm/db2/V11.1 from /opt/ibm/db2/V11.1/ to /opt/ibm/db2/V11.1/
---> Please wait
这一步等了大概有20分钟。。。。
Output was saved in the log file /db2data/tmp/db2chgpath.log.18982
Sat Oct 26 23:10:23 AEDT 2019
Program db2chgpath completed successfully.
貌似有什么成功了?
回过头进入实例,执行db2ilist, 哎! 这次那对乱七八糟的东西不见了。
root:/opt/ibm/db2/V11.1/instance # su - db2inst1
db2inst1@myserver:~> db2ilist
db2inst1
db2inst1@myserver:~> logout
那我们再执行一次安装。鉴于前面安装了一半,这里需要加上-f level强制其在同版本中覆盖安装。
(这里有个要注意的地方,如果你没有export tmp的路径,可能你当前的tmp目录会有权限不够的情况,建议先提前创建一个tmp,并export到指定的临时目录)
myserver:/opt/ibm/db2/V11.1/instance # cd /db2data/universal/
myserver:/db2data/universal # export DB2TMPDIR=/db2data/tmp
myserver:/db2data/universal # ./installFixPack -f level -b /opt/ibm/db2/V11.1
Do you want to choose a different installation directory for the fix pack? [yes/no]
------------------------------------------------------------------------------------
no
DBI1017I installFixPack is updating the database products installed in
location /opt/ibm/db2/V11.1.
DB2 installation is being initialized.
然后然后然后就成功了!!!