NetWorker: NMC restore (recoverpsm) fails on a Linux server due to missing libraries
摘要: During an NMC database (nmcdb) restore with recoverpsm, a failure is returned stating that the operation cannot find libdbodbc12_r.so.
症状
NetWorker Management Console (NMC) database restore (recoverpsm) fails with the following error on a Linux server:
root@nmcserver:/opt/lgtonmc/bin# ./recoverpsm
ld.so.1: recoverpsm: fatal: libdbodbc12_r.so: open failed: No such file or directory
Killed
原因
In this example, the library link for libdbodbc12_r.so is broken or missing.
The same type of failure can occur if another library is unlinked.
解决方案
The steps in this KB assume that the NMC has been installed under the default Linux/UNIX location: /opt/lgtonmc. If you have installed the NMC under a different location, make the necessary changes to all commands shown in this KB for your environment.
1. List the dynamic dependencies used by the recoverpsm binary:
ldd /opt/lgtonmc/bin/recoverpsm
root@nmcserver:/opt/lgtonmc/bin# ldd /opt/lgtonmc/bin/recoverpsm
libdl.so.1 => /lib/64/libdl.so.1
libdbodbc12_r.so => (file not found)
libdbtasks12_r.so => (file not found)
libsocket.so.1 => /lib/64/libsocket.so.1
libnsl.so.1 => /lib/64/libnsl.so.1
libresolv.so.2 => /lib/64/libresolv.so.2
libpthread.so.1 => /lib/64/libpthread.so.1
libthread.so.1 => /lib/64/libthread.so.1
librt.so.1 => /lib/64/librt.so.1
libCstd.so.1 => /usr/lib/64/libCstd.so.1
libCrun.so.1 => /usr/lib/64/libCrun.so.1
libm.so.2 => /lib/64/libm.so.2
libc.so.1 => /lib/64/libc.so.1
libmp.so.2 => /lib/64/libmp.so.2
libmd.so.1 => /lib/64/libmd.so.1
libcryptoutil.so.1 => /lib/64/libcryptoutil.so.1
2. You can confirm the library location with the Linux/UNIX find command:
find / -name libdbodbc12_r.so
root@nmcserver:/opt/lgtonmc/bin# find / -name libdbodbc12_r.so
/opt/lgtonmc/sybasa/lib/libdbodbc12_r.so
3. Link the library with the Linux/UNIX export command:
export LD_LIBRARY_PATH=/opt/LGTOnmc/sybasa/lib/:/opt/LGTOnmc/bin/recoverpsm
4. Now ldd should report the library location for libdbodbc12_r.so:
ldd /opt/lgtonmc/bin/recoverpsm
root@nmcserver:/opt/LGTOnmc/bin# ldd /opt/LGTOnmc/bin/recoverpsm
libdl.so.1 => /lib/64/libdl.so.1
libdbodbc12_r.so => /opt/LGTOnmc/sybasa/lib//libdbodbc12_r.so
libdbtasks12_r.so => /opt/LGTOnmc/sybasa/lib//libdbtasks12_r.so
libsocket.so.1 => /lib/64/libsocket.so.1
libnsl.so.1 => /lib/64/libnsl.so.1
libresolv.so.2 => /lib/64/libresolv.so.2
libpthread.so.1 => /lib/64/libpthread.so.1
libthread.so.1 => /lib/64/libthread.so.1
librt.so.1 => /lib/64/librt.so.1
libCstd.so.1 => /usr/lib/64/libCstd.so.1
libCrun.so.1 => /usr/lib/64/libCrun.so.1
libm.so.2 => /lib/64/libm.so.2
libc.so.1 => /lib/64/libc.so.1
libw.so.1 => /lib/64/libw.so.1
5. Attempt to restore the NMC database:
NetWorker: How to Recover the NMC database?
6. Start the GST service:
systemctl start gstps -ef | grep gst
root@nmcserver:/opt/lgtonmc/bin# systemctl start gst root@nmcserver:/opt/lgtonmc/bin# ps -ef | grep gst root 1895 1793 0 14:31:40 pts/1 0:00 grep gst root 1893 1888 0 14:23:37 ? 0:00 /opt/lgtonmc/bin/gstsnmptrapd -d -Le -f -C -c /opt/lgtonmc/etc/snmptrapd.conf root 1888 1 0 14:23:14 ? 0:01 /opt/lgtonmc/bin/gstd