PERUMAL.ORG

Install Oracle Database 9i (9.2.0.6) on Red Hat Enterprise Linux 4 / CentOS 4  (2.6.9-5.0.3.EL i386 32 Bit)

~ Ram Perumal


Table of Contents

1) Things you need before Installation
2) Installing Required RPMs
3) Create ORACLE Software owner OS User
4) Setup Kernel Parameters, File Handlers, and Limits
5) Setup Temporary Swap Space
6) Setup Oracle Environment Variables
7) Unpack Oracle Software Archives
8) Verify X-Windows
9) Starting Oracle Universal Installer
10) Oracle Software Installation (9.2.0.4)
11) Patching Oracle9i R2 with Patch Set 5 (9.2.0.6) and Oracle Universal Installer 10.1.0.3
12) Database Creation
13) Database Startup and Shutdown

1) Things you need before Installation

1a) Red Hat Packages:

Install below or higher versions of Red Hat RPM packages;

make-3.80-6.EL4
compat-db-4.1.25-9
compat-gcc-32-3.2.3-47.3
compat-gcc-32-c++-3.2.3-47.3
compat-oracle-rhel4-1.0-5
compat-libcwait-2.0-2
compat-libgcc-296-2.96-132.7.2
compat-libstdc++-296-2.96-132.7.2
compat-libstdc++-33-3.2.3-47.3
gcc-3.4.6-3
gcc-c++-3.4.6-3
gnome-libs-1.4.1.2.90-44.1
gnome-libs-devel-1.4.1.2.90-44.1
libaio-devel-0.3.105-2
libaio-0.3.105-2
make-3.80-6.EL4
openmotif21-2.1.30-11.RHEL4.6
xorg-x11-deprecated-libs-devel-6.8.2-1.EL.13.37.2
xorg-x11-deprecated-libs-6.8.2-1.EL.13.37.2

1b) Oracle Supplied Compat Packages: 

compat-oracle-rhel4-1.0-5.i386.rpm 
compat-libcwait-2.0-2.i386.rpm

1c) Oracle Software:

Below files can be downloaded from http://technet.oracle.com

ship_9204_linux_disk1.cpio.gz
ship_9204_linux_disk2.cpio.gz
ship_9204_linux_disk3.cpio.gz

1d) Oracle Patches:

Below files can be downloaded from http://metalink.oracle.com 

p4198954_21_LINUX.zip
p3948480_9206_LINUX.zip
p4188455_10103_LINUX.zip
p2617419_10102_GENERIC.zip
p4190568_9206_LINUX.zip

1e) Validation and Certification:

For Validation and/or Certification, Checkout Oracle Validation Certification Matrix

2) Installing Required RPMs 

2a) Query Installed Packages:

rpm -q make compat-db compat-gcc-32 compat-gcc-32-c++ compat-oracle-rhel4 compat-libcwait compat-libgcc-296 compat-libstdc++-296 compat-libstdc++-33 gcc gcc-c++ gnome-libs gnome-libs-devel libaio-devel libaio openmotif21 xorg-x11-deprecated-libs-devel xorg-x11-deprecated-libs

Sample output as below;

make-3.80-6.EL4
compat-db-4.1.25-9
compat-gcc-32-3.2.3-47.3
compat-gcc-32-c++-3.2.3-47.3
compat-oracle-rhel4-1.0-5
compat-libcwait-2.0-2
compat-libgcc-296-2.96-132.7.2
compat-libstdc++-296-2.96-132.7.2
compat-libstdc++-33-3.2.3-47.3
gcc-3.4.6-3
gcc-c++-3.4.6-3
gnome-libs-1.4.1.2.90-44.1
gnome-libs-devel-1.4.1.2.90-44.1
libaio-devel-0.3.105-2
libaio-0.3.105-2
openmotif21-2.1.30-11.RHEL4.6
xorg-x11-deprecated-libs-devel-6.8.2-1.EL.13.37.2
xorg-x11-deprecated-libs-6.8.2-1.EL.13.37.2

If any of the above packages show as "not installed". Use yum or up2date to install, it will resolve dependencies automatically.

yum install packagename  or  up2date packagename  

2b) Install Oracle Supplied Compat Packages:

Unzip p4198954_21_LINUX.zip into/tmp

[oracle@junkyard tmp]$ unzip p4198954_21_LINUX.zip
Archive: p4198954_21_LINUX.zip
creating: 4198954/
inflating: 4198954/compat-oracle-rhel4-1.0-5.i386.rpm
inflating: 4198954/compat-libcwait-2.0-2.i386.rpm
inflating: 4198954/README.txt

