Install IBM Db2 Community Edition on Amazon EC2 (Ubuntu)

Nowsath - Sep 15 - - Dev Community

In this tutorial, we'll guide you through the step-by-step process of installing IBM Db2 Community Edition on an Amazon EC2 Ubuntu instance. We'll cover everything from setting up the EC2 instance to configuring Db2 and creating your first database.

IBM Db2 Community Edition is a cloud-native database designed to deliver low-latency transactions and high resilience for both structured and unstructured data. As an entry-level edition of the Db2 data server, it's tailored for developers and partners to explore the capabilities of Db2 in a cost-effective manner.

Available for Linux, Windows, AIX, and as a Docker image, Db2 Community Edition offers a comprehensive feature set, including core Db2 functionalities. While it is limited to up to 4 cores and 16 GB RAM, it provides a solid foundation for building and testing applications.

Security is a top priority with Db2 Community Edition, featuring always-on security measures to protect your data. Additionally, the community-driven support model ensures that you have access to helpful resources and assistance from fellow developers.

Prerequisites

  1. Setup an EC2 instance of type t2.medium
  2. Ubuntu 22.04 LTS as AMI
  3. 30 GB of hard disk space
  4. Open port 22 for SSH and 25000 for Db2
  5. Create an IBM account for downloading Db2 community edition

Installation Steps

I. Login to your EC2 instance and verify the distribution version.

$ cat /etc/os-release 
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

Enter fullscreen mode Exit fullscreen mode

II. Copy the downloaded latest IBM Db2 Linux (x64) version to EC2 instance and extract it.

$ tar -xzvf v11.5.9_linuxx64_server_dec.tar.gz

$ ls
server_dec  v11.5.9_linuxx64_server_dec.tar.gz

Enter fullscreen mode Exit fullscreen mode
  • Inside the server_dec directory, you can see following list of files.
~/server_dec$ ls
db2
db2_deinstall
db2_install  
db2checkCOL.tar.gz  
db2checkCOL_readme.txt  
db2ckupgrade  
db2ls  
db2prereqcheck  
db2setup  
installFixPack

Enter fullscreen mode Exit fullscreen mode

III. From server_dec directory, Run db2prereqcheck command to check the prerequisite requirements for installing Db2.

~/server_dec$ sudo ./db2prereqcheck

==========================================================================

Sun Sep 15 16:37:59 2024
Checking prerequisites for DB2 installation. Version "11.5.9.0". Operating system "Linux" 

Validating "kernel level " ... 
   Required minimum operating system kernel level: "3.10.0". 
   Actual operating system kernel level: "6.5.0". 
   Requirement matched. 

Validating "Linux distribution " ... 
   Required minimum "UBUNTU" version: "16.04" 
   Actual version: "22.04" 
   Requirement matched. 

Validating "Bin user" ... 
   Requirement matched. 

Validating "C++ Library version " ... 
   Required minimum C++ library: "libstdc++.so.6" 
   Standard C++ library is located in the following directory: "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30". 
   Actual C++ library: "CXXABI_1.3.1" 
   Requirement matched. 


Validating "32 bit version of "libstdc++.so.6" " ... 
   Found the 64 bit "/lib/x86_64-linux-gnu/libstdc++.so.6" in the following directory "/lib/x86_64-linux-gnu". 
DBT3514W  The db2prereqcheck utility failed to find the following 32-bit library file: "libstdc++.so.6". 

Validating "libaio.so version " ... 
DBT3553I  The db2prereqcheck utility successfully loaded the libaio.so.1 file. 
   Requirement matched. 

Validating "libnuma.so version " ... 
DBT3610I  The db2prereqcheck utility successfully loaded the libnuma.so.1 file. 
   Requirement matched. 

Validating "/lib/i386-linux-gnu/libpam.so*" ... 
   DBT3514W  The db2prereqcheck utility failed to find the following 32-bit library file: "/lib/i386-linux-gnu/libpam.so*". 
   WARNING : Requirement not matched. 
Requirement not matched for DB2 database "Server" . Version: "11.5.9.0". 
Summary of prerequisites that are not met on the current system: 
   DBT3514W  The db2prereqcheck utility failed to find the following 32-bit library file: "/lib/i386-linux-gnu/libpam.so*". 


DBT3514W  The db2prereqcheck utility failed to find the following 32-bit library file: "libstdc++.so.6". 

Enter fullscreen mode Exit fullscreen mode

The output indicates that the requirement checks have failed, and we need to address these issues.

  • Enable 32-bit architecture on your instance and install the necessary packages.
  • Install 32-bit library file: "/lib/i386-linux-gnu/libpam.so*" packages.
$ sudo dpkg --add-architecture i386
$ sudo apt-get update -y
$ sudo apt-get install libstdc++6:i386 libpam0g:i386 -y
Enter fullscreen mode Exit fullscreen mode
  • After installing the required packages, rerun the db2prereqcheck command to ensure all requirements are met.
