Informix Dynamic Server and Linux -- Up and running

A cookbook for installing Linux and IDS

Find out how you can install one of the two major enterprise Linux® distributions and configure it for running IBM® Informix® Dynamic Server (IDS) Version 10.0. You'll learn how to get a trial version of the IDS database server up and running and how to use a disk as a raw device.

Andreas Breitfeld (abreitfe@de.ibm.com), IBM Informix Development, IBM Deutschland GmbH

Andreas Breitfeld photoAndreas Breitfeld is a software developer who has been working on IBM Informix Database Server for several years. He has been involved at various stages in porting and development of IDS.



09 March 2006

Also available in Russian

Introduction

IDS was one of the first commercial database products ported to Linux. Today the advantages of running IDS 10.0 on the Linux platform are:

  • Support for new Linux platforms
  • Transparent optimization and exploitation of Linux environments
  • Exploitation of Linux 2.6 kernel features
  • Utilization of asynchronous I/O and direct I/O for enhancing I/O performance
  • Processor affinity to achieve improved scalability and parallelism
  • Performance optimization using configurable page sizes
  • Additional installation methods on Linux systems
  • Simple Network Management Protocol (SNMP) support
  • Interprocess communication with stream pipes
  • Scalability on the 2.6 kernel

This article describes a test configuration of IDS on Linux. By following the details I describe, you should be able to customize your own IDS configuration on Linux. We'll start by looking at the setup of Linux itself.

Installing Linux

Technical details for the sample system

The system used for installing Linux and IDS was a standard PC:

  • Pentium III 600MHz
  • 512MB RAM
  • 2 x 15.3GB disks (Maxtor 51536U3 ATA)

For IDS version 10.0 (32-bit) the CPU must be compatible with an Intel i686. Compatible CPU types should be at a minimum Intel Pentium II / Pentium Pro or AMD Athlon. For our sample system, the first disk was dedicated for installing the Linux OS, and the second disk provided space for the IDS databases. No partitions should exist on the disks.

Red Hat Enterprise Linux 4

For this example, Red Hat Enterprise Linux AS release 4 (Nahant) was installed on the sample PC. The following steps will help you to set up a Linux system that is ready to install and run IDS. Please note, the installation of Linux will destroy any operating system and data on the PC.

Detailed instructions can be found at the "Red Hat Enterprise Linux Documentation" page in the document "Red Hat Enterprise Linux Installation Guide for the x86, Itanium, and AMD64 Architectures.". See the Resources section "Learn" for links.

During installation, you can use the default settings in most cases. Here are some hints and exceptions:

  • Boot the PC from the first of the 4 CDs.
  • In step Language Selection choose English.
  • In step Keyboard Configuration choose the layout for your keyboard.
  • In step Upgrade Examine select Install Red Hat Enterprise for a fresh install.
  • In step Automatic Partitioning select /dev/hda only (deselect /dev/hdb).
  • In step Package Installation Defaults select Customize software packages ....
  • In step Package Group Selection, make these selections:
    • in chapter Applications select Graphical Internet (get Firefox browser).
    • in chapter Development select Legacy Software Development (get packages for compatibility to older Red Hat versions).
  • Reboot after the installation is completed.
  • Log in as user root and open a terminal (Applications -> System Tools -> Terminal).
  • For IDS graphical tools, install OpenMotif runtime from CD #3:
    • Put CD #3 in the drive. It should be automatically mounted
    • To install the package, type following command in the terminal:
      rpm -Uvh /media/cdrom/RedHat/RPMS/openmotif-2.2.3-6.RHEL4.2.i386.rpm
    • To eject the CD from the drive type the command:
      eject
  • To access IDS raw devices with Kernel Asynchronous Input Output (KAIO), install libaio from CD#3:
    • Put CD#3 in the drive. It should be automatically mounted.
    • To install the package, type following command in the terminal:
      rpm -Uvh /media/cdrom/RedHat/RPMS/libaio-0.3.102-1.i386.rpm
    • To eject the CD from the drive type the command:
      eject

Novell SUSE Linux Enterprise Server 9

For this example SUSE Linux Enterprise Server 9 (SLES 9) was installed on the sample PC. The following steps should help to set up a Linux system which is ready to install and run IDS. Please note, the installation will destroy any operating system and data on the PC.

Detailed instructions can be found at the "SUSE Linux Documentation" page in the document "SUSE LINUX Enterprise Server 9 Administration and Installation" (PDF). See the Resources section "Learn" for links.

During installation, you can use the default settings in most cases. Some hints and exceptions are listed below:

  • Boot the PC from the first of the 4 binary CDs.
  • In step Select your language, choose English (US).
  • In step Installation Settings
    • Click on Keyboard layout and choose the appropriate layout.
    • Click on Partitioning and check swap and root partitions are created in /dev/hda.
      • Choose Base partition setup on this proposal.
      • Choose root partition (should be /dev/hda2) and change its file system type to ext3 using the Edit menu.
    • Click on Time Zone and choose the appropriate time zone.
  • Accept the installation settings and confirm the start of installation.
  • Reboot after the installation is completed.
  • Log in and open a terminal (click on terminal looking icon in the panel).

Installing IDS

For this example, the trial version of IDS version 10 (32-bit) can be downloaded using installed Firefox or Konqueror browser from "Informix product family -- How to get Informix product downloads -- IBM Software" page. See the Resources section "Get products and technologies" for a link. Click on Informix Dynamic Server EE V10.0 Trials for getting the tar archive iif.10.00.UC3R1TL.Linux.tar and save it to /tmp directory. Sign in with IBM ID and password may be required. Choose download using http.