Install oracle supplied packages

[oracle@junkyard tmp]$ su - root
[root@junkyard ~]$ cd /tmp/4198954
[root@junkyard 4198954]# rpm -Uvh compat-oracle-rhel4-1.0-5.i386.rpm compat-libcwait-2.0-2.i386.rpm
Preparing... ########################################### [100%]
1:compat-libcwait ########################################### [ 50%]
2:compat-oracle-rhel4 ########################################### [100%]
[root@junkyard 4198954]#

3) Create ORACLE Software owner OS User

3a) Create USER and GROUPS:

[root@junkyard ~]# groupadd dba
[root@junkyard ~]# groupadd oinstall
[root@junkyard ~]# useradd -c "Oracle software owner" -g oinstall -G dba oracle
[root@junkyard ~]# passwd oracle
Changing password for user oracle.
New UNIX password: 
Retype new UNIX password: 
passwd: all authentication tokens updated successfully.
[root@junkyard ~]# 

3b) Create Oracle Software Directory:

[root@junkyard ~]# mkdir -p /u01/app/oracle/product/9.2.0
[root@junkyard ~]# chown -R oracle.oinstall /u01
[root@junkyard ~]# chmod -R 775 /u01

4) Setup Kernel Parameters, File Handlers, and Limits

4a) Shared Memory:

Find out the default kernel parameter values

[root@junkyard ~]# cat /proc/sys/kernel/shmmax
33554432
[root@junkyard ~]# cat /proc/sys/kernel/shmmni
4096
[root@junkyard ~]# cat /proc/sys/kernel/shmall
2097152
[root@junkyard ~]# cat /proc/sys/kernel/sem
250 32000 32 128

If above kernel parameter values are higher than below values, do not set those parameters.

[root@junkyard ~]# echo "kernel.shmmax=1073741824" >> /etc/sysctl.conf
[root@junkyard ~]# echo "kernel.shmmni=4096" >> /etc/sysctl.conf
[root@junkyard ~]# echo "kernel.shmall=2097152" >> /etc/sysctl.conf
[root@junkyard ~]# echo "kernel.sem=250 32000 100 128" >> /etc/sysctl.conf

Adding these parameters to /etc/sysctl.conf will take effect only after reboot. To make this effective immediately, issue the following command  on the same window.

[root@junkyard ~]# sysctl -p

or the below command will set the kernel parameters temporarily  

[root@junkyard ~]# echo 1073741824 > /proc/sys/kernel/shmmax
[root@junkyard ~]# echo 250 32000 100 128 > /proc/sys/kernel/sem

4b) File Handlers:

Find out the default file handler values

[root@junkyard ~]# cat /proc/sys/fs/file-max
25070
[root@junkyard ~]# cat /proc/sys/fs/file-nr
880 0 25070

Modify file handler limit temporarily  

[root@junkyard ~]# echo 65536 > /proc/sys/fs/file-max

To make it permanent, Issue

[root@junkyard ~]# echo "fs.file-max=65536" >> /etc/sysctl.conf

4c) Shell Limits:

Login as root, and add below lines to  /etc/security/limits.conf 

oracle soft nofile 63536
oracle hard nofile 63536
oracle soft nproc 16384
oracle hard nproc 16384

Add soft and hard limit to ~oracle/.bash_profile  

ulimit -n 63536
ulimit -u 16384

5) Setup Temporary Swap Space

5a) Create Swap Space:

Check available memory and swap space

[root@junkyard ~]# grep MemTotal /proc/meminfo
MemTotal: 255052 kB
[root@junkyard ~]# cat /proc/swaps
Filename Type Size Used Priority
/dev/hdc2 partition 2096472 0 -1

Here is the command to create temporary swap space.

[root@junkyard ~]# dd if=/dev/zero of=tmpswap bs=1k count=900000
900000+0 records in
900000+0 records out
[root@junkyard ~]# chmod 600 tmpswap
[root@junkyard ~]# mkswap tmpswap
Setting up swapspace version 1, size = 921595 kB
[root@junkyard ~]# swapon tmpswap

5b) Remove Swap Space:

Issue the below command to disable and remove swap space

[root@junkyard ~]# swapoff tmpswap
[root@junkyard ~]# rm tmpswap

6) Setup Oracle Environment Variables

Add below lines to ~oracle/.bash_profile 

export LD_ASSUME_KERNEL=2.4.19 
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_SID=db9i1
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin

TIP: Make sure LD_ASSUME_KERNEL to 2.4.19 every time when you invoke the installer; you can verify by issuing echo $LD_ASSUME_KERNEL

