Install Ingres client

From PTAGISWiki

Jump to: navigation, search

Ingres client is installed on pitblade, bay, and jack. A system environment variable on each machine points to the current instance of the installation. Multiple installations can exist on a machine, but only one may be current at a given time. The $II_SYSTEM variable determines which installation is current.

The steps for creating a new instance of Ingres are documented here.

See also the Ingres Installation Guide: http://docs.ingres.com/install/InstallingIngresonUNIX

Contents

Determine installation code for new instance

Increment the existing instance value, ie. TH -> UI

For the purposes of this example, I'll use the improbable instance code of BB.

Determine the new value of $II_SYSTEM

This path should include the installation code and major version number.

For instance, given a major release number of 2006r2 and an instance code of BB, an acceptable $II_SYSTEM would be

/dsk1/ing2006r2/ingBB

Download

http://ingres.com/downloads/prod-cert-download.php Our architecture is generally Sun-Sparc. The "Generally Available" releases are marked GA and are certified for production use. So look for a download in the category "Release 2 GA Other Platforms". At the time this page was written, this would be the package to download for most of our systems.

Ingres 2006 Release 2 Service Pack 1
Sun Solaris SPARC (32-bit and 64-bit) 	RDBMS Executable
119MB-TAR 	II 9.1.1 (su9.us5/103)
7c1234104b1cc142a98c5e8b7b6bf6ed

Installation

The installation can be done while a current instance is running, given that we take care not to overwrite anything.

Create new $II_SYSTEM directory

Create the directory and give permissions to the ingres user for that directory.

mkdir /dsk1/ing2006r2/ingBB
chgrp ingres /dsk1/ing2006r2/ingBB
chown ingres /dsk1/ing2006r2/ingBB
chmod 755 /dsk1/ing2006r2/ingBB

Extract (untar)

Become user ingres.

su - ingres

Untar the downloaded file. You'll find an ingres.tar file inside. Extract ingres.tar to the new $II_SYSTEM/ingres.

cd /tmp
tar xvf /tmp/ing2006r2-version.tar
cd /tmp/ing2006r2-version
cd /dsk1/ing2006r2/ingBB
mkdir ingres
cd ingres
tar xvf /tmp/ing2006r2/ingres.tar

edit set_ing_install.sh

The script that sets up the environment for all ingres users is ~ingres/set_ing_install.sh. That script needs to define the list of known Ingres instances. It is generally invoked with a parameter that specifies which instance should be the current instance. The script that invokes it is ing_system_def.sh, so this is where the current instance is set.

This is an example of the code the builds the list of known instances.

# Produce list of known installations ...
# NOTE:  All valid Ingres installations must
#        be registered here:
#
#  Code | II_SYSTEM Directory | LD_LIBRARY_PATH
echo "PD|/usr|/opt/SUNWspro:/usr/openwin/lib:/usr/dt/lib:/usr/ingres/SUNWspro"      >$ING_REGISTRY

echo "QE|/usr/op_ing/ing12|/lib:/usr/op_ing/ing12/ingres/lib:/opt/SUNWspro:/usr/openwin/lib:/usr/dt/lib:/usr/ingres/SUN
Wspro" >>$ING_REGISTRY

echo "RF|/usr/op_ing/ing20|/lib:/usr/ccs/lib:/usr/ucblib:/usr/op_ing/ing20/ingres/lib:/opt/SUNWspro:/usr/openwin/lib:/u
sr/dt/lib:/usr/ingres/SUNWspro" >>$ING_REGISTRY

#echo "SG|/usr/op_ing/ingII|/lib:/usr/ccs/lib:/usr/ucblib:/usr/op_ing/ingII/ingres/lib:/opt/SUNWspro:/usr/openwin/lib:/
usr/dt/lib:/usr/ingres/SUNWspro" >>$ING_REGISTRY
echo "SG|/usr/op_ing/ingII|/lib:/usr/ccs/lib:/usr/ucblib:/usr/op_ing/ingII/ingres/lib:/opt/SUNWspro:/usr/openwin/lib:/u
sr/dt/lib"                       >>$ING_REGISTRY

For our example, assume the following segment of set_ing_install.sh exists:

