Penguin
Diff: HowToIngresIIHOWTO
EditPageHistoryDiffInfoLikePages

Differences between version 3 and previous revision of HowToIngresIIHOWTO.

Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History

Newer page: version 3 Last edited on Tuesday, October 26, 2004 10:15:05 am by AristotlePagaltzis Revert
Older page: version 2 Last edited on Friday, June 7, 2002 1:06:49 am by perry Revert
@@ -1,3423 +1 @@
-Ingres II HOWTO  
-!!!Ingres II HOWTO  
-!Pal Domokos  
-  
-pal@palslib.com  
-  
-  
-  
-__Revision History__Revision V1.1.12001/09/05Revised by: pdE-mail changed; links to further Ingres resources.Revision V1.12000/06/20Revised by: pdExtended with material on the full version of Ingres II 2.0Revision V1.011999/12/23Revised by: pdMinor fixesRevision V1.01999/11/07Revised by: pdOriginal version  
-  
-  
-  
-  
-  
-This document helps install the Ingres II Relational  
-Database Management System on Linux.  
-It covers the setup of both the free Software Development Kit and the  
-full version of Ingres.  
-Further sections try to make it easier to start working with  
-Ingres.  
-  
-  
-  
-  
-  
-----; __Table of Contents__; 1. Introduction: ; 1.1. Copyright; 1.2. Disclaimer; 1.3. New Versions of the HOWTO; 1.4. Credits; 1.5. Audience; 2. Ingres: ; 2.1. University Ingres and Commercial Ingres; 2.2. The Software Development Kit; 2.3. The Beta Version; 2.4. The Ingres II Full Edition; 2.5. The Unicenter TNG Framework; 3. System Requirements: ; 3.1. Hardware; 3.2. Software; 3.3. Kernel Parameters; 3.4. The ingres User and II_SYSTEM; 4. Preparing for the Installation: ; 4.1. Ingres Environment Variables; 4.2. II_LOG_FILE and II_DUAL_LOG; 4.3. Database Locations; 4.4. The iidbdb Database; 4.5. II_DATABASE; 4.6. II_CHECKPOINT; 4.7. II_DUMP; 4.8. II_JOURNAL; 4.9. II_WORK; 4.10. Other Ingres Environment Variables; 5. The Installation Process: ; 5.1. Starting the Installation Program; 5.2. Express Install; 5.3. Manual Install; 5.4. Completing the Initial Configuration; 5.5. Re-installation; 5.6. Command Line Install (SDK); 5.7. Client Installation (Full Version); 5.8. The Installer's Log; 5.9. Checking the Installation; 6. Basic System and Database Administration: ; 6.1. Starting and Stopping Ingres; 6.2. New Ingres Users and Locations; 6.3. Creating and Destroying Databases; 6.4. Collation Sequences; 6.5. Backup and Recovery; 6.6. Configuring Ingres; 6.7. Monitoring Ingres; 6.8. Message Files; 7. Ingres/Net: ; 7.1. User Authentication; 7.2. Login Account Passwords; 7.3. Installation Passwords; 7.4. ingvalidpw; 7.5. Setting up the Client; 7.6. Setting up the Server; 7.7. Using Net; 8. ICE (Internet Commerce Enabled): ; 8.1. Configuring Apache; 8.2. ICE Setup; 9. Miscellaneous Topics: ; 9.1. Automatic Startup and Shutdown; 9.2. ingmenu; 9.3. Circumventing Ingres Net; 9.4. Forms-Based Development Tools; 9.5. Ingperl and Perl DBI; 9.6. Ingres links  
-!!!1. Introduction  
-!!1.1. Copyright  
-  
-Copyright © 1999-2001 by Pal Domokos.  
-  
-  
-  
-Please freely copy and distribute (sell or give away) this document  
-in any format.  
-It is requested that corrections and/or comments be forwarded to the document  
-maintainer.  
-You may create a derivative work and distribute it provided that you:  
-  
-  
-  
-  
-  
-  
-#  
-  
-Send your derivative work (in the most suitable format such  
-as SGML) to the LDP  
-(Linux Documentation  
-Project) or the like for posting on the Internet.  
-If not the LDP, then let the  
-LDP know where it is available.  
-  
-  
-#  
-#  
-  
-License the derivative work with this same license or use  
-GPL.  
-Include a copyright notice and at least a pointer to the license used.  
-  
-  
-  
-#  
-#  
-  
-Give due credit to previous authors and major contributors.  
-If you are considering making a derived work other than a  
-translation, it is requested that you discuss your plans with the  
-current maintainer.  
-  
-  
-#----  
-!!1.2. Disclaimer  
-  
-To put it briefly: there is no warranty about the validity of any  
-other statement in this document.  
-Read and use at your own risk.  
-  
-  
-  
-Furthermore, I am not an employee of Computer Associates  
-International and I have no official links with CA.  
-This HOWTO is ''not'' official documentation.  
-  
-  
-  
-All copyrights are held by their respective owners.  
-Use of a term in this document should not be regarded as affecting the  
-validity of any trademark or service mark.  
-  
-----  
-!!1.3. New Versions of the HOWTO  
-  
-The latest version of this HOWTO can always be found on the  
-Linux Documentation Project's  
-site, in various formats:  
-  
-  
-  
-  
-  
-  
-*  
-  
- HTML - multiple pages  
-  
-  
-*  
-*  
-  
- HTML - multiple pages: tarred and gzipped  
-  
-  
-*  
-*  
-  
- HTML - single page  
-  
-  
-*  
-*  
-  
- PDF  
-  
-  
-*  
-*  
-  
- !PostScript - gzipped  
-  
-  
-*  
-*  
-  
- Text  
-  
-  
-*  
-*  
-  
- SGML (!DocBook) source - gzipped  
-  
-  
-*  
-  
-The LDP has many mirrors around the world, as listed on  
- http://www.linuxdoc.org/mirrors.html.  
-Some of these mirrors may be out of date, though.  
-Therefore I suggest you check  
-LDP's primary  
-site for new versions.  
-  
-  
-  
-HOWTOs are also bundled with most Linux distributions.  
-If you are reading this HOWTO from your Linux CD, also take a look at  
-LDP's  
-main site to check if a newer version exists.  
-  
-----  
-!!1.4. Credits  
-  
-I would like to thank for all the feedback I have received so far.  
-I found especially valuable the contributions of Jorgen Heesche  
-(on forms-based development tools), and Gerhard Hofmann (on the  
-automatic startup and shutdown of Ingres).  
-  
-  
-  
-Last, but not least, my thanks go to CA for making it  
-possible for me to examine the  
-Ingres II 2.0 Enterprise Edition for Linux.  
-  
-  
-  
-Naturally, I continue to welcome any comments, criticisms and suggestions.  
-Just email me at `pal@palslib.comb.  
-  
-----  
-!!1.5. Audience  
-  
-This HOWTO aims to help install Ingres II on  
-(Intel) Linux.  
-As always, help is useful for those who need it and can utilize  
-it as well.  
-  
-  
-  
-Therefore:  
-  
-  
-  
-  
-  
-  
-*  
-  
-If you are an Ingres pro familiar  
-with Linux then you do not really need to read this HOWTO.  
-Skim through it though if you have time.  
-  
-  
-*  
-*  
-  
-If you have no previous background in relational database  
-management (experience with at least one real RDBMS,  
-not some dBase-like file management system),  
-you do not know UNIX and have  
-just started using Linux, this HOWTO will not make an easy reading  
-for you.  
-Even then, I do not want to persuade you ''not'' to  
-try to install and use Ingres.  
-Do not give up easy!  
-  
-  
-*  
-  
-If you are not a novice in database management and have some  
-working knowledge of Linux, this HOWTO is for you!  
-We are not going to discuss the basics of relational database  
-management or SQL in this document, neither are we going  
-to elaborate on how to edit text files on Linux.  
-You can find as much information on these topics as you want in  
-numerous places.  
-This HOWTO is not an Ingres guide, either: the  
-Ingres manuals serve that purpose.  
-  
-  
-  
-The objective of this HOWTO is that the reader can prepare for,  
-then implement the installation of Ingres II on  
-Linux, through simple and understandable steps.  
-It also gives starting points for basic Ingres  
-system and database administration.  
-  
-  
-  
-I can only hope that the HOWTO reaches its goal.  
-  
-----  
-!!!2. Ingres  
-  
-In this section the Ingres II Relational Database  
-Management System is introduced and you come to know how  
-to get it.  
-  
-----  
-!!2.1. University Ingres and Commercial Ingres  
-  
-Let us start with an important fact: there are two different types  
-of Ingres.  
-The original one, which was designed and developed in the seventies by a  
-research group led by Michael Stonebraker at the University of California,  
-Berkeley, was the first open source relational database management system:  
-it was free to use and distribute, source code included.  
-In fact, it ''is'' still free software, although its  
-development stopped in 1989.  
-Its last version (version 8.9) made it into some Linux distributions as well.  
-If you are interested in it, you can download it from, say, the SuSE site.  
-The packages are:  
-  
-  
-  
-  
-  
-  
-*  
-  
- The main software  
-  
-  
-*  
-*  
-  
- The tools  
-  
-  
-*  
-  
-In 1979, with the foundation of Relational Technology, the career  
-of Commercial Ingres started.  
-Since 1995 it has been distributed by Computer Associates.  
-Its latest version is Ingres II 2..  
-This HOWTO deals with the installation of this type of  
-Ingres.  
-  
-----  
-!!2.2. The Software Development Kit  
-  
-Ingres, being commercial software,  
-is not free to use.  
-However, CA, like most RDBMS vendors,  
-offers a free version of it  
-(the Software Development Kit) to everyone who is interested in learning  
-Ingres.  
-The SDK has two variants, one for Windows NT and one  
-for Linux.  
-These variants are not quite the same as far as the included components  
-are concerned.  
-Obviously, we are engaged in installing the SDK for  
-Linux here.  
-This contains the following elements:  
-  
-  
-  
-  
-  
-  
-*  
-  
-Intelligent DBMS: the database engine.  
-  
-  
-*  
-*  
-  
-Internet Commerce Enabled (ICE):  
-Ingres' propriatery CGI  
-solution to connect a database to the Web.  
-  
-  
-*  
-*  
-  
-Enhanced Security: the tool supporting mandatory access  
-control.  
-  
-  
-*  
-*  
-  
-C2 Security Auditing: the possibility of C2 level auditing.  
-  
-  
-*  
-*  
-  
-Terminal Monitors: forms-based and command line  
-SQL interfaces.  
-  
-  
-*  
-*  
-  
-Querying and Reporting Tools: forms-based querying,  
-report-writing and report-running tools plus a forms editor.  
-  
-  
-*  
-*  
-  
-Querying and Reporting Runtime: like the previous one,  
-but without the forms editor.  
-  
-  
-*  
-*  
-  
-Vision Pro: integrated, forms-based development environment  
-with a code generator.  
-  
-  
-*  
-*  
-  
-Embedded SQL Precompilers: precompilers for  
-embedding SQL statements in 3GL  
-applications.  
-Supported languages are: C, C++, COBOL, and Fortran.  
-  
-  
-*  
-  
-You can order a free copy of the  
-Ingres SDK CD on  
- http://www.cai.com/registration/cd_ingres.htm.  
-  
-  
-  
-Remember that you are not allowed to use the  
-SDK in a business environment.  
-It is for evaluating Ingres and prototyping  
-applications only.  
-  
-  
-  
-The SDK CD contains both the  
-Windows NT and the Linux versions of the Software Development Kit.  
-You can find the Linux files in the following directories:  
-  
-  
-  
-  
-  
-  
-*  
-  
-/doc: the manuals in  
-PDF format, together with the Linux version  
-of Acrobat Reader  
-(linux-ar-40.tar.gz).  
-The installer will not copy the documentation to hard disk.  
-These manuals are also available on  
- http://www.cai.com/products/ingres/documentation_set.htm.  
-I will reference some of them later in this document.  
-  
-  
-*  
-*  
-  
-/int_lnx:  
-this directory contains ingres.tar,  
-the tarball to be installed.  
-ingres.tar can be installed directly  
-from the CD or you can copy it to hard disk first.  
-  
-  
-*  
-  
-Do not forget to read the Readme file in the  
-root directory on the CD.  
-  
-----  
-!!2.3. The Beta Version  
-  
-The freshest beta version of the SDK can  
-always be downloaded from  
- http://www.cai.com/products/betas/ingres_linux/ingres_linux.htm.  
-  
-  
-  
-  
-  
-  
-  
-  
-At the time of writing, the version of the downloadable beta is 2.5.  
-The next revision of the HOWTO will cover the installation of this  
-version, too.  
-The 2.0 beta is still available on  
- ftp://ftp.cai.com/pub/marketing/ingres/ingresII9808libc6.tar.  
-  
-----  
-!!2.4. The Ingres II Full Edition  
-  
-In February 2000 Computer Associates announced the general  
-availability of Ingres II 2.0 for Linux.  
-Besides the components found in the SDK,  
-the full edition contains more modules, such as:  
-  
-  
-  
-  
-  
-  
-*  
-  
-Net: this component makes possible for  
-Ingres utilities and user applications  
-to access databases residing on different installations.  
-  
-  
-*  
-*  
-  
-Replicator: support for replication functions.  
-  
-  
-*  
-*  
-  
-Star: for handling distributed databases.  
-  
-  
-*  
-*  
-  
-Enterprise Access: communication with different database  
-management systems and other, non-relational data sources  
-(used to be called Gateways).  
-  
-  
-*  
-*  
-  
-Protocol Bridge: for communicating with clients on different  
-types of networks.  
-  
-  
-*  
-*  
-  
-Spatial Object Library: for handling two-dimensional spatial  
-objects.  
-  
-  
-*  
-  
-The CD, besides the /doc and  
-/int_lnx directories that are common  
-with the SDK, contains install.sh, the general  
-Ingres installer and its files.  
-More on install.sh later, in subsection  
-Starting the Installation Program.  
-  
-----  
-!!2.5. The Unicenter TNG Framework  
-  
-At last, let me note that the Linux version of CA's  
-Unicenter TNG Framework also includes  
-Ingres as its embedded database management system.  
-For this reason, knowing Ingres may come in  
-handy when using Unicenter, too.  
-You can order a free Unicenter TNG Framework CD on  
-  
-  
-  
-  
-  
-  
-  
-*  
-  
- http://www.cai.com/registration/tng_framework_linux/index.htm  
-for !RedHat, or  
-  
-  
-*  
-*  
-  
- http://www.cai.com/registration/tng_framework_linux/suse_linux.htm  
-for SuSE.  
-  
-  
-*----  
-!!!3. System Requirements  
-  
-In this section you will see what hardware and software  
-requirements must be met before you can install  
-Ingres.  
-The ingres user, owner of the installation, makes a debut, too.  
-  
-----  
-!!3.1. Hardware  
-  
-The minimal hardware capable of running Ingres  
-is:  
-  
-  
-  
-  
-  
-  
-*  
-  
-486x33 processor, Pentium recommended.  
-  
-  
-*  
-*  
-  
-16 Mb RAM, with 32 Mb swap space (64 Mb  
-RAM recommended).  
-  
-  
-*  
-*  
-  
-200 Mb disk space if you install everything (150 Mb will do  
-for the SDK).  
-You do not need to have this space in one file system: we will discuss  
-the possibilities in the section Preparing for the Installation.  
-  
-  
-*  
-  
-  
-  
-  
-  
-  
-This is the ''minimum'' recommended configuration.  
-Ingres, like most other RDBMSs,  
-is a fairly resource-hungry application.  
-While your development system will probably run beatifully on a 166 MHz  
-Pentium with 64 Mb RAM, a live system with  
-potentially many concurrent users would require more iron.  
-  
-----  
-!!3.2. Software  
-  
-The following software must be present for  
-Ingres to run:  
-  
-  
-  
-  
-  
-  
-*  
-  
-kernel 2..34 or higher.  
-  
-  
-*  
-*  
-  
-libcrypt.so - this library is not included in every Linux  
-distribution.  
-If this is the case with your system, check your distribution's  
-Web site: they must have it somewhere.  
-  
-  
-*  
-*  
-  
-uncompress - certain  
-Linux distributions (such as Caldera's Open Linux 2.2) do not  
-contain the ncompress package.  
-Again, check your distribution's Web site if you do not have it.  
-  
-  
-*  
-  
-Working glibc versions:  
-  
-  
-  
-  
-  
-  
-glibc  
-SDK  
-Full Version  
-glibc 2.07 (eg !RedHat 5.2)  
-Yes.  
-No.  
-glibc 2.1 (eg !RedHat 6.)  
-Yes but you need the !RedHat compatibility packages and an  
-Ingres patch to be able to use  
-the forms-based development tools.  
-See Forms-Based Development Tools for details.  
-Yes.  
-glibc 2.1.1, 2.1.2 (eg !RedHat 6.1)  
-No.  
-Yes.  
-glibc 2.1.3 (eg !RedHat 6.2)  
-See glibc 2.1.  
-Yes.  
-  
-  
-  
-  
-  
-  
-If you are unsure of the version of your glibc, check the  
-/lib directory:  
-  
-  
-# ls -l /lib/libc*so  
-  
-  
-The output should be something like:  
-  
-  
--rwxr-xr-x ... /lib/libc-2.1.3.so  
-  
-  
-The version of my glibc is apparently 2.1.3.  
-  
-  
-  
-  
-  
-  
-  
-  
-There is no guarantee that if your system meets the above  
-requirements you will be able to install Ingres  
-on it.  
-Sticking to a distribution that is explicitly mentioned in the  
-release notes of your Ingres version is the  
-best way to avoid installation problems.  
-  
-----  
-!!3.3. Kernel Parameters  
-  
-The default settings of the Linux kernel are adequate for a  
-development Ingres environment.  
-For a live system, however, probably to increase the size of the database  
-cache(s), you may want to change the built-in value of the  
-''SHMMAX'' parameter.  
-This parameter sets the maximum size of a shared memory segment.  
-By default, it is 32 Mb which allows for a somewhat lesser buffer cache.  
-  
-  
-  
-You have two choices to change the value of ''SHMMAX'':  
-  
-  
-  
-  
-As root, simply __echo__ the new value into  
-/proc/sys/kernel/shmmax:  
-  
-  
-#echo 83886080 b /proc/sys/kernel/shmmax  
-  
-  
-In the example above, we set the value of ''SHMMAX''  
-to 80 Mb.  
-The change takes effect immediately but after a reboot, the original value  
-is restored.  
-  
-  
-  
-The other possibility is to change ''SHMMAX'''s  
-default value in the kernel source (the relevant header file is  
-/usr/src/linux/include/asm/shmparam.h if you have  
-installed the source).  
-In this case, you may also have to modify other parameters in the file, then  
-rebuild the kernel.  
-I suggest you do it only if you know what you are doing.  
-For information on how to configure and compile the kernel see  
- The Linux Kernel HOWTO by Brian Ward.  
-  
-----  
-!!3.4. The ingres User and II_SYSTEM  
-  
-We need an account called ingres to install and run  
-Ingres.  
-He will own the installed software and only he can perform system  
-management tasks such as starting and stopping  
-Ingres.  
-  
-  
-  
-The ingres user may belong to any group.  
-In the following example, we will create a separate group for him.  
-  
-  
-  
-The verified (therefore, recommended) shell for the ingres user is  
-__bash__.  
-All examples in this paper apply to this shell.  
-If you use some other shell (which is probably just as fine),  
-take into account the differences in syntax.  
-  
-  
-  
-The binaries, shared libraries, configuration files and  
-other files which make up the Ingres software,  
-will be located in a tree structure after installation.  
-You will set the root of this tree via the shell variable  
-II_SYSTEM in the environment of the ingres user (to be exact,  
-the root directory will be  
-$II_SYSTEM/ingres).  
-  
-  
-  
-If you plan to install the whole software, either the  
-SDK, or the full version, make sure you have  
-the following free space under  
-$II_SYSTEM/ingres:  
-  
-  
-  
-  
-  
-  
-SDK  
-Full Version  
-70 Mb  
-90 Mb  
-  
-  
-  
-  
-  
-  
-10 Mb extra free space is needed during installation.  
-  
-  
-  
-  
-  
-  
-  
-  
-If this is the first time you install  
-Ingres (I hope you start with the  
-SDK, not a live system), I suggest you  
-keep the whole installation (the Ingres software,  
-databases, backups, sort areas, etc.) in one place so that you can find  
-every component easily.  
-If you have at least 150-200 Mb free space under  
-$II_SYSTEM/ingres  
-and you do not plan to create large databases (at least, not  
-for some time), your system will work without problems.  
-Should you at any later time run out of space, you will always  
-have the possibility to relocate some of your databases to other  
-partitions.  
-  
-  
-  
-In the following, I will assume that II_SYSTEM is set to  
-/opt.  
-  
-  
-  
-Logging in as root, execute the tasks mentioned above:  
-  
-  
-# useradd -d /opt/ingres -s /bin/bash ingres  
-# chmod 755 /opt/ingres  
-# passwd ingres  
-  
-  
-The __useradd__ command creates a group with the same  
-name as the new user if you do not specify the group on the command line.  
-It also creates the user's home directory.  
-  
-  
-  
-We set the home directory of ingres to  
-/opt/ingres  
-($II_SYSTEM/ingres).  
-This is not mandatory but convenient.  
-  
-  
-  
-  
-Finally, append the following lines to the .bashrc  
-file of ingres:  
-  
-  
-umask 022  
-export II_SYSTEM=/opt  
-export PATH=$II_SYSTEM/ingres/bin:$II_SYSTEM/ingres/utility:$PATH  
-export LD_LIBRARY_PATH=/lib:/usr/lib:$II_SYSTEM/ingres/lib  
-export ING_EDIT=/bin/vi  
-if [[ -n "$DISPLAY" ]  
-then  
-export TERM_INGRES=vt100fx  
-else  
-export TERM_INGRES=vt100f  
-fi  
-  
-  
-ING_EDIT sets the editor that can be called from  
-Ingres utilities or application programs.  
-Naturally, you can use any editor, not just __vi__.  
-You must, however, specify the whole access path to the program.  
-(If you stick to __vi__, check if it is under  
-/bin: it may be somewhere else  
-in your system.)  
-  
-  
-  
-  
-  
-  
-  
-  
-If the EDITOR shell variable is set, it overrides  
-the value of ING_EDIT.  
-  
-  
-  
-Setting TERM_INGRES is necessary for the terminal to  
-work properly.  
-Forms-based Ingres utilities, such as the  
-installer itself, and also applications created with traditional  
-Ingres development tools  
-(ABF, Vision) make heavy use of function keys.  
-The .bashrc above sets TERM_INGRES  
-according to the terminal type (X, or VT100-like).  
-  
-  
-  
-These settings must be included in the .bashrc  
-file of every Ingres user.  
-  
-----  
-!!!4. Preparing for the Installation  
-  
-This is the longest section and so it should be: after  
-careful planning the installation itself should be an easy task.  
-  
-----  
-!!4.1. Ingres Environment Variables  
-  
-You will use Ingres environment variables  
-to determine where to put further elements (besides the software itself)  
-of the Ingres installation.  
-These variables, unlike II_SYSTEM, are not shell variables  
-but rather parameters of Ingres stored in a file.  
-Some of them can be changed at any time after the installation, but altering  
-the value of others requires a whole re-install.  
-Later you will see which of them are of this "stable" nature.  
-  
-  
-  
-During installation, you can choose between setting these variables  
-manually or letting the installer set them to their default values  
-(Express Install option).  
-  
-  
-  
-In the following, we will take the relevant  
-Ingres environment variables one by one and see  
-what each of them is good for.  
-It may help if you put their planned values on paper.  
-You can find an Installation Worksheet in the  
-''Getting Started Guide'' which you can print out and  
-use for this purpose.  
-  
-----  
-!!4.2. II_LOG_FILE and II_DUAL_LOG  
-  
-Ingres uses an installation-wide  
-transaction log file to record information on all changes made to any database.  
-This information broadly consists of:  
-  
-  
-  
-  
-  
-  
-*  
-  
-''Before images'' of updated or deleted rows.  
-These are necessary for rolling back uncommitted transactions,  
-should it be required ''(undo)''.  
-  
-  
-*  
-*  
-  
-The changes made to database objects.  
-Recording them makes it possible to ''redo''  
-committed transactions after a system crash if the new data  
-had not been written to the database prior the crash.  
-  
-  
-*  
-  
-The transaction log resides in the  
-II_LOG_FILE/ingres/log directory,  
-where II_LOG_FILE is an Ingres  
-environment variable.  
-The name of the log file is ingres_log.  
-  
-  
-  
-Express Install creates a log file  
-of the minimum possible size, 16 Mb.  
-Such a log file may not be large enough even in a development system.  
-If you have free disk space and choose manual install (in which  
-case you can specify the size of the log), set it to something much  
-larger.  
-  
-  
-  
-Both the location and the size of the log file can be changed  
-at any time after installation.  
-The method of doing this is described in the  
-''System Reference Guide''.  
-  
-  
-  
-You also have to decide if you want dual logging (mirroring the  
-transaction log).  
-If the log gets corrupted for any reason, Ingres  
-stops and you have to recover your databases from backup.  
-Therefore, in a live system, it is almost compulsory either to have  
-some type of RAID protection of the log or to have  
-it mirrored by Ingres.  
-If you use dual logging, the copy of the log file can be found under  
-II_DUAL_LOG/ingres/log.  
-Its name is dual_log.  
-  
-  
-  
-In a development or test environment, mirroring the log is not  
-always necessary.  
-  
-----  
-!!4.3. Database Locations  
-  
-There can be any number of databases in an  
-Ingres installation.  
-A database, on the other hand, consists of files of different types.  
-These are:  
-  
-  
-  
-  
-  
-  
-*  
-  
-Control file: it stores certain basic information about the  
-database.  
-You can see this information with the __infodb__  
-command after you have completed the installation.  
-  
-  
-*  
-*  
-  
-Data files: every system table, user table, and also every  
-index goes in a separate file.  
-  
-  
-*  
-*  
-  
-Checkpoint files: checkpoint is the term  
-Ingres uses for a database backup.  
-A backup can consist of more than file.  
-  
-  
-*  
-*  
-  
-Dump files: online backups are possible in  
-Ingres, that is, the database may be in  
-use while the backup program is running.  
-For this reason, the database may change while it is being checkpointed.  
-Ingres, so that it can restore the database  
-to the state it was in at the ''beginning'' of  
-the backup, saves the before images of those data blocks (pages)  
-that have changed during the backup process.  
-These pages are saved in the dump files.  
-  
-  
-*  
-*  
-  
-Journal files: from time to time,  
-Ingres writes the records of committed  
-transactions from the log file to  
-journal files (at least, this is the default behavior: journalling may  
-be set off at the database or table level).  
-The frequency of the journalling activity is a tunable function of the  
-amount of information that is written to the transaction log.  
-Journalling protects the installation against media failures:  
-if the disk containing the database crashes, you can restore  
-the last (just before the failure occurred) committed state  
-of the database using a backup (checkpoint) of the database  
-and the journals created after that checkpoint was taken.  
-If you lose the log disk, you can restore the last committed  
-state the database was in at the time the last journal file  
-was written.  
-  
-  
-*  
-*  
-  
-Work files: Ingres, if it needs to  
-sort large volumes of data, creates temporary files on disk.  
-  
-  
-*  
-  
-The files constituting a database reside in different directories,  
-according to their types.  
-These directories are specified indirectly, by means of  
-Ingres ''locations''.  
-  
-  
-  
-There are five location types:  
-  
-  
-  
-  
-  
-  
-*  
-  
-Data location: place for data files of a database.  
-A database can have more than one data location (adding data locations  
-to a database is called ''extending'' the database).  
-However, every database has a ''primary'' data  
-location.  
-The system tables and the control file always reside in the primary  
-location.  
-When creating a table, if you do not specify the location(s) to put  
-it in, it will be placed in the primary data location of the  
-database.  
-  
-  
-*  
-*  
-  
-Checkpoint location: by default, backups are created here.  
-Not necessarily, however: the __ckpdb__ command  
-allows you to specify an arbitrary place for the backup, this way you  
-can checkpoint a database directly to tape as well.  
-  
-  
-*  
-*  
-  
-Dump location: for dump files.  
-  
-  
-*  
-*  
-  
-Journal location: this is where the journal files for a  
-database reside.  
-  
-  
-*  
-*  
-  
-Work location: Ingres creates  
-temporary sort files in this location.  
-Just like with data locations, a database may have more than one  
-work location.  
-If this is the case, Ingres, by default,  
-uses all of them for each sort operation.  
-  
-  
-*  
-  
-Let us see how these locations work in practice.  
-Say we have a database, called test, with the  
-following locations:  
-  
-  
-  
-  
-  
-  
-*  
-  
-DATALOC1: data location --b  
-/opt  
-  
-  
-*  
-*  
-  
-CKPLOC: checkpoint location --b  
-/opt  
-  
-  
-*  
-*  
-  
-DMPLOC: dump location --b  
-/opt  
-  
-  
-*  
-*  
-  
-JRNLLOC: journal location --b  
-/opt  
-  
-  
-*  
-*  
-  
-WORKLOC1: work location --b  
-/opt  
-  
-  
-*  
-  
-Every location of the test database points to the  
-/opt directory.  
-Elements of the database go in these directories:  
-  
-  
-  
-  
-  
-  
-*  
-  
-data files:  
-/opt/ingres/data/default/test  
-  
-  
-  
-*  
-*  
-  
-checkpoint files:  
-/opt/ingres/ckp/default/test  
-  
-  
-  
-*  
-*  
-  
-dump files:  
-/opt/ingres/dmp/default/test  
-  
-  
-  
-*  
-*  
-  
-journal files:  
-/opt/ingres/jnl/default/test  
-  
-  
-  
-*  
-*  
-  
-temporary files:  
-/opt/ingres/work/default/test  
-  
-  
-  
-*  
-  
-Let us suppose now, that we ''extend'' the database  
-to the following locations:  
-  
-  
-  
-  
-  
-  
-*  
-  
-DATALOC2: data location --b  
-/opt  
-  
-  
-*  
-*  
-  
-DATALOC3: data location --b  
-/disk2  
-  
-  
-*  
-*  
-  
-WORKLOC2: work location --b  
-/disk2  
-  
-  
-*  
-  
-The database is effectively extended to the following directories:  
-  
-  
-  
-  
-  
-  
-*  
-  
-data files:  
-/disk2/ingres/data/default/test  
-  
-  
-  
-*  
-*  
-  
-temporary files:  
-/disk2/ingres/work/default/test  
-  
-  
-  
-*  
-  
-DATALOC2 points to  
-/opt, just like DATALOC1.  
-Tables to be created in location DATALOC2 will go to  
-/opt/ingres/data/default/test,  
-the same directory where tables created in location DATALOC1  
-reside.  
-  
-  
-  
-As is apparent from the example, we could have created just one  
-location for DATALOC1, DATALOC2,  
-CKPLOC, DMPLOC, JRNLLOC,  
-and WORKLOC1.  
-  
-  
-  
-Summarizing the main points about locations:  
-  
-  
-  
-  
-  
-  
-*  
-  
-Every location points to the root of a directory tree.  
-  
-  
-*  
-*  
-  
-More than one location can point to the same directory.  
-  
-  
-*  
-*  
-  
-A location can be used for storing different types of files.  
-  
-  
-  
-*  
-*  
-  
-Databases can share locations.  
-You can see from the example why this is true: the name of the  
-database becomes part of the directory tree, hence files of  
-different databases never mix.  
-  
-  
-  
-*----  
-!!4.4. The iidbdb Database  
-  
-Every Ingres installation has a master  
-database called iidbdb.  
-Ingres stores information about users, locations  
-and user databases in this database.  
-iidbdb is created by the installer.  
-  
-  
-  
-You have to set the locations for iidbdb during  
-installation.  
-These locations are stored in the following  
-Ingres environment variables:  
-  
-  
-  
-  
-  
-  
-*  
-  
-II_DATABASE: data location  
-  
-  
-*  
-*  
-  
-II_CHECKPOINT: checkpoint location  
-  
-  
-*  
-*  
-  
-II_DUMP: dump location  
-  
-  
-*  
-*  
-  
-II_JOURNAL: journal location  
-  
-  
-*  
-*  
-  
-II_WORK: work location  
-  
-  
-*  
-  
-These variables determine the default locations for every user database  
-as well, if you do not override them when creating those databases.  
-See Creating and Destroying Databases for more information.  
-  
-  
-  
-  
-  
-  
-  
-  
-Changing the value of II_DATABASE,  
-II_CHECKPOINT, II_DUMP,  
-II_JOURNAL, or II_WORK requires a complete  
-re-install of Ingres.  
-  
-  
-  
-Let us see these variables one by one.  
-  
-----  
-!!4.5. II_DATABASE  
-  
-II_DATABASE determines the data location of  
-iidbdb.  
-Its default value is $II_SYSTEM (in case of a manual  
-install you can enter a different value for II_DATABASE,  
-while Express Install inevitably sets it to  
-$II_SYSTEM).  
-  
-  
-  
-The size of iidbdb after the installation is  
-somewhat more than 5 Mb.  
-It can only grow significantly if you create hundreds of  
-Ingres users, databases or locations.  
-  
-----  
-!!4.6. II_CHECKPOINT  
-  
-II_CHECKPOINT contains the value for the checkpoint  
-location of iidbdb.  
-By default, it is also set to $II_SYSTEM.  
-  
-  
-  
-The size of a checkpoint is just about the same as that of the database  
-itself (at least until you modify the template file of the checkpoint program:  
-it is possible, as you will see in Backup and Recovery).  
-The installer takes the first checkpoint of iidbdb.  
-  
-  
-  
-If you plan to place checkpoints of user databases under  
-II_CHECKPOINT then you have to provide for more space here.  
-  
-  
-  
-  
-A further factor that must be taken into account is how long you want  
-to keep backups.  
-When starting the checkpoint program, you can request the deletion of older  
-backups if you do not have too much free space.  
-  
-----  
-!!4.7. II_DUMP  
-  
-II_DUMP determines the dump location of the  
-iidbdb database.  
-By default, its value equals to that of II_CHECKPOINT.  
-  
-  
-  
-By the end of the installation process, II_DUMP will  
-contain a very small amount of data.  
-If you always create checkpoints off-line then you will not need much space  
-here.  
-  
-----  
-!!4.8. II_JOURNAL  
-  
-II_JOURNAL contains the value for the journal location  
-of the iidbdb database.  
-Its default value is the same as II_CHECKPOINT's.  
-  
-  
-  
-The first checkpoint, taken by the installer causes the first, small  
-journal file to appear here.  
-If you do not use different journal locations for user databases then the  
-necessary amount of free space under II_JOURNAL depends on  
-three factors:  
-  
-  
-  
-  
-  
-  
-*  
-  
-Whether you want Ingres to journal  
-at all.  
-If you take checkpoints of your databases regularly and do not mind  
-losing the changes you have made to them since the latest checkpoint,  
-you may switch off journalling.  
-Naturally, running a live system without journalling is usually not  
-acceptable.  
-  
-  
-*  
-*  
-  
-If journalling is switched on, then the growth rate of the  
-journal area is determined by the volume of changes made to the  
-databases.  
-Frequent, large updates require quite a bit of space under  
-II_JOURNAL.  
-  
-  
-*  
-*  
-  
-The third factor is, how long you wish to keep old journal files.  
-If, when taking a checkpoint, you instruct __ckpdb__  
-to delete the old checkpoints, then previous journal files will be  
-removed as well.  
-  
-  
-*----  
-!!4.9. II_WORK  
-  
-II_WORK determines the work location of the  
-iidbdb database.  
-It also defaults to II_CHECKPOINT.  
-  
-  
-  
-The problem of sizing the work location only arises if  
-II_WORK serves as a work location for user databases as well.  
-It is next to impossible to estimate the temporary disk space that will be  
-needed here; however, having the size of the largest table multiplied by three  
-should work as a starting point.  
-  
-  
-  
-Remember that a database can have more than one work location.  
-If the original location turns out too small, you can always extend the  
-database to further work locations.  
-  
-----  
-!!4.10. Other Ingres Environment Variables  
-  
-Besides the Ingres environment variables  
-that determine locations there are a couple more that you have to set  
-during installation (or have Express Install  
-set them to their default value). These are:  
-  
-  
-  
-  
-  
-  
-*  
-  
-II_INSTALLATION: a two-character code,  
-identifying the installation.  
-Every Ingres installation on a machine  
-must have its own, unique, installation code.  
-The default value for II_INSTALLATION is  
-II.  
-Once set, it cannot be changed.  
-  
-  
-*  
-*  
-  
-II_NUM_OF_PROCESSORS: number of processors in  
-the machine.  
-By default, it is 1.  
-If you set it to a higher value, Ingres  
-will use spin-locks when accessing the database cache.  
-If you do not know what spin-locks are, do not bother.  
-The point is to set II_NUM_OF_PROCESSORS to  
-2 if you have a multiprocessor machine.  
-Its value can be changed at any time later.  
-  
-  
-*  
-*  
-  
-II_CHARSET: this variable determines the code  
-set of all character data stored in all databases you will create in  
-the installation.  
-Its default value is ISO88591.  
-Perhaps it is not surprising that changing it to a different value  
-after installation may corrupt data stored in your existing databases.  
-Since the iidbdb database is created by the  
-installer program, you should not choose  
-Express Install if  
-ISO88591 does not suit you.  
-  
-  
-*  
-*  
-  
-II_TIMEZONE_NAME: name of the time zone, by  
-default NA-PACIFIC.  
-During manual install you can select its value from a list of valid  
-codes.  
-Ingres stores all date and time values  
-in GMT and adjusts them according to  
-II_TIMEZONE_NAME when communicating with the client.  
-Therefore, if you set II_TIMEZONE_NAME to a different  
-value, you will see all date-time values in the databases change.  
-For this reason, set this variable to its final value before creating  
-the first user database.  
-  
-  
-*  
-  
-The (manual) installer prompts you for the value of two further  
-parameters which are not Ingres environment  
-variables:  
-  
-  
-  
-  
-  
-  
-*  
-  
-Expected number of concurrent users in the system: this is  
-32 by default.  
-Based on this number, the installer sets the value of a number of  
-other parameters, such as the size of the database cache.  
-These derived parameters can later be adjusted.  
-  
-  
-*  
-*  
-  
-SQL-92 compatible databases: by default,  
-Ingres databases differ from the  
-SQL-92 standard in some ways.  
-For example, object names not protected by single or double quotes  
-are converted to lower case rather than upper case.  
-You can find the other differences in the  
-''SQL Reference Guide''.  
-  
-  
-*  
-  
-After you have made up your mind on the values of all installation  
-parameters, you know whether the default values for those variables that  
-cannot be changed after installation are acceptable to you.  
-If they are, you can choose Express Install.  
-  
-----  
-!!!5. The Installation Process  
-  
-In this section, the actual installation of  
-Ingres takes place.  
-  
-----  
-!!5.1. Starting the Installation Program  
-  
-In the following I will presume that you install directly from the CD  
-which is mounted under /cdrom.  
-Depending on whether you install the SDK or the full  
-version of Ingres, you have to start the installation  
-differently.  
-  
-  
-  
-For the SDK:  
-  
-  
-  
-  
-  
-  
-#  
-  
-Log in as ''ingres''.  
-  
-  
-#  
-#  
-  
-__cd__ to  
-$II_SYSTEM/ingres if it is not  
-your home directory.  
-  
-  
-#  
-#  
-  
-Unpack the install  
-subdirectory from the tar file.  
-  
-  
-#  
-#  
-  
-Start the __ingbuild__ program.  
-  
-  
-#  
-$ cd $II_SYSTEM/ingres  
-$ tar xf /cdrom/int_lnx/ingres.tar install  
-$ install/ingbuild  
-  
-  
-For the full version:  
-  
-  
-  
-  
-  
-  
-#  
-  
-Log in as ''root''.  
-  
-  
-#  
-#  
-  
-Start the installer.  
-  
-  
-#  
-# /cdrom/install.sh  
-  
-  
-In this latter case, you have to let the installer know the owner of  
-the installation (ingres), and the value of II_SYSTEM.  
-After that, __install.sh__ starts __ingbuild__  
-for you.  
-  
-  
-  
-From this point on, the installation process is the same for both  
-options.  
-  
-  
-  
-On the starting screen of __ingbuild__ you have to  
-specify the path to the tar file and select the type of install:  
-Custom or Package.  
-I suggest you go for Custom Install  
-to be able to choose exactly those elements you want to install.  
-  
-  
-  
-After choosing Custom Install, a table on  
-the next screen shows all components of your Ingres  
-version together with their respective sizes.  
-Because of common parts in different components, the sizes added up indicate  
-much more disk space than is really needed for the installation.  
-  
-  
-  
-By default every component is set to be installed.  
-If you want to exclude some of them, write "No"  
-in their "Install?" field.  
-  
-  
-  
-You had previously decided if the default values for the "stable"  
-Ingres environment variables were acceptable  
-for your installation.  
-If this is the case, you can choose Express Install  
-here.  
-Remember that you can alter the value of II_LOG_FILE as well as  
-the size of the transaction log at any time later.  
-  
-  
-  
-  
-  
-  
-  
-  
-If this is your first Ingres install,  
-you have the necessary space under  
-$II_SYSTEM/ingres  
-and the "stable" parameters' default values are OK, I suggest you choose  
-Express Install.  
-  
-  
-  
-Therefore, let us see this option first.  
-  
-----  
-!!5.2. Express Install  
-  
-In the case of Express Install, the installer  
-executes the following tasks:  
-  
-  
-  
-  
-  
-  
-*  
-  
-It untars all chosen components from the  
-ingres.tar file to the  
-$II_SYSTEM/ingres/install/tmp  
-directory.  
-  
-  
-*  
-*  
-  
-Checks the integrity of the components.  
-  
-  
-*  
-*  
-  
-Puts the components in appropriate subdirectories under  
-$II_SYSTEM/ingres.  
-  
-  
-*  
-*  
-  
-Sets the Ingres environment  
-variables to their default values.  
-  
-  
-*  
-*  
-  
-Starts Ingres.  
-  
-  
-*  
-*  
-  
-Creates the iidbdb database.  
-  
-  
-*  
-*  
-  
-Takes a checkpoint of iidbdb.  
-  
-  
-*  
-*  
-  
-Stops Ingres.  
-  
-  
-*  
-*  
-  
-Sets up those components that require this (ABF,  
-Enhanced Security, etc).  
-  
-  
-*  
-  
-If the installation process went OK, the program tells you that every  
-installed component is ready to use.  
-In the table on the screen the "Install?" column shows  
-"Ready" for every selected component.  
-  
-  
-  
-Ingres is installed on your machine.  
-Jump to Completing the Initial Configuration.  
-  
-----  
-!!5.3. Manual Install  
-  
-If you choose Install rather than  
-Express Install, the installer untars  
-ingres.tar, checks the integrity of the components  
-and puts them in their respective directories.  
-Then it asks you if you want to setup these components now.  
-  
-  
-  
-If you decide to do the setup later, the installer stops.  
-In the table containing the components the "Install?"  
-column shows "Not Set Up" for every  
-selected component.  
-You can run __ingbuild__ again at any time and choose one of  
-the options Setup All or  
-Setup to set up all or one of the components.  
-A component cannot be used until it has been set up.  
-  
-  
-  
-Let us see what happens if you choose to set up the components.  
-  
-  
-  
-First, you have to set up the DBMS server.  
-On the screens to follow you will see a fair amount of explanatory text about  
-the parameters we have covered earlier.  
-  
-  
-  
-During the setup phase, the installer prompts you for the values of  
-the Ingres environment variables and the other  
-necessary parameters:  
-  
-  
-  
-  
-  
-  
-*  
-  
-II_INSTALLATION.  
-  
-  
-*  
-*  
-  
-II_DATABASE.  
-  
-  
-*  
-*  
-  
-II_CHECKPOINT: if you set it to the same value  
-as II_DATABASE, the installer warns you of the dangers  
-of losing a database and its backup at the same time.  
-You have to repeat II_CHECKPOINT's value for the  
-program to accept it.  
-  
-  
-*  
-*  
-  
-II_JOURNAL.  
-  
-  
-*  
-*  
-  
-II_DUMP.  
-  
-  
-*  
-*  
-  
-II_WORK.  
-  
-  
-*  
-*  
-  
-II_LOG_FILE: the installer reminds you of  
-Ingres' capability of mirroring the  
-transaction log.  
-Naturally, it only makes sense if the mirrored log file is on a  
-different disk than the primary log file.  
-The installer asks you if you want to ''disable''  
-dual logging.  
-Then you have to specify the size of the log (16 Mb by default,  
-make it bigger if you have free disk space as I suggested earlier).  
-After this you have to tell the installer where to put the primary  
-log file, and, if you did not switch off dual logging, the dual log  
-file (II_DUAL_LOG).  
-  
-  
-*  
-*  
-  
-II_NUM_OF_PROCESSORS.  
-  
-  
-*  
-*  
-  
-II_TIMEZONE_NAME.  
-  
-  
-*  
-*  
-  
-II_CHARSET.  
-  
-  
-*  
-*  
-  
-Expected number of concurrent users.  
-  
-  
-*  
-*  
-  
-SQL-92 compatible databases.  
-  
-  
-*  
-  
-At every prompt, enter the appropriate parameter's previously decided  
-value.  
-  
-  
-  
-The installer may also ask you about other components you have chosen  
-to install.  
-Accept the defaults for these.  
-  
-  
-  
-  
-  
-  
-Full Version  
-If you requested the installation of Net,  
-make __ingbuild__ set it up.  
-Do not bother setting an ''installation password'',  
-unless you know what it is: we will complete Net's  
-configuration later, in its own section (Ingres/Net).  
-  
-  
-  
-  
-----  
-!!5.4. Completing the Initial Configuration  
-  
-After an Express Install (but perhaps after  
-a manual install as well), you may want to change the values of some of the  
-Ingres environment variables.  
-You will see how to do this here.  
-Stay logged in as ingres.  
-  
-  
-  
-You can view the current values of Ingres  
-environment variables with the __ingprenv__ command:  
-  
-  
-$ ingprenv  
-  
-  
-You can change the value of any variable with the  
-__ingsetenv__ command:  
-  
-  
-$ ingsetenv II_TIMEZONE_NAME GMT1  
-  
-  
-In the example we set II_TIMEZONE_NAME to  
-GMT1 (Greenwich Mean Time + 1 hour),  
-which happens to be the time zone Hungary is placed in.  
-You can find all possible values for II_TIMEZONE_NAME in the  
-file $II_SYSTEM/ingres/files/tz.crs (look for the lists  
-beginning with the word VALID).  
-  
-  
-  
-You can change the value of any other Ingres  
-environment variable in a similar way.  
-__ingprenv__ and __ingsetenv__ do not require a  
-running Ingres server.  
-  
-  
-  
-The ''System Reference Guide'' contains the  
-description of every Ingres environment variable.  
-Let me mention two of those that we have not covered yet.  
-  
-  
-  
-II_DATE_FORMAT determines the display format of dates.  
-By default, its value is US which provides the format  
-dd-mmm-yy.  
-  
-  
-  
-  
-  
-  
-  
-  
-The setting of II_DATE_FORMAT has no effect on  
-the way dates are stored in the database.  
-Ingres always stores full date values,  
-century included.  
-Hence, you can change the setting of II_DATE_FORMAT without  
-the risk of corrupting data.  
-In order to avoid Y2K problems in your applications,  
-you should use a date format that contains the century, such as  
-MULTINATIONAL4 (dd/mm/yyyy)  
-or FINLAND (yyyy-mm-dd).  
-The latter seems especially proper under Linux :-)  
-  
-  
-  
-Another Ingres environment variable that  
-has a good chance to be changed from its default value is  
-II_MONEY_FORMAT.  
-This one is responsible for how values of money type are displayed.  
-  
-  
-  
-  
-  
-  
-  
-  
-Just like with dates, the value of II_MONEY_FORMAT  
-has no impact on the storage format of money columns.  
-  
-  
-  
-II_MONEY_FORMAT consists of two parts: the first part  
-tells whether the currency sign precedes the amount (L  
-= Leading or T = Trailing), the second part describes  
-the currency itself ($, DM,  
-Ft, etc.: this part is a string of maximum 4 characters).  
-The two parts are separated by a colon.  
-II_MONEY_FORMAT defaults to L:$.  
-  
-  
-  
-Only the ingres user is allowed to use __ingsetenv__,  
-since these Ingres environment variables apply to  
-the whole installation.  
-However, some Ingres environment variables  
-(including II_DATE_FORMAT and II_MONEY_FORMAT)  
-can be overridden in the users' shell, via Linux variables of the same name.  
-You can check the ''System Reference Guide'' about which  
-other variables fall into this category.  
-  
-  
-  
-  
-  
-  
-  
-  
-Be careful: Ingres will not prevent  
-you from changing the value of any Ingres  
-environment variable, including II_DATABASE,  
-II_CHECKPOINT, II_CHARSET, etc.  
-(the "stable" parameters as we saw earlier).  
-However, if you change one of these, prepare for the nastiest possible  
-consequences, the mildest one of which is that  
-Ingres will not run.  
-  
-  
-  
-You can find information on how to setup Net and ICE  
-in separate sections (Ingres/Net, and ICE,  
-respectively).  
-  
-----  
-!!5.5. Re-installation  
-  
-If you want to re-install Ingres for  
-any reason, remember to do the following first:  
-  
-  
-  
-  
-  
-  
-*  
-  
-Backup everything you need from  
-$II_SYSTEM/ingres  
-(user databases, source code of applications stored there, etc.).  
-Also backup any other databases you want to keep that are stored in  
-different locations.  
-You can use the __unloaddb__ utility for creating  
-portable copies of databases.  
-On __unloaddb__ see the ''System Reference  
-Guide''.  
-  
-  
-*  
-*  
-  
-Stop Ingres.  
-  
-  
-*  
-*  
-  
-Remove everything under  
-$II_SYSTEM/ingres.  
-Also remove the contents of every other location where you stored any  
-part of any database.  
-  
-  
-*  
-  
-  
-  
-  
-  
-  
-Databases that are not completely removed can cause problems  
-when you try to re-create them.  
-  
-----  
-!!5.6. Command Line Install (SDK)  
-  
-For installing the SDK, you can run  
-__ingbuild__ in batch mode as well.  
-The easiest way to do an Express Install is to start  
-__ingbuild__ in the following way (logged in as ingres):  
-  
-  
-$ cd $II_SYSTEM/ingres  
-$ tar xf /cdrom/int_lnx/ingres.tar install  
-$ install/ingbuild -express /cdrom/int_lnx/ingres.tar  
-  
-  
-In this case a regular Express Install takes  
-place without having to press another key.  
-  
-----  
-!!5.7. Client Installation (Full Version)  
-  
-If you have the full Ingres version, you may  
-want to set up a client installation.  
-If your application will run on a different machine than the database  
-server, all you need on the application server is a client  
-Ingres installation.  
-  
-  
-  
-For a client install, choose !PackageInstall  
-in __ingbuild__, then mark  
-"Ingres Networked Client" to be installed.  
-After the installation has been finished, go to section Ingres/Net  
-to set up Net.  
-  
-----  
-!!5.8. The Installer's Log  
-  
-No matter which type of install you have chosen (Express or Manual),  
-you can find all of __ingbuild__'s messages in  
-$II_SYSTEM/ingres/files/install.log.  
-I suggest you check this file after an  
-Express Install to see what happened during the  
-installation process.  
-On the other hand, if __ingbuild__ stops with an error message,  
-also check this log for possible clues to the cause of the error.  
-  
-----  
-!!5.9. Checking the Installation  
-  
-After you have installed and configured  
-Ingres, it is time to check if it works properly.  
-Supposing you are still logged in as ingres, start the  
-Ingres system:  
-  
-  
-$ ingstart  
-  
-  
-Create a new database:  
-  
-  
-$ createdb test  
-  
-  
-Start the command line SQL interface:  
-  
-  
-$ sql test  
-  
-  
-Create a table, insert a row into it and query the table's contents:  
-  
-  
-  
-create table t1 (col1 char(10));  
-insert into t1 values ('abcde');  
-select * from t1;  
-\g  
-  
-  
-If everything went OK, you should see something like the following:  
-  
-  
-$ sql test  
-INGRES TERMINAL MONITOR Copyright (c) 1981, 1998 Computer Associates Intl, Inc.  
-Ingres Linux Version II 2./9808 (lnx.us5/95)libc6 login  
-Sun Oct 3 03:43:54 1999  
-continue  
-* create table t1 (col1 char(10));  
-* insert into t1 values ('abcde');  
-* select * from t1;  
-* \g  
-Executing . . .  
-(1 row)  
-col1  
-abcde  
-(1 row)  
-continue  
-*  
-  
-  
-You can leave __sql__ with the command  
-__\q__.  
-  
-----  
-!!!6. Basic System and Database Administration  
-  
-In this section I outline some of the basic tasks of the  
-Ingres system administrator and the  
-Ingres database administrator.  
-You will also see what tools Ingres provides  
-to perform these tasks.  
-In the following I suppose you are logged in as ingres.  
-  
-----  
-!!6.1. Starting and Stopping Ingres  
-  
-You have already seen how to start Ingres:  
-  
-  
-  
-$ ingstart  
-  
-  
-To stop Ingres, use the  
-__ingstop__ command:  
-  
-  
-$ ingstop  
-  
-  
-__ingstop__ only stops Ingres  
-if the are no active user sessions.  
-If you want to stop the system regardless of user sessions, use the following  
-form:  
-  
-  
-$ ingstop -force  
-  
-  
-In this case, after you have killed Ingres,  
-check if it released all shared memory segments and semaphores it had used:  
-  
-  
-  
-$ ipcs -a  
-  
-  
-If you see shared memory segments or semaphores in  
-__ipcs__'s output that are still attached to the ingres user,  
-release them with Ingres'  
-__ipcclean__ utility:  
-  
-  
-$ ipcclean  
-  
-  
-  
-  
-  
-  
-  
-Take care: forcing Ingres to stop  
-might make your databases inconsistent.  
-  
-----  
-!!6.2. New Ingres Users and Locations  
-  
-In order for any user to have access to the  
-Ingres installation, you have to define them as  
-Ingres users with the __accessdb__  
-utility.  
-  
-  
-  
-Start __accessdb__:  
-  
-  
-$ accessdb  
-  
-  
-Select the Users option, then  
-Create.  
-  
-  
-  
-Here, enter the name of the user.  
-You do not have to modify permissions.  
-  
-  
-  
-Save, then End,  
-and End.  
-  
-  
-  
-You can also use __accessdb__ to create new locations,  
-change their types or extend databases to new locations.  
-The usage of __accessdb__ is covered in the  
-''System Reference Guide'' and in the  
-''Database Administrator's Guide''.  
-  
-  
-  
-As an alternative to __accessdb__, you can maintain  
-users and locations by running SQL commands on  
-iidbdb (__create user__,  
-__create location__, etc.).  
-The syntax of these commands can be found in the  
-''SQL Reference Guide''.  
-  
-  
-  
-  
-  
-  
-  
-  
-Since the ingres user has unlimited power of changing  
-and possibly destroying any element of an  
-Ingres installation, it is highly  
-advisable that you only use this account for carrying out administrative  
-tasks.  
-Create another Linux user and set its environment to that of ingres.  
-Register it as an Ingres user via  
-__accessdb__ and use this account for everyday work.  
-  
-----  
-!!6.3. Creating and Destroying Databases  
-  
-In subsection Checking the Installation you created a new database.  
-You did not specify any options in the  
-  
-  
-$ createdb test  
-  
-  
-command. Therefore the values stored in II_DATABASE,  
-II_CHECKPOINT, etc., became locations for the  
-test database.  
-You could have specified each location explicitly:  
-  
-  
-$ createdb test -d`data locationb -c`checkpoint locationb -j`journal locationb  
--b`dump locationb -w`work locationb  
-  
-  
-You can remove a database with the __destroydb__  
-command:  
-  
-  
-$ destroydb test  
-  
-  
-  
-  
-  
-  
-  
-Be careful, because Ingres will not  
-prompt you before destroying the database.  
-  
-----  
-!!6.4. Collation Sequences  
-  
-The collation sequence determines which of any two character strings  
-should be considered less than the other.  
-In Ingres, every database can have its own sort order.  
-You can specify the collation sequence when creating the database:  
-  
-  
-createdb test -lhun  
-  
-  
-If you omit the -l parameter, the database will have  
-the default collation sequence which is determined by the implicit sort order  
-of the code set of the Ingres installation  
-(II_CHARSET).  
-  
-  
-  
-If you want to use your own collation sequence (it is  
-hun in the example above), you have to create a definition  
-file first.  
-The structure of this file must obey to simple rules by which you specify the  
-absolute or relative ordering of letters and/or strings in your language.  
-This file must then be compiled by the __aducompile__ utility  
-for Ingres to be able to use it.  
-  
-  
-  
-The Spanish collation sequence and the collation based on the  
-DEC Multinational Character Set are available both in source  
-(spanish.dsc and multi.dsc), and  
-compiled form (spanish and multi).  
-  
-  
-  
-  
-You specify these collation sequences in the following way:  
-  
-  
-createdb test -lspanish  
-  
-  
-or  
-  
-  
-createdb test -lmulti  
-  
-  
-The compiled definition files for a collation sequence must be in the  
-$II_SYSTEM/ingres/file/collation  
-directory.  
-The syntax rules of the definition files can be found in the  
-''System Reference Guide''.  
-It may also be useful to examine the definition files for the Spanish and the  
-DEC Multinational collations.  
-  
-----  
-!!6.5. Backup and Recovery  
-  
-You can back up an Ingres  
-database or certain tables in it with the __ckpdb__ utility.  
-The following command backs up the test database:  
-  
-  
-$ ckpdb test  
-  
-  
-  
-  
-  
-  
-  
-Checkpoints can be taken online.  
-  
-  
-  
-Restoring a database can be done with the  
-__rollforwarddb__ command:  
-  
-  
-$ rollforwarddb test  
-  
-  
-By default, __rollforwarddb__, using the latest  
-checkpoint and all journal files created since that checkpoint, restores the  
-database to its last committed state.  
-However, you can specify a point in time to restore the database to the state  
-it was in at that time.  
-You can go back as far as 16 checkpoints  
-(Ingres stores data for the last  
-16 checkpoints in the control file of the database).  
-  
-  
-  
-Both __ckpdb__ and __rollforwarddb__  
-accept many parameters.  
-You can read more about these commands in the  
-''System Reference Guide''.  
-Besides, you should read Michael Leo's paper on  
-Ingres backup and recovery at  
- http://www.naiua.org/papers/backup99.zip.  
-  
-  
-  
-Both __ckpdb__ and __rollforwarddb__ use a  
-template file ($II_SYSTEM/ingres/files/cktmpl.def).  
-By modifying this file, you can customize the Linux commands that do the  
-physical backup and restore of the data files.  
-Consult the ''Database Administrator's Guide'' for the  
-syntax of this file.  
-  
-----  
-!!6.6. Configuring Ingres  
-  
-Most Ingres parameters can be set via the  
-__cbf__ utility.  
-This is the program by which you can specify the number of  
-DBMS servers, the sizes of different caches and a lot of  
-other variables.  
-The usage of __cbf__ is detailed in the  
-''System Reference Guide''.  
-  
-----  
-!!6.7. Monitoring Ingres  
-  
-You can use the __ipm__ utility to monitor a running  
-Ingres system  
-(Visual DBA only runs on Win32).  
-With __ipm__, you can monitor and manage user sessions, and  
-also the locking and logging subsystems.  
-  
-----  
-!!6.8. Message Files  
-  
-The Ingres message files reside in the  
-$II_SYSTEM/ingres/files directory.  
-The most important of these is errlog.log.  
-Should any problems arise during the running of  
-Ingres, this is the file to check first.  
-  
-----  
-!!!7. Ingres/Net  
-  
-Ingres/Net is not part of the SDK.  
-You only get it with the full version of Ingres.  
-It allows applications (Ingres utilities and user  
-programs alike) to access Ingres databases on  
-other installations (usually on different machines as well).  
-On the machine where the application runs, a client  
-Ingres installation must be set up.  
-We covered the installation of the client in subsection  
-Client Installation.  
-(Naturally, the client can also be a full Ingres  
-installation.)  
-  
-  
-  
-  
-In this section you will see how to set up Net on both the client  
-and server to provide remote access to the DBMS server.  
-For a complete description of Ingres/Net I suggest you consult the  
-''Ingres/Net User Guide''.  
-  
-  
-  
-  
-Before starting with Net, however, we need some information on how  
-Ingres authenticates its users.  
-  
-----  
-!!7.1. User Authentication  
-  
-We saw earlier that only valid Ingres users  
-can access an Ingres installation.  
-Ingres keeps information on its users in the  
-iidbdb database.  
-But how does Ingres authenticate users?  
-  
-  
-  
-In case of local access, the answer is simple:  
-Ingres asks the operating system who the user is.  
-  
-  
-  
-  
-There is an exception to this rule: certain users may be granted  
-the privilige to ''impersonate'' other  
-Ingres users when starting an  
-Ingres utility or application.  
-That is why it is not necessary for every Ingres  
-user to have an OS account.  
-This privilege, however, can only be granted as all-or-none: if you give  
-it to somebody, he/she will be able to impersonate  
-''any'' other Ingres user,  
-including the ingres account.  
-Therefore, never grant it to anyone.  
-  
-  
-  
-Leaving the authentication of users to the operating system works  
-fine for local access.  
-But what about users who want to use the database from a remote machine?  
-They do not log in to the machine the database resides on (the  
-''server''), therefore the server's operating system will  
-not authenticate them (they may not even have an OS  
-account on the server machine).  
-  
-  
-  
-There are two possible ways Ingres can  
-authenticate these users.  
-We will cover them in the next two subsections.  
-  
-----  
-!!7.2. Login Account Passwords  
-  
-The first solution to the remote user authentication problem is to  
-require that the client provides a local (to the server machine) user name  
-and password.  
-Then the Ingres server authenticates these  
-through standard OS facilities, just like the operating  
-system would do with real local accounts.  
-  
-  
-  
-In this case, you do not have to set anything in Net on the server.  
-The only thing you will need is the __ingvalidpw__  
-Ingres utility.  
-It will check (by using the getspnam and  
-crypt OS functions) if the user's  
-name and password are valid on the server machine.  
-On how to install __ingvalidpw__, see subsection  
-ingvalidpw.  
-  
-----  
-!!7.3. Installation Passwords  
-  
-The other way of authenticating remote users is that the server  
-accepts their user ID ''on the client  
-machine''.  
-In this case, the remote users do not have to be known to the  
-OS on the server.  
-  
-  
-  
-How will the server validate clients in this case?  
-It is obvious that we need some kind of authentication: anybody can  
-create an ingres account on a client machine, then he/she could connect  
-to the installation as the ingres super-user.  
-  
-  
-  
-This is where the ''installation password'' comes in:  
-you set an installation password on the server.  
-You then set this password on the client machines ''for those  
-accounts'' that you want to allow to access the server under their  
-name on the client.  
-  
-  
-  
-The Ingres server can then authenticate  
-the client by simply checking its installation password.  
-  
-----  
-!!7.4. ingvalidpw  
-  
-As __ingbuild__ apparently does not bother installing  
-__ingvalidpw__, you have to build it yourself.  
-  
-  
-  
-Login as root, set the environment as that of ingres, then simply  
-type  
-  
-  
-# mkvalidpw  
-  
-  
-This script builds and installs __ingvalidpw__.  
-  
-----  
-!!7.5. Setting up the Client  
-  
-You will use the __netutil__ utility to set up Net  
-on the client side, and, in the case of installation passwords, also on the  
-server.  
-Let us see the client side first.  
-Log in as the account you want to grant access to, or ingres, if you want  
-to set up general access.  
-Then type:  
-  
-  
-$ netutil  
-  
-  
-You can see three tables on __netutil__'s screen.  
-Let us see what fields each of them contains:  
-  
-  
-  
-  
-  
-  
-*  
-  
-Virtual Node Name: this is the name by which you identify  
-the remote Ingres installation,  
-similarly as you would define an ODBC data  
-source name.  
-The name is of local scope and has nothing to do either with the server  
-machine's name or the remote installation's code.  
-  
-  
-*  
-*  
-  
-Login/Password Data: one or two entries of the following:  
-  
-  
-  
-  
-  
-  
-**  
-  
-Type: can be Global, or  
-Private.  
-If Private, the entry will only  
-pertain to the current account.  
-If Global, it will be used for all  
-users on the client machine, except for those with a  
-Private entry.  
-  
-  
-**  
-**  
-  
-Login: the user account on the server machine.  
-In case of an installation password, it should be  
-*.  
-  
-  
-**  
-**  
-  
-Password: the password on the server machine (the  
-above user's password, or the installation password).  
-  
-  
-**  
-*  
-*  
-  
-Connection Data: at least one entry of the following:  
-  
-  
-  
-  
-  
-  
-**  
-  
-Type: can be Global, or  
-Private.  
-The same applies as in Login/Password Data.  
-  
-  
-**  
-**  
-  
-Network Address: the server machine's address.  
-  
-  
-**  
-**  
-  
-Protocol: the network protocol.  
-On Linux, it is probably tcp_ip.  
-  
-  
-**  
-**  
-  
-Listen Address: listen address of the communication  
-server as set up by __cbf__.  
-By default, it is the same as the installation code.  
-  
-  
-**  
-*----  
-!!7.6. Setting up the Server  
-  
-If you want to use an installation password, you have to configure  
-Net on the server, too.  
-In __netutil__, create a virtual node with the following  
-data:  
-  
-  
-  
-  
-  
-  
-*  
-  
-Virtual Node Name: must be the machine's name.  
-  
-  
-*  
-*  
-  
-Login/Password Data  
-  
-  
-  
-  
-  
-  
-**  
-  
-Type: Global.  
-  
-  
-**  
-**  
-  
-Login: *.  
-  
-  
-**  
-**  
-  
-Password: enter the installation password.  
-  
-  
-**  
-*  
-*  
-  
-Connection Data: you do not have to enter any data here.  
-  
-  
-*----  
-!!7.7. Using Net  
-  
-After you have configured Net with __netutil__ on the  
-client, and, if necessary, on the server, use __netutil__'s  
-Test menu option to see if the connection works.  
-If it does, you can access a remote database in the following manner  
-(let us suppose the name of the database is test,  
-the virtual node name for the remote Ingres  
-installation is ingserv1):  
-  
-  
-$ sql ingserv1::test  
-----  
-!!!8. ICE (Internet Commerce Enabled)  
-  
-ICE is Ingres'  
-proprietary gateway to the Web.  
-Basically, it is a CGI program that can talk to an  
-Ingres server through the  
-native Ingres API.  
-ICE supports a couple of macro commands which you  
-can embed in HTML documents.  
-When rendering such a document, ICE first  
-executes the macros then outputs the resulting web page.  
-  
-  
-  
-On other platforms you can configure ICE as  
-a server extension to the Spyglass web server  
-which is bundled with Ingres.  
-The Linux version of Ingres does not include  
-Spyglass.  
-Therefore, in this section I will show you how to setup  
-ICE as a standalone CGI program under  
-Apache, the world's most popular web server.  
-  
-  
-  
-You need the __ingvalidpw__ program for  
-ICE to work.  
-See subsection ingvalidpw on how to install it.  
-  
-----  
-!!8.1. Configuring Apache  
-  
-Building, installing and configuring Apache  
-is beyond the scope of this HOWTO.  
-(You had better learn Apache if you are putting  
-your databases on the Web, with ICE or otherwise.)  
-  
-  
-  
-I suggest to download the newest stable version of  
-Apache in source and build it yourself for  
-maximum flexibility.  
-I also suggest you keep a separate Apache  
-installation just for ICE.  
-  
-  
-  
-In this subsection I will only cover those parameters of  
-Apache that are important from  
-ICE's point of view.  
-  
-  
-  
-Things to watch out for:  
-  
-  
-  
-  
-  
-  
-*  
-  
-The installed software should be owned by the ingres user.  
-This is not strictly necessary but will make things easier.  
-  
-  
-*  
-*  
-  
-Compile the mod_env module into the server, preferably  
-statically (do not use DSOs unless you have to:  
-they make Apache slower).  
-  
-  
-*  
-  
-After you have compiled and installed Apache,  
-set the following parameters in httpd.conf:  
-  
-  
-Port 8000 -- must be greater than 1023  
-User ingres -- all server processes run as ingres  
-Group ingres -- the ingres user's group  
-!PassEnv II_SYSTEM  
-!PassEnv LD_LIBRARY_PATH  
-  
-  
-The last two lines must be added to httpd.conf.  
-These variables will be passed from the environment of the ingres user to the  
-environment of CGI programs started by  
-Apache (specifically __iceinst__  
-and __ice__, the two executables of ICE).  
-  
-  
-----  
-!!8.2. ICE Setup  
-  
-Now you can configure ICE and its Tutorials.  
-You can do this with a browser and the __iceinst__ program.  
-Let us suppose that your CGI directory is  
-/opt/ingres/apache/cgi-bin and  
-Apache is listening on port 8000.  
-Let the name of your machine be ingserv1.  
-Then you can start __iceinst__ in the following manner:  
-  
-  
-$ iceinst -d/opt/ingres/apache/cgi-bin -u/cgi-bin -shttp://ingserv1:8000  
--b/opt/netscape/netscape  
-  
-  
-Option -d is the full path to the  
-CGI directory, -u is this directory's  
-address within the site, -s is the Internet address of the  
-server, while -b is the full path to the browser.  
-If you omit option -b and write -remote  
-instead, then __iceinst__ will not try to start the browser.  
-You can configure ICE from another machine then,  
-directing your browser to http://ingserv1/cgi-bin/iceinst.  
-  
-  
-  
-First the program asks for the value of II_SYSTEM.  
-Then you should visit every screen and set all parameters presented on them.  
-Have __iceinst__ install the  
-''Dynamic SQL Tutorial'' and the  
-''Macro Processor Tutorial'' as well.  
-These show the usage of ICE via applications and a database  
-(icedb by default).  
-  
-  
-  
-It is important to create a directory under  
-Apache's  
-!DocumentRoot where ICE can store the output it  
-creates for clients' requests.  
-ICE will not start until you create this directory and  
-specify its name in __iceinst__.  
-  
-  
-  
-After you have completed every form, choose the  
-Install option.  
-If you have set everything properly, the configuration of  
-ICE and the installation of the tutorials take place.  
-ICE is ready to use.  
-  
-----  
-!!!9. Miscellaneous Topics  
-  
-Further hints to the use of Ingres.  
-  
-----  
-!!9.1. Automatic Startup and Shutdown  
-  
-If you want Ingres to start automatically  
-whenever Linux boots and stop when you shutdown or reboot the system, do  
-the following:  
-  
-  
-  
-Log in as root.  
-  
-  
-  
-Check if your Linux variant has System V or BSD style  
-__init__ (__init__'s __man__  
-page will tell that).  
-  
-  
-  
-If your system conforms to System V, the  
-/etc/rc.d/init.d directory must exist.  
-Create a file there (call it __ingres__ or any other name you  
-wish).  
-The file should contain at least the following:  
-  
-  
-#!/bin/sh  
-case $1 in  
-start)  
-echo "Starting Ingres"  
-su - ingres -c "ingstart"  
-;;  
-stop)  
-echo "Stopping Ingres"  
-su - ingres -c "ingstop"  
-;;  
-*)  
-echo "Usage: ingres {start|stop}"  
-exit 1  
-;;  
-esac  
-exit  
-  
-  
-Link the file as K01ingres to the directories  
-that correspond to the run levels in which Ingres  
-should ''stop'':  
-  
-  
-# ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc0.d/K01ingres  
-# ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc1.d/K01ingres  
-# ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc6.d/K01ingres  
-  
-  
-Also link it as S99ingres to the directories  
-that correspond to the run levels in which Ingres  
-should ''start'':  
-  
-  
-# ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc2.d/S99ingres  
-# ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc3.d/S99ingres  
-# ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc4.d/S99ingres  
-# ln -s /etc/rc.d/init.d/ingres /etc/rc.d/rc5.d/S99ingres  
-  
-  
-It is not important to call the links K01ingres  
-and S99ingres, the point is that the name starting with  
-K should contain a small number (so that  
-Ingres stops early when changing to a lower  
-runlevel) and the name starting with S should contain  
-a large number (so that Ingres starts after  
-everything else has started).  
-Naturally, the file names must not clash with names of existing files.  
-  
-  
-  
-If you have a BSD style __init__,  
-put the following lines into /etc/rc.d/rc.local:  
-  
-  
-echo "Starting Ingres"  
-su - ingres -c "ingstart"  
-  
-  
-This will start Ingres.  
-(As a matter of fact, you can use /etc/rc.d/rc.local  
-even if you have a System V style __init__.)  
-  
-  
-  
-To stop Ingres automatically, create a file in  
-/etc/shutdown.d  
-(call it, say, __ingres__) that contains the commands:  
-  
-  
-echo "Stopping Ingres"  
-su - ingres -c "ingstop"  
-  
-  
-No matter which type your system is, the files you create must be  
-executable files, owned by root.  
-  
-  
-  
-Naturally, if your system provides a utility for configuring programs  
-to start and stop automatically (such as __chkconfig__ in  
-!RedHat), use that if you wish.  
-  
-----  
-!!9.2. ingmenu  
-  
-The easiest way to access an Ingres database  
-(at least, for beginners) is via the __ingmenu__ program.  
-From __ingmenu__, you can reach  
-Ingres' forms-based utilities, by which you can  
-create, update and query tables, create, edit and run reports and  
-ABF or Vision applications.  
-Its usage is:  
-  
-  
-$ ingmenu test  
-  
-  
-Test is the name of the database.  
-  
-----  
-!!9.3. Circumventing Ingres Net  
-  
-Without Ingres/Net, in theory it is not possible for  
-Ingres applications to access databases on  
-different machines.  
-However, there exists a method, not supported by CA, by which  
-sometimes you can come around this problem.  
-  
-  
-  
-Let us suppose your application runs on host ingdev and the database  
-(called test) you would like to update or query resides  
-on host ingserv.  
-Your first task is to find out the port number of the appropriate  
-DBMS server running on ingserv.  
-You can use __ipm__ for this purpose: as ingres, start  
-__ipm__ on ingserv and choose option  
-Server List.  
-In the list of servers select one that is of type INGRES  
-and handles the test database (you have to see either  
-test or ALL in column  
-Connecting to Databases).  
-You find the port number of the DBMS server in the  
-first column.  
-Let us suppose it is 1259.  
-  
-  
-  
-On machine ingdev, set the shell variable II_DBMS_SERVER  
-in the following way:  
-  
-  
-$ export II_DBMS_SERVER='ingserv::1259'  
-  
-  
-Now run the command:  
-  
-  
-$ sql test  
-  
-  
-If it works, you have access to the test database  
-on host ingserv.  
-  
-  
-  
-This solution is applicable only if both machines are of the same  
-architecture, the same operating system is running on both of them, the  
-character set is the same in both Ingres  
-installations, and so on: I do not know the full list of necessary conditions.  
-Therefore, I cannot guarantee that this trick will work.  
-  
-  
-  
-On the other hand, if you restart Ingres  
-on host ingserv, the DBMS server process will get a  
-different TCP/IP port, therefore you probably have to  
-automate the fetching of the current port number to the application server.  
-You can use the __show__ command of the  
-__iinamu__ utility for this purpose.  
-The following command line gives the port number of the DBMS  
-server if there is only one server running:  
-  
-  
-$ echo show | iinamu | grep INGRES | tr -s ' ' '\t' | cut -f4  
-----  
-!!9.4. Forms-Based Development Tools  
-  
-The Ingres installation includes a sample  
-application, created by ABF,  
-the traditional development tool of Ingres.  
-You can load it with the __abfdemo__ command.  
-Unfortunately, the manuals of ABF  
-and Vision cannot be found either  
-on the Ingres CD or on the  
-CA site.  
-  
-  
-  
-There is a problem with the SDK under glibc 2.1:  
-applications created by ABF or  
-Vision cannot be either compiled or run directly  
-from the database.  
-This problem is solved in the full Ingres version.  
-For the SDK, install the !RedHat glibc 2.0 compatibility  
-packages.  
-If you do not have !RedHat, download them from the following  
-URLs:  
-  
-  
-  
-  
-  
-  
-  
-*  
-  
- ftp://ftp.redhat.com/pub/redhat/redhat-6./i386/!RedHat/RPMS/compat-binutils-5.2-2.9.1..23.1.i386.rpm  
-  
-  
-*  
-*  
-  
- ftp://ftp.redhat.com/pub/redhat/redhat-6./i386/!RedHat/RPMS/compat-egcs-5.2-1..3a.1.i386.rpm  
-  
-  
-*  
-*  
-  
- ftp://ftp.redhat.com/pub/redhat/redhat-6./i386/!RedHat/RPMS/compat-glibc-5.2-2..7.1.i386.rpm  
-  
-  
-*  
-*  
-  
- ftp://ftp.redhat.com/pub/redhat/redhat-6./i386/!RedHat/RPMS/compat-libs-5.2-1.i386.rpm  
-  
-  
-*  
-  
-Besides the compatibility packages, you need an  
-Ingres patch.  
-It was posted on the Ingres newsgroup in September, 1999.  
-I have a copy of it, email me if you wish to install it.  
-  
-  
-  
-The compatibility packages and the patch probably do not work for all  
-Linux distributions.  
-I only tested them on !RedHat and Caldera Open Linux.  
-  
-----  
-!!9.5. Ingperl and Perl DBI  
-  
-Previous Perl versions, version 4 included,  
-made Ingres access possible via libraries known  
-as ingperl.  
-You can find information on ingperl at  
- http://www.contrib.andrew.cmu.edu/~lfm/ingperl.html.  
-  
-  
-  
-In Perl 5 a new, unified database  
-interface, called Perl DBI,  
-appeared.  
-Its site is  
- http://www.symbolstone.org/technology/perl/DBI/index.html.  
-  
-  
-  
-You can download the Ingres  
-module of DBI from that site.  
-  
-----  
-!!9.6. Ingres links  
-  
-I leave you with a few pointers to important  
-Ingres sites:  
-  
-  
-  
-  
-  
-  
-*  
-  
- http://www.cai.com/ingres/:  
-home page of the Ingres RDBMS on  
-CA's site.  
-  
-  
-*  
-*  
-  
- http://support.cai.com/ingressupp.html:  
-Ingres Technical Support.  
-  
-  
-*  
-*  
-  
- http://www.cai.com/ingres/inquire/:  
-inquire_ingres: Ingres technical  
-magazine.  
-  
-  
-*  
-*  
-  
- http://www.naiua.org: the North American Ingres Users  
-Association's site.  
-Check the FAQ page, and the  
-/papers directory.  
-  
-  
-*  
-*  
-  
- news:comp.databases.ingres: the  
-Ingres newsgroup.  
-  
-  
-*  
-*  
-  
- http://www.deja.com/group/comp.databases.ingres: the  
-archived Ingres newsgroup on Deja.  
-  
-  
-*  
-*  
-  
- http://munkora.cs.mu.oz.au/~yuan/Ingres/ingres.html: William  
-Yuan's Ingres Reference Page with lots of  
-Ingres information.  
-  
-  
-*  
-*  
-  
- http://www.mercurie.co.uk/ingres/: Prijesh Patel's Unofficial  
-Ingres Web Page with edited posts from the  
-Ingres newsgroup.  
-  
-  
-*  
-*  
-  
- http://www.palslib.com/Ingres_II/Ingres_II.html: the  
-Ingres section of Pal's Linux RDBMS  
-Library.  
-  
-  
-*  
-  
-Have fun!  
+Describe [HowToIngresIIHOWTO ] here.