7) Unpack Oracle Software Archives

Issue below command to unzip and extract cpio archive;

[oracle@junkyard ~]$ gunzip ship_9204_linux_disk1.cpio.gz ship_9204_linux_disk2.cpio.gz ship_9204_linux_disk3.cpio.gz
[oracle@junkyard ~]$ cpio -idmv < ship_9204_linux_disk1.cpio
[oracle@junkyard ~]$ cpio -idmv < ship_9204_linux_disk2.cpio
[oracle@junkyard ~]$ cpio -idmv < ship_9204_linux_disk3.cpio
[oracle@junkyard ~]$ chown -R oracle.dba Disk1/ Disk2/ Disk3/

8) Verify X-Windows

Make sure the clock (xclock) appears before you  kick off oracle installer ; Open a terminal and issue the below command

[oracle@junkyard ~]$ xclock

If you don’t see a graphical clock on the console then, Issue the below command in terminal

[oracle@junkyard ~]$ echo "DISPLAY=localhost:0.0;export DISPLAY"
[oracle@junkyard ~]$ source .bash_profile
[oracle@junkyard ~]$ xclock

If you don't see a graphical clock after setting the DISPLAY environment variable, please consult Red Hat User Manuals to configure XWindows.

9) Starting Oracle Universal Installer

Run below command to start the oracle installer, only when you succeeded step 8.  

[oracle@junkyard ~]$ cd Disk1/
[oracle@
junkyard Disk1]$ ./runInstaller

10) Oracle Software Installation (9.2.0.4)

Now run ./orainstRoot.sh before you click continue

[root@junkyard tmp]# ./orainstRoot.sh 
Creating Oracle Inventory pointer file (/etc/oraInst.loc)
Changing groupname of /u01/app/oracle/oraInventory to oinstall.
[root@junkyard tmp]# 

We will now only install Oracle Software, so Click "Custom"

Now run root.sh before clicking "OK"

[root@junkyard ~]# cd /u01/app/oracle/product/9.2.0/
[root@junkyard 9.2.0]# pwd
/u01/app/oracle/product/9.2.0
[root@junkyard 9.2.0]# ls -l root.sh 
-rwxr-xr-x 1 oracle oinstall 6053 Oct 8 20:33 root.sh
[root@junkyard 9.2.0]# ./root.sh 
Running Oracle9 root.sh script...
\nThe following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/9.2.0

Enter the full pathname of the local bin directory: [/usr/local/bin]: /usr/local/bin
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...

\nCreating /etc/oratab file...
Adding entry to /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.

11) Patching Oracle9i R2 with Patch Set 5 (9.2.0.6) and OUI 10.1.0.3

Download p4188455_10103_LINUX.zip (4188455) and p3948480_9206_LINUX.zip (3948480) from http://metalink.oracle.com

Copy them into /tmp directory

[root@junkyard oracle9i_patches_for_rhel]# cp p3948480_9206_LINUX.zip /tmp
[root@junkyard oracle9i_patches_for_rhel]# cp p4188455_10103_LINUX.zip /tmp

4188455's parameter files will be used to launch to installer that comes with 9.2.0.6 patch

[oracle@junkyard tmp]$ unzip p4188455_10103_LINUX.zip
Archive: p4188455_10103_LINUX.zip
inflating: oraparam.ini 
inflating: README.txt 
[oracle@junkyard tmp]$

Unzip 3948480 patch

[oracle@junkyard tmp]$ unzip p3948480_9206_LINUX.zip
Archive: p3948480_9206_LINUX.zip
creating: Disk1/
.....

11a) Install Oracle Universal Installer 10.1.0.3:

Execute the below command to invoke the runInstaller came with 3938480

[oracle@junkyard ~]$ /tmp/Disk1/install/runInstaller -paramFile /tmp/oraparam.ini

11b) Install Oracle 9.2.0.6 Software:

Execute the below command to invoke the runInstaller came with 3938480

[oracle@junkyard ~]$ /tmp/Disk1/install/runInstaller -paramFile /tmp/oraparam.ini

11c) Install Other Oracle Patches:

Install OPatch run

