|
|
1.1 root 1: .ds HE 'HOW TO SET UP INGRES''PAGE %'
2: .so nmacs
3: .ce
4: Instructions for setting up INGRES from tape.
5: .ce
6: (VAX UNIX*)
7:
8: .ce
9: (October 3, 1984)
10:
11: This set of instructions will help you
12: read INGRES version 7 in from tape and get it running on
13: your system.
14: If you are running any version of UNIX
15: other than VM/UNIX release four,
16: read this entire document
17: before doing anything!,
18: paying particular attention to section 5.3.
19:
20: *UNIX is a trademark of Bell Laboratories.
21:
22: .sh 1
23: Installing INGRES for the first time.
24: .PS
25: If you already have an INGRES system,
26: go directly to part 1.3.
27: .dn
28: Creating a UNIX user called "ingres".
29: .PS
30: The first thing you should do is to create a user named "ingres"
31: on your system
32: and log in as that user.
33: The files you read in from
34: tape will be owned by "ingres",
35: an actual user on your system.
36: INGRES locates files in the system by
37: looking in the /etc/passwd file for the
38: user "ingres".
39: INGRES will
40: .ul
41: not work
42: unless you create this user.
43: .sh
44: Creating parent directory for the INGRES system.
45: .PS
46: The parent directory of the INGRES system at Berkeley is "/mnt/ingres".
47: It is possible to run INGRES in a parent directory
48: of your own choosing,
49: which must be the parent directory of
50: the user "ingres" as specified in /etc/passwd.
51: For the purpose of this document the
52: parent directory will be denoted by "...".
53: .sh
54: Extracting INGRES from the tape.
55: .PS
56: You are now ready to read the tape into your
57: system using tar.
58: You should be in the home directory for INGRES
59: and logged in as INGRES.
60: Type the command:
61:
62: tar xf /dev/rmt0
63:
64: The system is now fully extracted from the tape
65: and the tape can be unloaded if desired.
66: .sh
67: User oriented programs
68: .PS
69: In .../bin there is a collection of programs.
70: Several programs
71: are type-I commands associated with INGRES and which should be moved or
72: linked into /usr/bin.
73: The other programs are executed only by other
74: INGRES programs and must be left in .../bin.
75: After moving the files verify that they
76: are still owned by "ingres",
77: and are in the correct modes.
78: Move only the files listed below.
79: Leave the other files where they are!
80:
81: .in 18
82: .ti -10
83: copydb, creatdb, destroydb, equel, helpr,
84: .ti -10
85: ingres, printr, purge, restore, sysmod
86: .br
87: (see INGRES reference manual for an
88: explanation of these commands.
89:
90: .ti -10
91: demodb creates a new database with a name given as an argument
92: and loads it with sample data relations such as might be used by
93: a department store for employee and sales records.
94: The INGRES tutorial uses the relations
95: in the demo database for its examples.
96:
97: .in -10
98: It is imperative that each of these programs be in
99: the correct mode.
100: A sample "ls -l" is given below.
101: Verify that your file modes agree with the listing.
102:
103: .in +10
104: .nf
105: -rwx--x--x 1 ingres . . . copydb
106: -rws--x--x 1 ingres . . . creatdb
107: -rwxr-xr-x 1 ingres . . . demodb
108: -rws--x--x 1 ingres . . . destroydb
109: -rwx--x--x 1 ingres . . . equel
110: -rws--x--x 1 ingres . . . helpr
111: -rws--x--x 1 ingres . . . ingres
112: -rws--x--x 1 ingres . . . printr
113: -rws--x--x 1 ingres . . . purge
114: -rws--x--x 1 ingres . . . restore
115: .fi
116:
117: .sh
118: EQUEL run time library.
119: .PS
120: The EQUEL run time library should be
121: moved to "/lib/libq.a"
122: or "/usr/lib/libq.a". The library
123: is needed for compiling user EQUEL
124: programs. It is not necessary for
125: compiling INGRES itself.
126: It is
127: preferable although not essential
128: that the owner of the library remain "ingres".
129: To move the library:
130:
131: .nf
132: cp .../bin/libq.a /usr/lib/libq.a
133: .fi
134:
135: Refer to the INGRES Reference Manual for
136: information about how to use EQUEL and
137: the EQUEL library.
138: There is a tutorial on using EQUEL in
139: ".../doc/other/equeltut.q" and there is a
140: small sample program in ".../doc/other/equeldemo.q".
141: .sh
142: Install concurrency device.
143: .PS
144: If you want to use concurrency control,
145: you will have to install the INGRES concurrency program
146: into /etc, add the command to /etc/rc, and add the
147: definition to /etc/services.
148: You should read the document
149: "Instructions for Installing the INGRES
150: Concurrency Device in UNIX"
151: before proceeding.
152: .sh 1
153: General Information about INGRES.
154: .dn
155: Some comments on the INGRES directories
156: .PS
157: The directories (in ...) necessary
158: for a minimal running system are:
159:
160: .nf
161: bin the binary programs comprising INGRES
162: files files used by various parts of INGRES
163: data/base/ user-created databases
164: demo used by the "demodb" command
165: .fi
166:
167: Several additional directories are also created. If space limitations
168: are a problem on your system you may want to delete some or all
169: of the material here.
170: If you need to,
171: delete the files but be sure to keep
172: the directories.
173: The additional directories are:
174:
175: .nf
176: doc documentation
177: lib object file libraries
178: source system source code
179: .fi
180: .sh
181: Support for separated I & D space.
182: .PS
183: On a PDP-11,
184: you MUST have separated I & D space and floating point hardware
185: for INGRES to run under version 7.
186: INGRES will NOT run on an 11/40 or similar machine
187: under version 7 of UNIX.
188: .sh 1
189: Getting started using INGRES.
190: .dn
191: The Users File.
192: .PS
193: In order to use INGRES a user must be entered into
194: the "users" file.
195: The users file contains information
196: regarding the status and permissions of each
197: user.
198: This file resembles the /etc/passwd file,
199: and includes the user's name, the user
200: code (used inside INGRES to identify a user),
201: the UNIX id of the user, some status bits,
202: and some other fields.
203: These are described in detail in the document
204: users(files).
205:
206: The users file can be initialized by running
207: the "usersetup" program.
208: This program installs all
209: users in the /etc/passwd file as valid
210: INGRES users.
211: The user code is assigned sequentially
212: from "aa".
213: The status field is initialized to 000000
214: for all normal users and
215: 177777 for the user "ingres".
216:
217: To setup the users file in /mnt/ingres execute:
218:
219: .../bin/usersetup
220:
221: Once created the users file can be edited using "ed" to do
222: the following things:
223:
224: .in +8
225: - completely remove all users not authorized to execute INGRES.
226:
227: - restrict a user from using a particular database.
228:
229: - set the other status bits for appropriate users.
230: .in -8
231:
232: As UNIX users are added or deleted, the users
233: file must be updated appropriately.
234: The usersetup program can be executed only once.
235: A diagnostic is issued if it is executed a second time.
236: .sh
237: Creating a Sample Data Base
238: .PS
239: The "demodb" command provided can be used to construct the sample
240: database on
241: which the examples in the tutorial (located on-line in
242: ".../doc/other/tutorial") are based.
243: In order to execute this command
244: you must be entered into the users
245: file and have permission to create a database.
246: To create the sample
247: database and assign it the name "demo"
248: type the command:
249:
250: .nf
251: demodb demo
252: .fi
253:
254: In order to use INGRES
255: with this database you need
256: merely type
257:
258: .nf
259: ingres demo
260: .fi
261:
262: and you will be ready to follow the terminal session described in
263: the tutorial or to formulate your own queries.
264:
265: To create your own copy of the same sample database
266: use some unique database name.
267:
268: .nf
269: demodb mydemo
270: .fi
271:
272: .sh
273: Creating Other Data Bases.
274: .PS
275: You will no doubt wish to create other databases of your own and
276: for this you will need to use "creatdb".
277: In order
278: to use this command you must be authorized in the users file.
279: .sh
280: Concurrency Control.
281: .PS
282: INGRES is designed to run with either no
283: concurrency control or with full
284: concurrency control.
285: INGRES locks portions of a database by using
286: a user level process called /etc/ingreslock.
287: Initially you can use INGRES without this
288: special process.
289: If you want concurrency control
290: (if more than one person will be using
291: INGRES on the same database at the
292: same time, you MUST have it) then
293: print a copy of the instructions on
294: how to install the concurrency device:
295:
296: .ti +8
297: nroff .../doc/other/lockdev.nr
298:
299: .sh 1
300: Hints and suggestions.
301: .PS
302: .dn
303: Unix Protection Problems.
304: .PS
305: If you encounter problems in creating directories or reading in files
306: from the tape
307: check the protection status of the parent directories involved to make sure
308: that permission to write new files exists.
309:
310: The following summarizes the proper modes for each directory.
311: All directories are owned by INGRES except the
312: individual databases.
313: (The modes in parentheses represent the mode to be used
314: if you wish to restrict access maximally.)
315: .nf
316:
317: bin 755
318: data 700
319: data/base 777
320: demo 755
321: doc 755
322: files 755
323: lib 755
324: source and all its subdirectories 755 (700)
325: any database 777 (typically owned by the dba)
326: .fi
327:
328: The programs in .../bin should be in the following modes:
329:
330: .nf
331: -rwxr-x--x 1 ingres . . . monitor
332: -rwsr----- 1 ingres . . . vaxingres
333: .fi
334:
335: You may need to
336: become super-user to add files
337: in "/usr/bin".
338: .sh
339: Upper Case Only Terminals
340: .PS
341: Remember if you are using an upper-case-only terminal you will have
342: to use a double backslash "\\\\" with all terminal monitor commands in order to
343: override the interpretation of "\\" as an escape character.
344: For example on an upper and lower case terminal you would type:
345:
346: .nf
347: help parts
348: \\g
349: .fi
350:
351: while on an upper case only terminal you would type:
352:
353: .nf
354: HELP PARTS
355: \\\\G
356: .fi
357:
358: .sh 1
359: Source code and system regeneration
360: .dn
361: Log on as user "ingres".
362: .PS
363: When doing any system work always log on as "ingres".
364: .sh
365: Recompilation.
366: .PS
367: All source code for the system is located in ".../source"
368: and various sub-directories therein. Each subdirectory is
369: named for a functional component or sub-component of the system.
370: Makefiles for regenerating the various portions of the system
371: from source are located in the associated directory.
372: To regenerate a particular module (e.g. parser) say:
373:
374: .nf
375: chdir .../source/parser
376: make
377: .fi
378:
379: The entire system can be recompiled and installed
380: in /usr/bin
381: using the command:
382:
383: .nf
384: chdir .../source/conf
385: make allinstall sysinstall
386: .fi
387:
388: When recompiling for the first time it is strongly
389: advised that you use a hard copy terminal or
390: save the output in some other manner.
391:
392: Libraries of object code are maintained
393: in .../lib.
394:
395: You may find that your C compiler cannot compile INGRES.
396: If this is true, you will have to increase the size of
397: the symbol table in cpp.
398:
399: .sh
400: Compilation Flags and Funny Flavored UNIXes.
401: .PS
402: If you are running any system
403: other than VM/UNIX release 4.2 (4.2BSD),
404: you may have to recompile the INGRES system
405: before it is usable.
406: Examine the file .../source/unix.h closely
407: for correspondence with your version of reality.
408: Major problems include representation of user and group id's
409: and structures returned by various system calls.
410:
411: Four compile flags in unix.h define the type of user id's
412: used on your system.
413: For a vanilla version six system
414: with 8-bit user id's and 8-bit group id's,
415: set the xV6_UNIX compilation flag.
416: For a Berkeley version six system
417: with a single 16-bit user id
418: (and no group id),
419: set the xB_UNIX flag.
420: For a vanilla version seven system,
421: chocolate version six system,
422: or VM/UNIX system,
423: with 16-bit user id's and 16-bit group id's
424: set xV7_UNIX.
425: Also, define either
426: VAX
427: or
428: PDP11
429: depending on whether you are on a PDP-11 or a VAX.
430:
431: A large set of flags
432: in ingres.h
433: control compilation of trace information
434: and timing estimates.
435: Flags of the form "x?TM"
436: (where "?" is a letter as described below)
437: turn on timing information.
438: THESE SHOULD ALWAYS BE LEFT OFF,
439: since the system you receive on the distribution tape
440: does not include everything necessary to
441: successfully use these flags.
442: Flags of the form "x?TR1", "x?TR2", and "x?TR3"
443: are trace compilation flags.
444: Compiling these in does not automatically
445: make trace information print,
446: but only makes it available.
447: These flags must be properly nested;
448: for example, if xMTR2 is set,
449: xMTR1 must also be set
450: (but xMTR3 is optional).
451: The letter codes for these flags are as follows:
452:
453: .nf
454: .in +5
455: A Access Methods
456: M Terminal Monitor
457: P Parser
458: Q Qrymod
459: D Decomposition
460: O One Variable Query Processor
461: Z Data Base Utilities
462: E Equel
463: S Scanner
464: T Standalone Routines
465: .fi
466: .in -5
467:
468: A flag named DISTRIB is used in some places
469: in the code.
470: This is used in the yet-to-be-born
471: Distributed INGRES system,
472: and should always be left off.
473:
474: Touching any other defined constants
475: should be considered extremely dangerous
476: and is done strictly at your own risk.
477:
478: .sh 1
479: Documentation.
480: .dn
481: Tutorial on INGRES.
482: .PS
483: A tutorial on using INGRES can be found in
484: ".../doc/other/tutorial.nr". A copy of the document
485: can be produced by:
486:
487: .nf
488: nroff .../doc/other/tutorial.nr
489: .fi
490:
491: The tutorial guides the reader through
492: examples of using QUEL the INGRES database
493: language. A basic familiarity with UNIX is
494: assumed.
495: .sh
496: Reference Manual.
497: .PS
498: The reference manual consists of a number of files -
499: one for each command or feature in INGRES. The reference
500: manual can be retrieved by using the
501: help command
502: (see help(quel)).
503: A complete copy of the manual can be
504: printed on the line printer by:
505:
506: chdir .../doc
507: make ref
508:
509: The complete manual is about 80 pages.
510:
511: .sh
512: Maintenance Manual.
513: .PS
514: A guide to using INGRES has been written and is called
515: "Creating and Maintaining
516: a Database Using INGRES".
517: It includes information about
518: creating databases, storage structures,
519: recovery, copy, indices and
520: other useful information.
521: A copy of the manual can be produced by:
522:
523: .nf
524: nroff .../doc/other/maintain.nr
525: .fi
526:
527: .sh
528: Design of INGRES
529: .PS
530: A draft of the report "The Design and Implementation
531: of INGRES" by Stonebraker, Kreps and Held can be
532: found in ".../doc/other/design.roff". It can be printed
533: by:
534:
535: .nf
536: roff .../doc/other/design.roff
537: .fi
538:
539: The report gives a
540: fairly detailed description of the structure
541: and capabilities of the entire system as
542: it existed over eight years ago, in January 1976.
543: .ul
544: It is out of date in many areas.
545: It gives implementation details and
546: algorithms of important system modules.
547:
548: .sh
549: Internal Documentation.
550: .PS
551: We currently do not provide,
552: nor have we written any
553: internal documentation beyond what
554: is mentioned in the "Design and Implementation"
555: paper.
556:
557: This document itself can be reproduced
558: by doing:
559:
560: .nf
561: nroff .../doc/other/howto_setup.nr
562: .fi
563:
564: .sh 1
565: Consulting
566: .PS
567: The INGRES project is not set up to supply
568: regular consulting.
569: If you do have problems,
570: please reread these instructions carefully;
571: over two thirds of the "bug reports" we receive
572: can be answered by re-reading the documentation.
573: For non-technical questions
574: (e.g., regarding availability of the system
575: or documentation)
576: please call the project secretary
577: at (415) 642-2344.
578: I can also be reached through this number.
579:
580:
581: .in 10
582: .nf
583: Joe Kalash
584: Electronics Research Laboratory
585: University of California
586: Berkeley, California 94720
587: .fi
588: .in 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.