$ sudo ./db2prereqcheck 

==========================================================================

Sun Sep 15 16:40:55 2024
Checking prerequisites for DB2 installation. Version "11.5.9.0". Operating system "Linux" 

Validating "kernel level " ... 
   Required minimum operating system kernel level: "3.10.0". 
   Actual operating system kernel level: "6.5.0". 
   Requirement matched. 

Validating "Linux distribution " ... 
   Required minimum "UBUNTU" version: "16.04" 
   Actual version: "22.04" 
   Requirement matched. 

Validating "Bin user" ... 
   Requirement matched. 

Validating "C++ Library version " ... 
   Required minimum C++ library: "libstdc++.so.6" 
   Standard C++ library is located in the following directory: "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30". 
   Actual C++ library: "CXXABI_1.3.1" 
   Requirement matched. 


Validating "32 bit version of "libstdc++.so.6" " ... 
   Found the 32 bit "/lib/i386-linux-gnu/libstdc++.so.6" in the following directory "/lib/i386-linux-gnu". 
   Requirement matched. 

Validating "libaio.so version " ... 
DBT3553I  The db2prereqcheck utility successfully loaded the libaio.so.1 file. 
   Requirement matched. 

Validating "libnuma.so version " ... 
DBT3610I  The db2prereqcheck utility successfully loaded the libnuma.so.1 file. 
   Requirement matched. 

Validating "/lib/i386-linux-gnu/libpam.so*" ... 
   Requirement matched. 
DBT3533I  The db2prereqcheck utility has confirmed that all installation prerequisites were met. 

Enter fullscreen mode Exit fullscreen mode

IV. Install Db2 using db2_install command as the root user and wait for the installation to complete.

$ sudo ./db2_install
Read the license agreement file in the db2/license directory.

***********************************************************
To accept those terms, enter "yes". Otherwise, enter "no" to cancel the install process. [yes/no]
yes


Default directory for installation of products - /opt/ibm/db2/V11.5

***********************************************************
Install into default directory (/opt/ibm/db2/V11.5) ? [yes/no] 
yes


Specify one of the following keywords to install DB2 products.

  SERVER 
  CONSV 
  CLIENT 
  RTCL 

Enter "help" to redisplay product names.

Enter "quit" to exit.

***********************************************************
SERVER
***********************************************************
Do you want to install the DB2 pureScale Feature? [yes/no] 
no
DB2 installation is being initialized.

Enter fullscreen mode Exit fullscreen mode
  • Once the installation is completed, you will see the message below. You can then review the installation log file for post-installation steps.
The execution completed successfully.

For more information see the DB2 installation log at
"/tmp/db2_install.log.3355".

Enter fullscreen mode Exit fullscreen mode
$ cat /tmp/db2_install.log.3355

Post-installation instructions 
-------------------------------

Required steps: 
Set up a DB2 instance to work with DB2. 

Optional steps: 
Notification SMTP server has not been specified. Notifications cannot be sent to contacts in your contact list until this is specified. For more information see the DB2 administration documentation. 

To validate your installation files, instance, and database functionality, run the Validation Tool, /opt/ibm/db2/V11.5/bin/db2val. For more information, see "db2val" in the DB2 Information Center. 

Refer to "What's new" https://www.ibm.com/docs/en/db2/11.5?topic=database-whats-new in the DB2 Information Center to learn about the new functions for DB2 V11.5. 

Open First Steps by running "db2fs" using a valid user ID such as the DB2 instance owner's ID. You will need to have DISPLAY set and a supported web browser in the path of this user ID. 

Verify that you have access to the DB2 Information Center based on the choices you made during this installation. If you performed a typical or a compact installation, verify that you can access the IBM Web site using the internet. If you performed a custom installation, verify that you can access the DB2 Information Center location specified during the installation. 

