Installing An Informix Environment

Preparing to Install the INFORMIX-OnLine Product Family

Setting Up UNIX Configuration Parameters and Environmental Variables

Environmental Variables

INFORMIX needs a certain set of environment variables. An example file is shown below.

#!/bin/bash
export INFORMIXDIR=/opt/ibm/ids/ids.dev
export INFORMIXSERVER=chrys
export PATH=$PATH:$INFORMIXDIR/bin
export ONCONFIG=onconfig.$INFORMIXSERVER
export INFORMIXTERM=termcap
export INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts.$INFORMIXSERVER
export LD_LIBRARY_PATH=$LD_IBRARY_PATH:$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql

export PENGUIN=/home/informix/instances/$INFORMIXSERVER
  • INFORMIXDIR: INFORMIXDIR is the base directory of the Informix installation.
  • INFORMIXSERVER: INFORMIXSERVER is set to the name of the INFORMIX-OnLine instance that you are installing
  • PATH: the set of directories in which the server searches for executable files when you do not specify their fully qualified pathname.
  • ONCONFIG: ONCONFIG is optional, and it is set only if you want to use a different configuration file than ${INFORMIXDIR}/etc/onconfig. The file used during startup is ${INFORMIXDIR}/etc/${ONCONFIG}.
  • INFORMIXTERM: INFORMIXTERM is set to termcap or terminfo in order to allow character-based Informix clients (dbaccess, onmonitor, 4GL programs, and so on) to function properly with the terminal type and preferences you use in your UNIX environment.
  • INFORMIXSQLHOSTS: Full pathname of the communication file.
  • LD_LIBRARY_PATH: Full pathname of the shared libraries for development purposes.

Shared Memory

Shared memory is a facility provided by the operating system that allows Informix to use a reserved area of memory. This allows Informix to communicate faster between processes and threads than if independent areas of memory were used for each process or if disk I/O were required.

Services Entries

You need to enter a few /etc/services entries, based on your configuration. These identify TCP/IP or network ports that are used for specific purposes.

Creating the Informix User and Group

A user and group, each with the name informix must exist before you install the server. They need to be placed in the /etc/passwd and /etc/group files.
To Create user informix: useradd -d /usr/informix informix. In Redhat when a user is being created, a group is being created also automatically with the same name.

Creating the Appropriate Devices and Directories

Before installing Informix, you must decide where you want to place your installation files, as well as how much space to give the database and where that space will reside.
You can use raw disk partitions or cooked files in an existing file system for your database storage space. Raw disk space is the recommended approach, because the database manages it directly. This speeds up activity because the system-level file processing does not need to occur. It also ensures recoverability because the database knows exactly what has been written to disk. This is not the case with cooked files, which buffer disk input and output and might report to the database that an activity has occurred on disk that has actually been cached in memory instead. If the system fails at a time like this, information will be unrecoverable, and the database could become corrupt.

Bringing the Informix Database Server OnLine

The sqlhosts File

This is located under ${INFORMIXDIR}/etc/sqlhosts. To change location of the sqlhosts file, use the INFORMIXSQLHOSTS environmental variable. Each computer that hosts a database server or a client must have an sqlhosts file.

It contains the necessary information to connect to local and remote instances. Each entry (each line) in the sqlhosts file contains the sqlhosts information for one database server. Local instances will also start listener threads according to the specified protocol and port number for the respective connection names. In other words, this file associates the port number or service name with the database server name.

Example File:

#INFSERVER    COMPROT         HOSTNAME        PORTNAME
myserversh        onipcshm         onlinehost        on_servername
myserver        onsoctcp         onlinehost        on_idslsnr
myserverse        seipcpip           onlinehost        sqlexec
  • INFSERVER: The name of the database server that is listed. Corresponds to the DBSERVERNAME/DBSERVERALIASES entry in the configuration file onconfig.
  • COMPROT: The connection mechanism or net type. For Linux based operating systems they are:
    • onsoctcp: TCP/IP sockets communication using the SQLI protocol for local and remote clients.
    • onipcshm: Shared Memory communication using the SQLI protocol for local clients.
    • onipcstr: Stream pipe communication using the SQLI protocol for local clients.
  • HOSTNAME: The network name of the machine that hosts the server.
  • PORTNAME: The port name from /etc/services, which is used for a network connection. INFORMIX will start a listener thread on this port.

The name of the database server should match the DBSERVERNAME or DBSERVERALIASES in the onconfig file for that server.

The connection mechanism or net type is an eight-character field that represents three different instance specifics. The first two characters (on) indicate that it is an online net type. The next three letters indicate the connection type—either shared memory (ipc) or network (tli for transport-level interface, or soc for sockets). The last three letters indicate the protocol type. Examples are shm for shared memory, tcp for TCP/IP, or spx for IPX/SPX.
More details on the table below.