[oracle@junkyard tmp]$ unzip p2617419_10102_GENERIC.zip
Archive: p2617419_10102_GENERIC.zip
creating: OPatch/
creating: OPatch/docs/
inflating: OPatch/docs/FAQ 
inflating: OPatch/docs/Users_Guide.txt 
inflating: OPatch/docs/bt1.txt 
inflating: OPatch/docs/bt2.txt 
creating: OPatch/jlib/
inflating: OPatch/jlib/opatch.jar 
creating: OPatch/perl_modules/
inflating: OPatch/perl_modules/Apply.pm 
inflating: OPatch/perl_modules/AttachHome.pm 
inflating: OPatch/perl_modules/Command.pm 
inflating: OPatch/perl_modules/LsInventory.pm 
inflating: OPatch/perl_modules/Query.pm 
inflating: OPatch/perl_modules/RollBack.pm 
inflating: OPatch/perl_modules/Version.pm 
inflating: OPatch/perl_modules/XML.pm 
inflating: OPatch/perl_modules/opatchIO.pm 
inflating: OPatch/opatch 
inflating: OPatch/opatch.pl 
inflating: OPatch/opatch.bat 
inflating: OPatch/emdpatch.pl 
inflating: OPatch/README.txt 
[oracle@junkyard tmp]$ cp -a /tmp/OPatch/ $ORACLE_HOME

To extract  patch 4190568, run

[oracle@junkyard tmp]$ unzip p4190568_9206_LINUX.zip
Archive: p4190568_9206_LINUX.zip
creating: 4193454/
creating: 4193454/files/
creating: 4193454/files/lib/
creating: 4193454/files/lib/stubs/
inflating: 4193454/files/lib/stubs/ld-linux-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/ld-linux.so.2 
inflating: 4193454/files/lib/stubs/libBrokenLocale-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libBrokenLocale.so 
inflating: 4193454/files/lib/stubs/libBrokenLocale.so.1 
inflating: 4193454/files/lib/stubs/libICE-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libICE.so 
inflating: 4193454/files/lib/stubs/libICE.so.6 
inflating: 4193454/files/lib/stubs/libNoVersion-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libNoVersion.so.1 
inflating: 4193454/files/lib/stubs/libPEX5-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libPEX5.so 
inflating: 4193454/files/lib/stubs/libPEX5.so.6 
inflating: 4193454/files/lib/stubs/libSM-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libSM.so 
inflating: 4193454/files/lib/stubs/libSM.so.6 
inflating: 4193454/files/lib/stubs/libX11-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libX11.so 
inflating: 4193454/files/lib/stubs/libX11.so.6 
inflating: 4193454/files/lib/stubs/libXIE-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libXIE.so 
inflating: 4193454/files/lib/stubs/libXIE.so.6 
inflating: 4193454/files/lib/stubs/libXaw-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libXaw.so 
inflating: 4193454/files/lib/stubs/libXaw.so.7 
inflating: 4193454/files/lib/stubs/libXaw3d-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libXaw3d.so 
inflating: 4193454/files/lib/stubs/libXaw3d.so.7 
inflating: 4193454/files/lib/stubs/libXext-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libXext.so 
inflating: 4193454/files/lib/stubs/libXext.so.6 
inflating: 4193454/files/lib/stubs/libXi-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libXi.so 
inflating: 4193454/files/lib/stubs/libXi.so.6 
inflating: 4193454/files/lib/stubs/libXm-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libXm.so 
inflating: 4193454/files/lib/stubs/libXm.so.2 
inflating: 4193454/files/lib/stubs/libXmu-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libXmu.so 
inflating: 4193454/files/lib/stubs/libXmu.so.6 
inflating: 4193454/files/lib/stubs/libXp-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libXp.so 
inflating: 4193454/files/lib/stubs/libXp.so.6 
inflating: 4193454/files/lib/stubs/libXpm-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libXpm.so 
inflating: 4193454/files/lib/stubs/libXpm.so.4 
inflating: 4193454/files/lib/stubs/libXt-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libXt.so 
inflating: 4193454/files/lib/stubs/libXt.so.6 
inflating: 4193454/files/lib/stubs/libXtst-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libXtst.so 
inflating: 4193454/files/lib/stubs/libXtst.so.6 
inflating: 4193454/files/lib/stubs/libaio-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libaio.so 
inflating: 4193454/files/lib/stubs/libaio.so.1 
inflating: 4193454/files/lib/stubs/libc-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libc.so 
inflating: 4193454/files/lib/stubs/libc.so.6 
inflating: 4193454/files/lib/stubs/libc.tmp 
inflating: 4193454/files/lib/stubs/libcrypt-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libcrypt.so 
inflating: 4193454/files/lib/stubs/libcrypt.so.1 
inflating: 4193454/files/lib/stubs/libdl-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libdl.so 
inflating: 4193454/files/lib/stubs/libdl.so.2 
inflating: 4193454/files/lib/stubs/libm-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libm.so 
inflating: 4193454/files/lib/stubs/libm.so.6 
inflating: 4193454/files/lib/stubs/libnsl-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libnsl.so 
inflating: 4193454/files/lib/stubs/libnsl.so.1 
inflating: 4193454/files/lib/stubs/libpthread-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libpthread.so 
inflating: 4193454/files/lib/stubs/libpthread.so.0 
inflating: 4193454/files/lib/stubs/libresolv-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libresolv.so 
inflating: 4193454/files/lib/stubs/libresolv.so.2 
inflating: 4193454/files/lib/stubs/librt-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/librt.so 
inflating: 4193454/files/lib/stubs/librt.so.1 
inflating: 4193454/files/lib/stubs/libstdc++-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libutil.so 
inflating: 4193454/files/lib/stubs/libstdc++-libc6.2-2.so.3 
inflating: 4193454/files/lib/stubs/libstdc++.so 
inflating: 4193454/files/lib/stubs/libutil-2.2.2-stub.so 
inflating: 4193454/files/lib/stubs/libutil.so.1 
creating: 4193454/files/precomp/
creating: 4193454/files/precomp/lib/
inflating: 4193454/files/precomp/lib/env_precomp.mk 
creating: 4193454/files/precomp/admin/
inflating: 4193454/files/precomp/admin/pcscfg.cfg 
creating: 4193454/files/xdk/
creating: 4193454/files/xdk/demo/
creating: 4193454/files/xdk/demo/c/
inflating: 4193454/files/xdk/demo/c/Makefile.defs 
creating: 4193454/files/network/
creating: 4193454/files/network/agent/
creating: 4193454/files/network/agent/tcl/
inflating: 4193454/files/network/agent/tcl/sorainit.tcl 
creating: 4193454/files/otrace/
creating: 4193454/files/otrace/demo/
inflating: 4193454/files/otrace/demo/atmoci.mk 
creating: 4193454/etc/
creating: 4193454/etc/config/
inflating: 4193454/etc/config/inventory 
inflating: 4193454/etc/config/actions 
creating: 4193454/etc/xml/
inflating: 4193454/etc/xml/GenericActions.xml 
inflating: 4193454/etc/xml/ShiphomeDirectoryStructure.xml 
inflating: 4193454/README.txt 
[oracle@junkyard tmp]$ 

