Install Ingres client
From PTAGISWiki
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
