1

On Red Hat 8.8 I have Db2 v11.5.8.0 installed and database is working fine.

  1. Today I downloaded v11.5.9.0 and unpacked the tar file.
  2. I executed db2prereqcheck and all prerequisites are met. Successful.
  3. Installed Db2 using db2_install command. Successful.
  4. Upgraded instance with db2iupdt command. Successful.
  5. Then I tried to start up an instance with db2start and error: db2start: error while loading shared libraries: libaws-cpp-sdk-transfer.so: cannot open shared object file: No such file or directory

It looks some library is missing. I try to search the web, but can't find how to install this library. Any idea?

2 Answers 2

1

I have figured out what was wrong and solved the problem.

Actually my Linux distribution is Rocky Linux 8.8 on this test machine. I am using Rocky Linux for few years now without any issue on Db2 server. But... in v11.5.9.0 this is the source of the problem. Despite Rocky Linux is bug-to-bug compatible with Red Hat 8.8, there can still be a problem. For example because /etc/os-release where name and version of distribution is written, it is still different between Rocky Linux and Red Hat.

Now to the problem. What it looks like Db2 v11.5.9.0 adds some Amazon libraries in installation, but they depend on Linux distribution name and version!!!

To check the library that is returning error:

sudo find / -name libaws-cpp-sdk-core.so

the following paths are returned (on Db2 v11.5.9.0 on Red Hat 8.8 or Red Hat 9.3).

/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/UBUNTU/20.04/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/UBUNTU/22.04/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/UBUNTU/18.04/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/8.1/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/9.2/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/RHEL/7.6/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/SLES/12.4/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/awssdk/SLES/15.1/libaws-cpp-sdk-core.so
/opt/ibm/db2/V11.5.9fp0/lib64/libaws-cpp-sdk-core.so

Above files are created by Db2 v11.5.9.0 installation! Notices the path names contain Linux distributions names. The catch is in last file, actually it is Linux symbolic link that on different Linux distributions points to different above file path. On Red Hat 8.8 it points to awssdk/RHEL/8.1/libaws-cpp-sdk-transfer.so path, on Red Hat 9.3 it points to path awssdk/RHEL/9.2/libaws-cpp-sdk-transfer.so.

But on Rocky Linux 8.8 and Rocky Linux 9.2 this symbolic link is not created by Db2 v11.5.9.0 installation. It is missing.

I also checked for other libaws*.so libraries and found few of them.

On Rocky Linux 8.8 using Db2 v11.5.9.0 I created the following symbolic links:

cd /opt/ibm/db2/V11.5.9fp0/lib64
sudo ln -s awssdk/RHEL/8.1/libaws-cpp-sdk-core.so libaws-cpp-sdk-core.so
sudo ln -s awssdk/RHEL/8.1/libaws-cpp-sdk-kinesis.so libaws-cpp-sdk-kinesis.so
sudo ln -s awssdk/RHEL/8.1/libaws-cpp-sdk-s3.so libaws-cpp-sdk-s3.so
sudo ln -s awssdk/RHEL/8.1/libaws-cpp-sdk-transfer.so libaws-cpp-sdk-transfer.so

On Rocky Linux 9.3using Db2 v11.5.9.0 I created the following symbolic links

cd /opt/ibm/db2/V11.5.9fp0/lib64
sudo ln -s awssdk/RHEL/9.2/libaws-cpp-sdk-core.so libaws-cpp-sdk-core.so
sudo ln -s awssdk/RHEL/9.2/libaws-cpp-sdk-kinesis.so libaws-cpp-sdk-kinesis.so
sudo ln -s awssdk/RHEL/9.2/libaws-cpp-sdk-s3.so libaws-cpp-sdk-s3.so
sudo ln -s awssdk/RHEL/9.2/libaws-cpp-sdk-transfer.so libaws-cpp-sdk-transfer.so

Then started the Db2 instance with db2start command and database instance starts up without an issue.

Note: In few days I have installed Db2 v11.5.9.0 on following distributions: Red Hat 8.8, Red Hat 9.3, Rocky Linux 8.8 and Rocky Linux 9.3 and now Db2 is up and running on all of them without an issue.

Two points are interesting:

  • Rocky Linux is bug-to-bug identical to Red Hat, but this does not the guarantees software is really going to work the same.
  • IBM is adding some Amazon libraries to Db2 that I do not need, because I am running Db2 on-premis.
0

Make sure you have libxml2 and libcurl installed. These packages are required but are not validated with db2prereqcheck.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.