Ensure that you have the correct license entitlements for DB2 products and features installed on this machine. Each DB2 product or feature comes with a license certificate file (also referred to as a license key) that is distributed on an Activation CD, which also includes instructions for applying the license file. If you purchased a base DB2 product, as well as, separately priced features, you might need to install more than one license certificate. The Activation CD for your product or feature can be downloaded from Passport Advantage if it is not part of the physical media pack you received from IBM. For more information about licensing, search the Information Center (https://www.ibm.com/docs/en/db2/11.5) using terms such as "license compliance", "licensing" or "db2licm". 

To use your DB2 database product, you must have a valid license. For information about obtaining and applying DB2 license files, see http://www-01.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.qb.server.doc/doc/c0061199.html. 
Enter fullscreen mode Exit fullscreen mode

V. To validate our installation, execute the db2val command and review the log file to ensure everything is functioning correctly. If the validation completes without issues.

$ sudo /opt/ibm/db2/V11.5/bin/db2val
DBI1379I  The db2val command is running. This can take several minutes.

DBI1335I  Installation file validation for the DB2 copy installed at
      /opt/ibm/db2/V11.5 was successful.

DBI1343I  The db2val command completed successfully. For details, see
      the log file /tmp/db2val-240915_164309.log.
Enter fullscreen mode Exit fullscreen mode
$ cat /tmp/db2val-240915_164309.log
Installation file validation for the DB2 copy installed at "/opt/ibm/db2/V11.5" starts.

Task 1: Validating Installation file sets.
Status 1 : Success 

Task 2: Validating embedded runtime path for DB2 executables and libraries.
Status 2 : Success 

Task 3: Validating the accessibility to the installation path.
Status 3 : Success 

Task 4: Validating the accessibility to the /etc/services file.
Status 4 : Success 

DBI1335I  Installation file validation for the DB2 copy installed at
      /opt/ibm/db2/V11.5 was successful.

Installation file validation for the DB2 copy installed at "/opt/ibm/db2/V11.5" ends.

DBI1343I  The db2val command completed successfully. For details, see
      the log file /tmp/db2val-240915_164309.log.
Enter fullscreen mode Exit fullscreen mode

Post Installation Steps

I. Create groups and users for DB administrators and fenced users, then assign passwords to the users.

$ sudo groupadd -g 997 db2admin
$ sudo groupadd -g 998 db2fence


$ sudo useradd -u 1003 -g db2admin -m -d /home/db2adm1 db2adm1
$ sudo useradd -u 1004 -g db2fence -m -d /home/db2fen1 db2fen1
Enter fullscreen mode Exit fullscreen mode

II. Create a Db2 instance using the db2icrt command and check the log file for details on database connectivity.

$ sudo /opt/ibm/db2/V11.5/instance/db2icrt -a server -u db2fen1 db2adm1
DBI1446I  The db2icrt command is running.


DB2 installation is being initialized.

 Total number of tasks to be performed: 4 
Total estimated time for all tasks to be performed: 309 second(s) 

Task #1 start
Description: Setting default global profile registry variables 
Estimated time 1 second(s) 
Task #1 end 

Task #2 start
Description: Initializing instance list 
Estimated time 5 second(s) 
Task #2 end 

Task #3 start
Description: Configuring DB2 instances 
Estimated time 300 second(s) 
Task #3 end 

Task #4 start
Description: Updating global profile registry 
Estimated time 3 second(s) 
Task #4 end 

The execution completed successfully.

For more information see the DB2 installation log at "/tmp/db2icrt.log.80519".
DBI1070I  Program db2icrt completed successfully.
Enter fullscreen mode Exit fullscreen mode
$ cat /tmp/db2icrt.log.80519

Post-installation instructions 
-------------------------------

Required steps: 
You can connect to the DB2 instance "db2adm1" using the port number "25001". Record it for future reference. 
Enter fullscreen mode Exit fullscreen mode

III. Now start the database instance using the below commands.

$ sudo su - db2adm1


$ db2ls

Install Path                       Level   Fix Pack   Special Install Number   Install Date                  Installer UID 
---------------------------------------------------------------------------------------------------------------------
/opt/ibm/db2/V11.5               11.5.9.0        0                            Sun Sep 15 16:42:52 2024 UTC             0 

Enter fullscreen mode Exit fullscreen mode
$ . sqllib/userprofile

$ db2start 
09/15/2024 19:52:45     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.
Enter fullscreen mode Exit fullscreen mode

IV. Now the database instance is started and we can connect to the instance.

$ db2
(c) Copyright IBM Corporation 1993,2007
Command Line Processor for DB2 Client 11.5.9.0

You can issue database manager commands and SQL statements from the command 
prompt. For example:
    db2 => connect to sample
    db2 => bind sample.bnd

For general help, type: ?.
For command help, type: ? command, where command can be
the first few keywords of a database manager command. For example:
 ? CATALOG DATABASE for help on the CATALOG DATABASE command
 ? CATALOG          for help on all of the CATALOG commands.

To exit db2 interactive mode, type QUIT at the command prompt. Outside 
interactive mode, all commands must be prefixed with 'db2'.
To list the current command option settings, type LIST COMMAND OPTIONS.

For more detailed help, refer to the Online Reference Manual.

db2 => 
Enter fullscreen mode Exit fullscreen mode

V. Create a test database and connect to the database using the below commands.

db2 => create database sales
DB20000I  The CREATE DATABASE command completed successfully.

db2 => connect to sales

   Database Connection Information

 Database server        = DB2/LINUXX8664 11.5.9.0
 SQL authorization ID   = DB2ADM1
 Local database alias   = SALES

Enter fullscreen mode Exit fullscreen mode

That's it! Now you're ready to explore and work with the IBM Db2 database. I hope you find this guide helpful and enjoyable!

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .