16. Installing DB2 Express-C on Ubuntu 7.04 'Feisty Fawn'

These installation notes are based on a single-partition installation using the 2.6.20-16-generic kernel.

Note that IBM does not yet officially support this distribution for DB2 9. Any problems you encounter using this distribution must be replicated on a supported distribution before IBM Support can help you resolve the issue.

Also be aware that the PowerPC architecture is no longer supported in Ubuntu 7.04 and later.

16.1. Installation notes

Since you cannot log in as root directly with an Ubuntu system, this DB2 installation is run as the default user created during Ubuntu setup (i.e. the regular user account with 'sudo' capability).

There are two ways of installing DB2 Express-C 9 on Ubuntu. The harder of the two methods is to use the default DB2 db2setup, and then make adjustments to the Ubuntu system afterwards to handle the slight differences of Ubuntu's Debian-based packaging system. For reasons of clarity and brevity, I will omit the instructions for doing it this more difficult way; however, if you would like to see these instructions, please send me an email (db2howto@gmail.com) and I will pass them along.

The easy way to install DB2 Express-C on Ubuntu 7.04 is to download the DB2 Express-C Debian package file and then use the Ubuntu package installer. This way, almost everything is done for you, from installation to configuration. Here's how to do it:

  1. Use any FTP client software and connect to: ftp.software.ibm.com/software/data/db2/express/latest_debs

  2. Download db2exc_9.1.2-1_i386.deb (or the latest equivalent .deb file)

  3. Once the download is complete, run this command:
    sudo gdebi-gtk db2exc_9.1.2-1_i386.deb

  4. Click "Install Package"

  5. Click "Close" once the package has been installed

After hitting the "Install Package" button, the Ubuntu package installer will unpack and install the package and configure the DB2 users and default instance. Click the "Close" button once the installation is complete.

16.2. Post-installation notes

After installation by Synaptic, there are a few steps required to get DB2 up and running smoothly.

  1. Usable passwords for the DB2 default accounts.

    To actually log in or connect to the DB2 databases and servers using the default DB2 users (db2inst1, db2fenc1, and dasusr1), you need to modify the initial passwords. To do this, open a terminal (as the regular user), and type sudo su - to get root access. Then run these three commands:
    passwd db2inst1
    passwd db2fenc1
    passwd dasusr1
    Each time you will be asked to set the new password for the specified user account.

  2. Change the default shell for the DB2 default accounts.

    The default command shell for the DB2 accounts is set as just a plain old /bin/sh. To get the handy features of the BASH shell, you'll want to change it for these three accounts. In the same root access command window, open the /etc/passwd file in your favorite text editor and change:
    
db2inst1:x:1001:1001::/home/db2inst1:/bin/sh
    db2fenc1:x:1002:1002::/home/db2fenc1:/bin/sh
    dasusr1:x:1003:1003::/home/dasusr1:/bin/sh
    to
    
db2inst1:x:1001:1001::/home/db2inst1:/bin/bash
    db2fenc1:x:1002:1002::/home/db2fenc1:/bin/bash
    dasusr1:x:1003:1003::/home/dasusr1:/bin/bash

  3. Enable DB2 service ports for remote connections.

    To enable outside users to get to your DB2 databases, you'll need to set up the DB2 service port, as it is not configured by the Synaptic installation process.

    As the regular user, run sudo vi /etc/services and add this line to the end of the file:
    db2c_db2inst1       50001/tcp        # IBM DB2 instance - db2inst1
    Then, as the DB2 instance owner (db2inst1 by default), run these commands:
    db2 update dbm cfg using SVCENAME db2c_db2inst1
    db2set DB2COMM=tcpip
    db2stop
    db2start
    Now remote users will be able to connect to the DB2 databases on your Ubuntu system.

  4. Enable remote DB2 administration connections.

    To allow remote administration of your DB2 server, you'll need to set up the DB2 DAS connection port, as it is not configured by the Synaptic installation process.

    As the regular user, run sudo vi /etc/services and add this line to the end of the file:
    ibm-db2           523/tcp          # IBM DB2 DAS
    ibm-db2           523/udp          # IBM DB2 DAS
    Then, as the DB2 DAS owner (dasusr1 by default), run these commands:
    db2admin stop
    db2admin start
    Now remote administrators can connect to the DAS server to administer databases on your Ubuntu system.

  5. Correct instance restart problem

    One issue of note with the Ubuntu 7.04 installation is that the DB2 instances do not properly restart after a system reboot, and setting DB2AUTOSTART=YES does not resolve the issue.

    One workaround to this problem was suggested in part by IgorM on the DB2 Express-C forum; and that is to create and execute your own DB2 instance start up script.

    To begin with, login and create a new script file using the command:
    sudo vi /etc/init.d/db2
    and then insert this text:
    #!/bin/sh
    #
    # Script to start DB2 instances on bootup.
    #
    set -e
    
    . /lib/lsb/init-functions
    
    case "$1" in
    start)
            /opt/ibm/db2exc/V9.1/instance/db2istrt 
            ;;
    stop|restart|reload)
            ;;
    esac
    
    exit 0
    and write the file to disk with the :wq vi command.

    Note that the path to the executable is /opt/ibm/db2exc/V9.1/, the default installation path from the DB2 .deb file. If your installation put the DB2 files elsewhere, be sure to adjust this script as required to find the /instance/ directory.

    Once the script has been saved, give the file the proper ownership and permissions:
    chown root.root db2
    chmod 755 db2

    Now, to initialize this script so that it starts at boot time, install the Boot-Up Manager with this command:
    sudo apt-get bum

    After Synaptic downloads and installs the application file, you can run the program by clicking System -> Administration -> BootUp-Manager. Then click on the "Activate" checkbox beside the db2 entry. Click Apply and say "No" to the dialog that asks if you want to start the service now. Click Quit. The script will now run at your next boot and start up all DB2 instances.

    The only other way to resolve the problem is to manually start the instances after a reboot with db2start (as the instance owner) and db2admin start (as the DAS owner). Once DB2 Express-C has passed the validation process for Ubuntu 7.04, this instance start issue will disappear.