If you are not already logged in as user root, then switch user id to root:

su -

Create group and user informix, and enter password:

groupadd informix
useradd -g informix -m informix
passwd informix

Unpack the downloaded archive of IDS:

mkdir /opt/informix
chown informix:informix /opt/informix
cd /opt/informix
tar xvf /tmp/iif.10.00.UC3R1TL.Linux.tar

If you purchased IDS version 10, then you will probably get the IDS bundle. In this case copy the contents of directory SERVER of the unpacked bundle to the working directory and proceed.

Set environment:

export INFORMIXDIR=/opt/informix

Install the IDS packages:

./install_rpm -acceptlicense=yes

Logout from user root:

exit

Configuring IDS

Set up the environment

If you are not already logged in as user informix, then switch user id to informix:

su - informix

Create an environment file called ids.env using a graphical text editor (such as gedit or kate), for example:

gedit ids.env

Or, use the famous console editor vi:

vi ids.env

Add the following lines to the ids.env file:

export INFORMIXDIR=/opt/informix
export INFORMIXSERVER=demo_on
export PATH=$INFORMIXDIR/bin:$PATH

Save the file and exit the editor.

Set the environment for IDS:

. ./ids.env

(type: dot blank dot slash ids.env)
Each time you need to access this IDS instance you can set the environment from this file again.

Create and edit IDS configuration files:

cd $INFORMIXDIR/etc
cp onconfig.std onconfig
cp sqlhosts.std sqlhosts

Edit file onconfig using the editor of choice (see above), change parameters from - to:

ROOTPATH        /dev/online_root
-
ROOTPATH        /home/informix/dbspaces/online_root

MSGPATH         /usr/informix/online.log
-
MSGPATH         /home/informix/logs/online.log

LTAPEDEV        /dev/tapedev
-
LTAPEDEV        /dev/null

DBSERVERNAME
-
DBSERVERNAME    demo_on

Find the network node hostname of the machine:

uname -n

asterix is printed for example.

Edit file sqlhosts using the editor of choice (see above), change line from - to:

demo_on onipcshm        on_hostname     on_servername
-
demo_on onipcshm        asterix         demo_on

(Replace the word "asterix" with the network node hostname of your machine.)

Create the logs directory:

cd
mkdir logs

Create the root dbspace:

mkdir dbspaces
cd dbspaces
touch online_root
chmod 660 online_root

Startup and shutdown

Start and initialize the configured IDS instance:

oninit -iv

prints following message:

This action will initialize IBM Informix Dynamic Server;
any existing IBM Informix Dynamic Server databases will NOT be accessible -
Do you wish to continue (y/n)?

If you are certain that you want to initialize this instance of IDS, type y to initialize the instance. Note, all data will be lost if the instance has been used previously.

Now IDS is running. For testing purposes, you can create the demo database by executing the script dbaccessdemo7 To access databases, the console utility dbaccess can be used.

You can shut down the IDS instance with the command:

onmode -ky

and started (without initialization) with this command:

oninit

IDS documentation can be read online at "IBM Informix Dynamic Server information center" page. Manuals for all Informix products in different languages can be found at "Informix library" page. See the Resources section "Learn" for links.

Configuring a raw device

The whole second disk from the example machine can be configured as a raw device. Please note all data will be lost on this disk.

The first step is to create a partition. For this, use the interactive console utility fdisk. Switch to user id root to run following commands:

fdisk /dev/hdb

For example:

The number of cylinders for this disk is set to 29651.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): o
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 29651.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-29651, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-29651, default 29651):
Using default value 29651

Command (m for help): p

Disk /dev/hdb: 15.3 GB, 15303075840 bytes
16 heads, 63 sectors/track, 29651 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdb1               1       29651    14944072+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

To make sure the OS is informed about the partition table changes, run this command:

partprobe

Once the partition /dev/hdb1 is created, its permissions must be changed for use by IDS:

chown informix:informix /dev/hdb1
chmod 660 /dev/hdb1

Note, the change of permissions may be required again after reboot of the machine. This can be done using an init script.

If you are not already logged in as user informix, then switch user id to informix:

su - informix

Set the environment for IDS:

. ./ids.env

(Type: dot blank dot slash ids.env)

To remember which chunks are configured, create symbolic links in the dbspaces directory:

ln -s /dev/hdb1 /home/informix/dbspaces/chunk1

Now we create the chunk path named '/home/informix/dbspaces/chunk1' of the dbspace named 'dbspace1'. The size of the partition in kilobytes can be found in raw 'Blocks' in output of 'fdisk' command 'p'. It is given as parameter of option '-s' and has the value 14944072 in our example. Switch to userid informix and set ids.env environment to run following commands:

onspaces -c -d dbspace1 -p /home/informix/dbspaces/chunk1 -o 0 -s
14944072

For testing, create the demo database in dbspace1:

dbaccessdemo7 -dbspace dbspace1

Conclusion

In this article we've walked through the installation and configuration of specific versions of Red Hat Enterprise Linux and SUSE Linux Enterprise Server for running IDS 10, to help you get Informix up and running on Linux without difficulty. Adaptation for newer versions of the operating systems should be easy by updating the version numbers of mentioned packages.

Resources

Learn

Get products and technologies

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Information management on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Information Management, Linux
ArticleID=105335
ArticleTitle=Informix Dynamic Server and Linux -- Up and running
publish-date=03092006