To execute  patch 4190568, run

[oracle@junkyard tmp]$ cd 4193454
[oracle@junkyard 4193454]$ export PATH=$PATH:$ORACLE_HOME/OPatch
[oracle@junkyard 4193454]$ opatch apply

Oracle Interim Patch Installer version 1.0.0.0.52
Copyright (c) 2005 Oracle Corporation. All Rights Reserved..

We recommend you refer to the OPatch documentation under
OPatch/docs for usage reference. We also recommend using
the latest OPatch version. For the latest OPatch version
and other support related issues, please refer to document
293369.1 which is viewable from metalink.oracle.com

Oracle Home = /u01/app/oracle/product/9.2.0
Location of Oracle Universal Installer components = /u01/app/oracle/product/9.2.0/oui
Location of OraInstaller.jar = "/u01/app/oracle/product/9.2.0/oui/jlib"
Oracle Universal Installer shared library = /u01/app/oracle/product/9.2.0/oui/lib/linux/liboraInstaller.so
Location of Oracle Inventory Pointer = /etc/oraInst.loc
Location of Oracle Inventory = /u01/app/oracle/product/9.2.0/inventory
Path to Java = /u01/app/oracle/product/9.2.0/jre/1.4.2/bin/java
Log file = /u01/app/oracle/product/9.2.0/.patch_storage/<patch ID>/*.log

Backing up comps.xml ...

OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.


Please shut down Oracle instances running out of this ORACLE_HOME
(Oracle Home = /u01/app/oracle/product/9.2.0)
Is this system ready for updating?
Please respond Y|N > 
Y
Patching...

Updating inventory...
Backing up comps.xml ...


OPatch succeeded.
[oracle@junkyard 4193454]

12) Database Creation

Login as oracle, and use dbca to create the database

[oracle@junkyard ~]$ dbca

13) Database Startup and Shutdown

To Start Database, Login as oracle and Issue:

[oracle@junkyard ~]$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup

To Shutdown Database, Login as oracle and Issue:

[oracle@junkyard ~]$ sqlplus /nolog
SQL> connect / as sysdba
SQL> shutdown


DISCLAIMER: This information is provided "AS-IS" without warranty of any kind, either expressed or implied. Use of the information posted in this site is at your own risk.