# Produce list of known installations ...
# NOTE:  All valid Ingres installations must
#        be registered here:
#
#  Code | II_SYSTEM Directory | LD_LIBRARY_PATH
echo "AA|/usr/ing2006r2/ingAA|/opt/SUNWspro:/usr/openwin/lib:/usr/dt/lib:/usr/ingres/SUNWspro"      >$ING_REGISTRY

So we would add the following line (please note the >> for append instead of > for overwrite):

echo "BB|/usr/ing2006r2/ingBB|/opt/SUNWspro:/usr/openwin/lib:/usr/dt/lib:/usr/ingres/SUNWspro"      >>$ING_REGISTRY

verify class path to driver

Recently we switched from edbcDriver to iijdbcDriver. Make sure that the right jar is defined in set_ing_install.sh

# Add JDBC driver to CLASSPATH ...
if [ -s $II_SYSTEM/ingres/lib/iijdbc.jar ]; then
   CLASSPATH=$CLASSPATH:$II_SYSTEM/ingres/lib/iijdbc.jar
   export CLASSPATH
fi

ingbuild

execute set_ing_install.sh

set_ing_install.sh HH
ingres/install/ingbuild

You'll have to have the proper termcap set (vt100fx) for ingbuild to run.

  • Specify CustomInstall
  • Specify the install path (the path to the ingres.tar that was extracted from the downloaded tarball).

In this example, I extracted the tar file to /tmp, so the path would look like this:

CustomInstall path: /tmp/ing2006-version/ingres.tar

select components

Ingres Networking Yes
Ingres Data Access Server Yes
Query and Reporting Runtime Yes
Query and Reporting Tools Yes
Terminal Monitors Yes


post-install configuration

After the selected modules are successfully installed, you'll be prompted to setup these modules. Execute the setup programs.

Specify:

  • character set (accept default)
  • time zone (North America, Pacific)
  • password

Todd has the passwords on file if there is any doubt.

cbf

Use cbf to set the startup count appropriately for the jdbc server. Out of the box, some elements are set to start zero instances, so they must be manually turned on in cbf.

ingstart

Use "ingstart" to actually activate the installation.

create vnodes

Use "netutil" to create the vnodes required for this instance.

Problems

cbf fails to start

Following this procedure on pitblade, I was able to create and start the HH instance, but a data server doesn't start. When I try to run cbf to change the startup counts, I get this error:

bash-2.05$ cbf
Exiting . . .

due to Front-End internal bug check
Routine `FEadfcb(start)'.
Please contact your Technical Support representative.

This error occurs whether I have the HH instance running or not.

Resolution

This seems to be the result of a subtle difference in the behavior of different shells. Specifically, it works to do this:

bash
. /usr/ingres/set_ing_install.sh

But this doesn't work:

bash
/usr/ingres/set_ing_install.sh

syscheck fails

This error occurs when trying to run syscheck:

pitblade:HH:ingres: > ./syscheck

Checking host "pitblade" for system resources required to run Ingres...

-1 symbols not found

Resolution

A workaround is to use cbf to turn off syscheck before cbf and ingstart. The problem appears to be with the LD_LIBRARY_PATH, perhaps related to 64-bit issues.

However, all the libraries needed for syscheck are satisfied:

pitblade:HH:ingres: > ldd syscheck
        libm.so.1 =>     /lib/libm.so.1
        libdl.so.1 =>    /lib/libdl.so.1
        libsocket.so.1 =>        /lib/libsocket.so.1
        libelf.so.1 =>   /lib/libelf.so.1
        libposix4.so.1 =>        /lib/libposix4.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        libthread.so.1 =>        /lib/libthread.so.1
        libc.so.1 =>     /lib/libc.so.1
        libaio.so.1 =>   /lib/libaio.so.1
        libmd5.so.1 =>   /lib/libmd5.so.1
        libmp.so.2 =>    /lib/libmp.so.2
        /usr/platform/SUNW,Sun-Fire-V210/lib/libc_psr.so.1
        /usr/platform/SUNW,Sun-Fire-V210/lib/libmd5_psr.so.1

This is the value of LD_LIBRARY_PATH:

pitblade:HH:ingres: > set | grep LD
LD_LIBRARY_PATH=/lib:/usr/ccs/lib:/usr/ucblib:/dsk1/AdvIngres/ing26/ingHH/ingres/lib:/opt/SUNWspro:
  /usr/openwin/lib:/usr/dt/lib:/usr/ingres/SUNWspro
Personal tools