I am going to use DB2 as our Database server rather than SQL or Oracle because that’s part of our Connections entitlement. If you have expertise and licensing for either Oracle or SQL and prefer those servers then I would go with them instead. This DB2 install for our Connections101 server is very simple, a single instance and standard accounts. Depending on your requirements for HA and/or your number of users you may need to give that more thought.
I downloaded and use the DB2 10.5.0.5 (fixpack 5) universal installer. You can install this without installing 10.5 first. I extracted the compressed file v10.5fp5_ntx64_universal_fixpack then checked the OS meets the install requirements using the pre-requisite check
From the directory /DB2/univeral run ./prereqcheck
the pre requisite check is going to validate if all the correct OS libraries and settings are in place. In my first check I was missing several necessary files including 32bit versions of some libraries that even the 64bit DB2 installer needs.
Any libraries that are missing can be installed using yum – in this case I was missing gcc which I resolved with “yum install gcc”. This is why I strongly recommend you don’t attempt a Linux install without a subscription in place to help you find and install all the libraries you need.
Each time I successfully installed a missing library I re-ran prereqcheck again. In total it took less than 10 minutes to get all the libraries installed.
The final pre-requisite you may fail on is ensuring SELinux is disabled on the OS. By default it will be enabled and to disable it you can edit the file /etc/selinux/conf (in my RedHat deployment) using:
sudo vi /etc/selinux/config and setting SELINUX=disabled
Once all the pre-requisites are passed we can go ahead and install DB2 which we do by running ./db2setup from the “universal” directory the installer created (the same directory we ran db2prereqcheck from).
The default installer uses a GUI so you can either configure your SSH connection to use X11 forwarding or (I prefer) use either NoMachine or VNC. X11 works well but can be very slow to redraw screens.
I choose to “Install a Product” and in this case I’m installing the DB2 Workgroup Server Edition which is all that I need to host the Connections101 databases.
I like to choose the custom install so I can minimise what features are added and ensure no unnecessary services are listening or available. Having services I don’t need installed just exposes access via a route I may forget exists and so don’t secure properly.
Here are the features I chose – I don’t for example install LDAP or SSH services with my DB2 server for Connections.
Bear in mind that although DB2 itself will install into /opt/ibm/db2/v10.5, the actual databases will install into the home directory of the instance owner – /home/db2inst1. If your Linux partition isn’t set up correctly to allow plenty of space in /home (which by default it often isn’t) you will hit space problems.
Similarly when installing on Windows look at the install screens carefully and note where it wants to use c:\programdata for storing DB2 information. Even if you choose to install the program files on an E drive you need to make sure you check all locations to avoid filling up your C drive by default.
Now we need to set up users who will have administrative access to the DB2 services. In Windows the default user is a local account called db2admin. In Linux it’s a local account called db2inst1. At this point of the install neither account exists, the installer will both create them and grant them the access they need.
It’s important to note what you use on the next few screens for the account names and passwords. You will need to switch to these accounts at various points to work with DB2
DB2 can create multiple instances which run in isolation from each other with their own assigned memory and resources. In larger environments this is useful for sharing the load of many databases across the resources of a large server.
I’m choosing to create a single DB2 instance and install all the databases into it. In a large environment I would often have multiple instances to ensure I can manage resources effectively and that I can share the Connections databases across them.
The local db2inst1 account which will be created during install is the account you use to perform all the DB2 maintenance work including creating the Connections databases using the DBWizard and running the update or maintenance scripts. Post install you can also grant other users rights to do this work if you want.
DB2 installs listening on port 5000, you can easily change this during the install if you need to. Some people choose other ports to obfuscate security so that DB2 can’t easily be found on its known port. If that’s all the security you have in place then you should worry 🙂
Once the install is complete you can verify it by checking you can login or switch (su) to db2inst1 (which confirms the account is created) or , if Windows, that you can login to the server using local account db2admin.
You should also verify that the new server is listening on port 50000 or whatever you chose during install. I like to do this after a clean restart of the OS to ensure the DB2 server does start automatically on OS launch.
netstat -tulvn | grep :50000
or on Windows
netstat -an | find /i “50000”
Finally we need to activate our DB2 install. Download the activation file CN3Z2ML from Passport Advantage.
Unzip the download and find the file db2ese_u.lic which should be in the top directory.
Login to the server as db2inst1 and run
db2licm -a <pathto db2ese_u.lic>
Verify the license has applied by typing db2licm -l