on Dynamic Server
se Standard Engine
ipc IPC connection
tli TLI connection
soc socket connection
shm Shared memory
str Stream pipes
tcp TCP/IP protocol
spx IPX/SPX protocol

The onconfig File

This is located under ${INFORMIXDIR}/etc/onconfig.
It contains information about the local and networked INFORMIX-OnLine instances. It contains one entry for each connection to an Informix engine, either through a network or through shared memory.
It can be edited directly, in which case changes might not take place until the next time OnLine is initialized, or it can be changed from within onmonitor, which often allows changes to take place immediately while the engine is online.

If you want to edit the onconfig file directly, a few changes should be made within your editor before the database can be initialized. The changes are as follows:

  • ROOTNAME: The name you want to give to your rootdbs.
  • ROOTPATH: The pathname to the raw or cooked file for your rootdbs.
  • ROOTOFFSET: The number of kilobytes to be skipped from the beginning of ROOTPATH.
  • ROOTSIZE: The size allocated in the ROOTPATH for ROOTNAME. Note that this does not need to be the entire free space on the device.
  • DBSERVERNAME: The name of the Informix instance. Only a single entry is allowed and it must match an entry in the sqlhosts communication file.
  • NETTYPE: The type of network and number of threads to poll for that network.
  • MULTIPROCESSOR: Whether or not the machine is multiprocessor.
  • NUMCPUVPS: The number of CPU virtual processors.
  • SINGLE_CPU_VP: Whether or not the number of CPU VPs is limited to one.
  • NUMAIOVPS: The number of I/O VPs.
  • MSGPATH: System message log file path.
  • CONSOLE: System console message path.

Customizing Your Informix Environment

Database Spaces

When Informix is installed with default options, all of the elements of the database (logical and physical logs) are placed in the initial dbspace, which is called the rootdbs. The Informix installation process generates the minimum configuration that works and does not attempt to optimize any database elements. However for performance and maintainability reasons, those log files should really occupy their own dbspaces.

To check the contents of db spaces: oncheck -pe.

The only database objects that you should find in the rootdbs are the following:

  • Objects in the sysmaster database
  • Objects in the sysutils database
  • TABLESPACE TABLESPACE
  • ROOT DBspace RESERVED Pages
  • CHUNK FREE LIST PAGE
  • DATABASE TABLESPACE
  • FREE space (chunk space that is not currently allocated to tables)

Adding Temporary Database Spaces

The database server needs to provide disk space for temporary tables of the following two kinds:

  • Temporary tables that you create with an SQL statement, such as CREATE TEMP TABLE… or SELECT …. INTO SCRATCH.
  • Temporary tables that the database server creates as it processes a query.

By default, the database server stores temporary tables in the root dbspace. If you decide not to store your temporary tables in the root dbspace, use the DBSPACETEMP environment variable or the DBSPACETEMP configuration parameter to specify a list of dbspaces for temporary tables.

In order to add a temporary database space, you need another raw partition or cooked file available. Additional database spaces can be added through the onmonitor utility, under the Dbspaces|Create menu.

Changing the Size and Placement of the Physical Log

The physical log is a system area that takes a snapshot of the disk pages changed during database activity. It aids in recovery in case of failure, as well as with transaction processing. If you expect to have a very busy database, you definitely need to expand your physical log. First create an appropriately sized dbspace, for example, phydbs, and then bring the database into quiescent mode with onmode -s or from the onmonitor Mode menu. Then, from the onmonitor menu Parameters|Physical-log, modify the size and placement parameters. The physical log takes some time to format and recover.

Adding Application Database Spaces and Chunks

You should segment certain databases into specific database spaces, depending on your particular needs. Otherwise, disk contention and the time necessary for recovery will hamper your important applications if less critical or development database activity takes place in the same dbspace. The dbspaces are added in the same manner as with the tempdbs, but the temporary status flag will be "N" this time. You can add chunks from the Dbspaces|Add_chunk menu again if necessary.

Requirements

IDS is tested and certified on certain operating system releases.

Downloading IDS

The free IDS Developer Edition can be downloaded from IDS Download Page

Installing IDS

The IDS Developer Edition is a tar archive. You can extract it with
tar -xvf ids.xx.xx.tar

The tar command will extract the installation program ids_install as well as creating several sub directories.

Under the /usr/informix direcory create a directory called ids and copy there the ids.tar file. Then untar the content of the ids.tar file there.

# mkdir ids
# mv ids.tar.gz ids/
# cd ids
# gzip -d ids.tar.gz
# tar -xvf ids.tar

ids_install can be started in GUI-, Console- or SilentInstall mode.

ids_install started in Console

To start the installation in console:

# ids_install -javahome /

Then follow the instructions according to your specific needs.

ids_install started as a GUI

  • Allow connections to the running Xserver: xhost +
  • Login as root: su -
  • Set your DISPLAY variable: export DISPLAY=:0.0
  • Start the installation program: ./install_ids -gui
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.