|
|
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: (January 26, 1981) ! 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 in kernel ! 143: .PS ! 144: If you want to use concurrency control, ! 145: you will have to install the INGRES concurrency device ! 146: in the kernel. ! 147: This requires adding a device driver, ! 148: an entry in /dev, ! 149: and a one line change to the exit system call. ! 150: You should read the document ! 151: "Instructions for Installing the INGRES ! 152: Concurrency Device in UNIX" ! 153: before proceeding. ! 154: .sh 1 ! 155: General Information about INGRES. ! 156: .dn ! 157: Some comments on the INGRES directories ! 158: .PS ! 159: The directories (in ...) necessary ! 160: for a minimal running system are: ! 161: ! 162: .nf ! 163: bin the binary programs comprising INGRES ! 164: files files used by various parts of INGRES ! 165: data/base/ user-created databases ! 166: demo used by the "demodb" command ! 167: .fi ! 168: ! 169: Several additional directories are also created. If space limitations ! 170: are a problem on your system you may want to delete some or all ! 171: of the material here. ! 172: If you need to, ! 173: delete the files but be sure to keep ! 174: the directories. ! 175: The additional directories are: ! 176: ! 177: .nf ! 178: doc documentation ! 179: lib object file libraries ! 180: source system source code ! 181: .fi ! 182: .sh ! 183: Support for separated I & D space. ! 184: .PS ! 185: On a PDP-11, ! 186: you MUST have separated I & D space and floating point hardware ! 187: for INGRES to run under version 7. ! 188: INGRES will NOT run on an 11/40 or similar machine ! 189: under version 7 of UNIX. ! 190: .sh 1 ! 191: Getting started using INGRES. ! 192: .dn ! 193: The Users File. ! 194: .PS ! 195: In order to use INGRES a user must be entered into ! 196: the "users" file. ! 197: The users file contains information ! 198: regarding the status and permissions of each ! 199: user. ! 200: This file resembles the /etc/passwd file, ! 201: and includes the user's name, the user ! 202: code (used inside INGRES to identify a user), ! 203: the UNIX id of the user, some status bits, ! 204: and some other fields. ! 205: These are described in detail in the document ! 206: users(files). ! 207: ! 208: The users file can be initialized by running ! 209: the "usersetup" program. ! 210: This program installs all ! 211: users in the /etc/passwd file as valid ! 212: INGRES users. ! 213: The user code is assigned sequentially ! 214: from "aa". ! 215: The status field is initialized to 000000 ! 216: for all normal users and ! 217: 177777 for the user "ingres". ! 218: ! 219: To setup the users file in /mnt/ingres execute: ! 220: ! 221: .../bin/usersetup ! 222: ! 223: Once created the users file can be edited using "ed" to do ! 224: the following things: ! 225: ! 226: .in +8 ! 227: - completely remove all users not authorized to execute INGRES. ! 228: ! 229: - restrict a user from using a particular database. ! 230: ! 231: - set the other status bits for appropriate users. ! 232: .in -8 ! 233: ! 234: As UNIX users are added or deleted, the users ! 235: file must be updated appropriately. ! 236: The usersetup program can be executed only once. ! 237: A diagnostic is issued if it is executed a second time. ! 238: .sh ! 239: Creating a Sample Data Base ! 240: .PS ! 241: The "demodb" command provided can be used to construct the sample ! 242: database on ! 243: which the examples in the tutorial (located on-line in ! 244: ".../doc/other/tutorial") are based. ! 245: In order to execute this command ! 246: you must be entered into the users ! 247: file and have permission to create a database. ! 248: To create the sample ! 249: database and assign it the name "demo" ! 250: type the command: ! 251: ! 252: .nf ! 253: demodb demo ! 254: .fi ! 255: ! 256: In order to use INGRES ! 257: with this database you need ! 258: merely type ! 259: ! 260: .nf ! 261: ingres demo ! 262: .fi ! 263: ! 264: and you will be ready to follow the terminal session described in ! 265: the tutorial or to formulate your own queries. ! 266: ! 267: To create your own copy of the same sample database ! 268: use some unique database name. ! 269: ! 270: .nf ! 271: demodb mydemo ! 272: .fi ! 273: ! 274: .sh ! 275: Creating Other Data Bases. ! 276: .PS ! 277: You will no doubt wish to create other databases of your own and ! 278: for this you will need to use "creatdb". ! 279: In order ! 280: to use this command you must be authorized in the users file. ! 281: .sh ! 282: Concurrency Control. ! 283: .PS ! 284: INGRES is designed to run with either no ! 285: concurrency control or with full ! 286: concurrency control. ! 287: INGRES locks portions of a database by using ! 288: a user level process called /etc/lockd. ! 289: Initially you can use INGRES without this ! 290: special device. ! 291: If you want concurrency control ! 292: (if more than one person will be using ! 293: INGRES on the same database at the ! 294: same time, you MUST have it) then ! 295: print a copy of the instructions on ! 296: how to install the concurrency device: ! 297: ! 298: .ti +8 ! 299: nroff .../doc/other/lockdev.nr ! 300: ! 301: .sh 1 ! 302: Hints and suggestions. ! 303: .PS ! 304: .dn ! 305: Unix Protection Problems. ! 306: .PS ! 307: If you encounter problems in creating directories or reading in files ! 308: from the tape ! 309: check the protection status of the parent directories involved to make sure ! 310: that permission to write new files exists. ! 311: ! 312: The following summarizes the proper modes for each directory. ! 313: All directories are owned by INGRES except the ! 314: individual databases. ! 315: (The modes in parentheses represent the mode to be used ! 316: if you wish to restrict access maximally.) ! 317: .nf ! 318: ! 319: bin 755 ! 320: data 700 ! 321: data/base 777 ! 322: demo 755 ! 323: doc 755 ! 324: files 755 ! 325: geoquel and all its subdirectories 755 ! 326: lib 755 ! 327: source and all its subdirectories 755 (700) ! 328: any database 777 (typically owned by the dba) ! 329: .fi ! 330: ! 331: The programs in .../bin should be in the following modes: ! 332: ! 333: .nf ! 334: -rwsr----- 1 ingres . . . ksort ! 335: -rwxr-x--x 1 ingres . . . monitor ! 336: -rwsr----- 1 ingres . . . vaxingres ! 337: .fi ! 338: ! 339: You may need to ! 340: become super-user to add files ! 341: in "/usr/bin". ! 342: .sh ! 343: Making Certain Programs "Sticky". ! 344: .PS ! 345: The INGRES program to sort relations is ! 346: frequently executed ! 347: during an INGRES session. ! 348: Performance can be improved if it is ! 349: made "sticky". ! 350: If you have sufficient space on your ! 351: swapping device, ! 352: it is advantageous to make the following ! 353: program "sticky". ! 354: This can be done by changing its mode ! 355: to 5700. ! 356: ! 357: chmod 5740 .../bin/ksort ! 358: ! 359: .sh ! 360: Upper Case Only Terminals ! 361: .PS ! 362: Remember if you are using an upper-case-only terminal you will have ! 363: to use a double backslash "\\\\" with all terminal monitor commands in order to ! 364: override the interpretation of "\\" as an escape character. ! 365: For example on an upper and lower case terminal you would type: ! 366: ! 367: .nf ! 368: help parts ! 369: \\g ! 370: .fi ! 371: ! 372: while on an upper case only terminal you would type: ! 373: ! 374: .nf ! 375: HELP PARTS ! 376: \\\\G ! 377: .fi ! 378: ! 379: .sh 1 ! 380: Source code and system regeneration ! 381: .dn ! 382: Log on as user "ingres". ! 383: .PS ! 384: When doing any system work always log on as "ingres". ! 385: .sh ! 386: Recompilation. ! 387: .PS ! 388: All source code for the system is located in ".../source" ! 389: and various sub-directories therein. Each subdirectory is ! 390: named for a functional component or sub-component of the system. ! 391: Makefiles for regenerating the various portions of the system ! 392: from source are located in the associated directory. ! 393: To regenerate a particular module (e.g. parser) say: ! 394: ! 395: .nf ! 396: chdir .../source/parser ! 397: make ! 398: .fi ! 399: ! 400: The entire system can be recompiled and installed ! 401: in /usr/bin ! 402: using the command: ! 403: ! 404: .nf ! 405: chdir .../source/conf ! 406: make allinstall sysinstall ! 407: .fi ! 408: ! 409: When recompiling for the first time it is strongly ! 410: advised that you use a hard copy terminal or ! 411: save the output in some other manner. ! 412: ! 413: Libraries of object code are maintained ! 414: in .../lib. ! 415: ! 416: You may find that your C compiler cannot compile INGRES. ! 417: If this is true, you will have to increase the size of ! 418: the symbol table in cpp. ! 419: ! 420: .sh ! 421: Compilation Flags and Funny Flavored UNIXes. ! 422: .PS ! 423: If you are running any system ! 424: other than VM/UNIX release 4 (4BSD), ! 425: you may have to recompile the INGRES system ! 426: before it is usable. ! 427: Examine the file .../source/unix.h closely ! 428: for correspondence with your version of reality. ! 429: Major problems include representation of user and group id's ! 430: and structures returned by various system calls. ! 431: ! 432: Four compile flags in unix.h define the type of user id's ! 433: used on your system. ! 434: For a vanilla version six system ! 435: with 8-bit user id's and 8-bit group id's, ! 436: set the xV6_UNIX compilation flag. ! 437: For a Berkeley version six system ! 438: with a single 16-bit user id ! 439: (and no group id), ! 440: set the xB_UNIX flag. ! 441: For a vanilla version seven system, ! 442: chocolate version six system, ! 443: or VM/UNIX system, ! 444: with 16-bit user id's and 16-bit group id's ! 445: set xV7_UNIX. ! 446: Also, define either ! 447: VAX ! 448: or ! 449: PDP11 ! 450: depending on whether you are on a PDP-11 or a VAX. ! 451: ! 452: A large set of flags ! 453: in ingres.h ! 454: control compilation of trace information ! 455: and timing estimates. ! 456: Flags of the form "x?TM" ! 457: (where "?" is a letter as described below) ! 458: turn on timing information. ! 459: THESE SHOULD ALWAYS BE LEFT OFF, ! 460: since the system you receive on the distribution tape ! 461: does not include everything necessary to ! 462: successfully use these flags. ! 463: Flags of the form "x?TR1", "x?TR2", and "x?TR3" ! 464: are trace compilation flags. ! 465: Compiling these in does not automatically ! 466: make trace information print, ! 467: but only makes it available. ! 468: These flags must be properly nested; ! 469: for example, if xMTR2 is set, ! 470: xMTR1 must also be set ! 471: (but xMTR3 is optional). ! 472: The letter codes for these flags are as follows: ! 473: ! 474: .nf ! 475: .in +5 ! 476: A Access Methods ! 477: M Terminal Monitor ! 478: P Parser ! 479: Q Qrymod ! 480: D Decomposition ! 481: O One Variable Query Processor ! 482: Z Data Base Utilities ! 483: E Equel ! 484: S Scanner ! 485: T Standalone Routines ! 486: .fi ! 487: .in -5 ! 488: ! 489: A flag named DISTRIB is used in some places ! 490: in the code. ! 491: This is used in the yet-to-be-born ! 492: Distributed INGRES system, ! 493: and should always be left off. ! 494: ! 495: Touching any other defined constants ! 496: should be considered extremely dangerous ! 497: and is done strictly at your own risk. ! 498: ! 499: .sh 1 ! 500: Documentation. ! 501: .dn ! 502: Tutorial on INGRES. ! 503: .PS ! 504: A tutorial on using INGRES can be found in ! 505: ".../doc/other/tutorial.nr". A copy of the document ! 506: can be produced by: ! 507: ! 508: .nf ! 509: nroff .../doc/other/tutorial.nr ! 510: .fi ! 511: ! 512: The tutorial guides the reader through ! 513: examples of using QUEL the INGRES database ! 514: language. A basic familiarity with UNIX is ! 515: assumed. ! 516: .sh ! 517: Reference Manual. ! 518: .PS ! 519: The reference manual consists of a number of files - ! 520: one for each command or feature in INGRES. The reference ! 521: manual can be retrieved by using the ! 522: help command ! 523: (see help(quel)). ! 524: A complete copy of the manual can be ! 525: printed on the line printer by: ! 526: ! 527: chdir .../doc ! 528: make ref ! 529: ! 530: The complete manual is about 80 pages. ! 531: ! 532: .sh ! 533: Maintenance Manual. ! 534: .PS ! 535: A guide to using INGRES has been written and is called ! 536: "Creating and Maintaining ! 537: a Database Using INGRES". ! 538: It includes information about ! 539: creating databases, storage structures, ! 540: recovery, copy, indices and ! 541: other useful information. ! 542: A copy of the manual can be produced by: ! 543: ! 544: .nf ! 545: nroff .../doc/other/maintain.nr ! 546: .fi ! 547: ! 548: .sh ! 549: Design of INGRES ! 550: .PS ! 551: A draft of the report "The Design and Implementation ! 552: of INGRES" by Stonebraker, Kreps and Held can be ! 553: found in ".../doc/other/design.roff". It can be printed ! 554: by: ! 555: ! 556: .nf ! 557: roff .../doc/other/design.roff ! 558: .fi ! 559: ! 560: The report gives a ! 561: fairly detailed description of the structure ! 562: and capabilities of the entire system as ! 563: it existed over three years ago, in January 1976. ! 564: .ul ! 565: It is out of date in many areas. ! 566: It gives implementation details and ! 567: algorithms of important system modules. ! 568: ! 569: .sh ! 570: Internal Documentation. ! 571: .PS ! 572: We currently do not provide, ! 573: nor have we written any ! 574: internal documentation beyond what ! 575: is mentioned in the "Design and Implementation" ! 576: paper. ! 577: ! 578: This document itself can be reproduced ! 579: by doing: ! 580: ! 581: .nf ! 582: nroff .../doc/other/howto_setup.nr ! 583: .fi ! 584: ! 585: .sh 1 ! 586: Consulting ! 587: .PS ! 588: The INGRES project is not set up to supply ! 589: regular consulting. ! 590: If you do have problems, ! 591: please reread these instructions carefully; ! 592: over two thirds of the "bug reports" we receive ! 593: can be answered by re-reading the documentation. ! 594: For non-technical questions ! 595: (e.g., regarding availability of the system ! 596: or documentation) ! 597: please call the project secretary ! 598: at (415) 642-2344. ! 599: I can also be reached through this number. ! 600: ! 601: ! 602: .in 10 ! 603: .nf ! 604: Eric Allman ! 605: Electronics Research Laboratory ! 606: University of California ! 607: Berkeley, California 94720 ! 608: .fi ! 609: .in 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.