Vb.124 : Aufbohrung
Bernhard Eversberg
EV at buch.biblio.etc.tu-bs.de
Mo Nov 22 08:26:02 CET 1999
Verlautbarung 124 der Entwicklungsabteilung 1999-11-22
-------------------------------------------
Hinweis: Diese Vb. betrifft nur Inhaber von Grossbanken! Wer weniger als
3 Millionen Saetze hat und sicher ist, eine solche Groesse nicht so bald
zu erreichen, kann sich die Zeit fuer die Lektuere sparen.
Wichtig und beruhigend zu wissen ist nur: Die neuen Programme arbeiten mit
Alt- und Kleinbanken genauso wie die bisherigen, es gibt nichts zu aendern
oder zu beachten, insbes. die Leistung ist nicht verringert und die Programme
sind nur geringfuegig groesser geworden.
Es wird deshalb nach einer Bewaehrungsphase nur noch die neuen Programme
geben, nicht etwa eine grosse und eine kleine Programmversion.
Die Dateien liegen auf AC15/PROGN
a99/alcarta dagegen an gewohnter Stelle.
Aufbohrung : Vergroesserung der .cLD-Dateien
--------------------------------------------
Bisher: eine Datenbankdatei, Typ .cLD, konnte bis zu 16.000.000 Byte gross
werden. Bis zu 255 solche Dateien bilden eine Datenbank.
Jetzt: Zwar bleibt es bei maximal 255 Dateien, aber jede davon kann groesser
werden als 16.000.000 Bytes. Man muss allerdings einen neuen Befehl
in die Indexparameter einsetzen.
Warum? Mit 16.000.000 Byte kann man z.B. ca. 16.000 Datensaetze in einer
Datei speichern, wenn die durchschnittliche Laenge ca. 1000 Byte ist,
oder ca. 32.000, wenn ein Satz im Schnitt 500 Byte lang ist, usw.
(Wohlgemerkt: die durchschnittliche Laenge ist massgebend, nicht
die maximale, die ist unwichtig.)
Weil es nur bis zu 255 Dateien in einer Datenbank geben kann,
ist bei ca. 4 Millionen Saetzen Schluss. (Bei einer mittleren Laenge
von 500 Byte je Satz natuerlich erst bei 8 Millionen.)
Weil manche Projekte sich auf diese Gegend zubewegen, musste
etwas geschehen.
Loesung
Mit dem neuen Befehl ii in den Indexparametern kann man die
moegliche Grenze der .cLD-Dateien heraufsetzen, und zwar so:
ii=2 : verdoppeln (also z.B. maximal 32.000.000 Bytes je Datei)
ii=3 : verdreifachen 48.000.000
usw.
Was ist zu tun?
1. Man holt sich die aktuellen Versionen folgender Programme
(vom neuen Verz. PUB/AC15/NPROG)
PRESTO.EXE (bei Bedarf auch ALFA, MENUED, GAPAC, PRESTOI, INVENT,
REF)
APAC.EXE
INDEX.EXE
UPDATE.EXE
SRCH.EXE (das alte tut es auch noch, bis auf Nachladungen)
ACP.EXE (CockPit; Korrektur bei Entlueftungs-Aufruf)
und von PUB/AC15/A99/NEU: a99upd.exe und alcupd.exe
aLF.exe und ORDER.EXE werden folgen, desgl. dann
die diversen Versionen von "avanti".
(Die Aenderungen in der Klassenbibliothek sind erfolgt, daher
muss "avanti" nur noch neu kompiliert werden.)
Die UNIX-Programme presto, index, srch und update etwas spaeter.
Der Z39-Server ist nicht betroffen, da er nicht selber auf die
Datenbank zugreift.
2. In die eigenen Indexparameter den neuen Befehl ii einbauen, z.B.
ii=2.
Faustregel: N Millionen Saetze, ii=N/4
also z.B. 13 Millionen, dann ii=13/4 = 3.25, also besser 4.
(ausgehend von einer mittleren Laenge von 1000 Byte/Satz)
Empfehlung: keine unnoetig grosse Zahl waehlen. Zahlen wie 8, 16
oder 32 haben keinen besonderen Vorteil. Groesser als
124 darf die Zahl ii nicht sein.
3. ALD-Dateien neu aufbauen (Tips dazu siehe unten)
4. Arbeiten wie gewohnt. Nur noch die neuen Programme verwenden.
In PRESTO kann man jetzt mit Alt+F7 den Wert von ii sehen.
Eine parallel geschaltete Datenbank braucht nicht denselben
Wert von ii zu haben!
Tips zum Neuaufbau
------------------
ACHTUNG: Es genuegt nicht, nur die TBL-Datei zu erneuern! Vielmehr muessen
die Datenbankdateien erneuert werden (und die .TBL damit auch).
Anschliessend beginnt dann jeder Satz auf einer Position, die durch ii
teilbar ist.
Im Schnitt werden dann ii/2 Byte je Satz mehr gebraucht, d.h. die
ALD-Dateien werden nur ganz geringfuegig groesser.
A. Entlueften
-------------
Das geht am schnellsten. Der Index als solcher braucht ja nicht erneuert
zu werden; Entlueften erneuert .ALD und .TBL.
Folgende Optionen verwenden, wenn z.B. die einzelne ALD-Datei nicht
groesser als 25 MB werden soll (bislang ist ja 16000000 das Maximum)
index -fr0 -d*ALT -ecat/ALT -ka -n1 -z25000000
Mit -n0 wuerden die Dateinummern erhalten bleiben, mit -n1 wird neu
nummeriert (beginnend mit 1) und jede Datei bis zur gewuenschten
Groesse aufgefuellt.
Fehlt die Option -z, wird als Default ii*16000000 genommen.
B. Voellig neu Indexieren
-------------------------
Wenn man per CockPit (Menue "Organisieren") eine Datenbank neu indexiert,
bleiben die Dateinummern erhalten. Damit ist in diesem Fall nichts gewonnen.
Man will ja i.d.R. mehrere alte .cLD zu einer neuen zusammenfassen.
Dann geht man so vor:
0. Die Datenbank liegt auf ALT (z.B. ALT = F:\ALLEGRO\KATALOG)
1. Neues Verzeichnis NEU anlegen (z.B. NEU = G:\ALLEGRO\KATALOG)
2. Alle Parameter der Datenbank dorthin kopieren, vor allem die
Indexparameter (z.B. xyz.api), darin ii einstellen!
3. Folgenden Befehl auf dem Programmverzeichnis geben:
index -f70 -dALT -exyz/NEU -ka -n1
Man erhaelt die Liste aller .ALD-Dateien zum markieren, man setzt '+'
vor alle zu indexierenden Dateien (es muessen nicht gleich alle auf
einmal sein, man kann in mehreren Abschnitten vorgehen. Dann bei den
nachfolgenden Aktionen -f71 statt -f70 und evtl. -n2 o.a.)
Hat man V14-Ersetzungen oder Schiller-Raeuber-Schluessel, muss man
zweistufig indexieren, das geht so:
index -f70 - at 1 -dALT -exyz/NEU -ka -n1 -m0
index -fi1 - at 2 -d*NEU -exyz/NEU -ka -m0
C. Datenbank aus Grunddateien neu aufbauen
------------------------------------------
Wenn man vorher noch keine Datenbank hatte, sondern erst eine aufbauen will.
Es liegen dann Dateien des Typs .cLG vor, i.d.R. per Import produziert.
Wenn diese Dateien abc*.alg heissen und auf DATEN liegen, startet man so:
Ohne V14:
index -f70 -dDATEN\abc -exyz/NEU -ka -n1
Mit V14:
index -f70 - at 1 -dDATEN\abc -exyz/NEU -ka -n1 -m0
index -fi1 - at 2 -d*NEU -exyz/NEU -ka -m0
Wird eine bestimmte maximale Dateigroesse gewuenscht, kann auch hierbei
die Option -z eingesetzt werden (nur noetig bei -f7)
Soll der Aufbau in mehreren Etappen geschehen, muss beim zweiten und
weiteren Vorgang -f71 statt -f70 gesetzt werden.
Ist dann die Datenbank fertig, dann ist der Wert ii auch in der TBL-Datei
verankert! Selbst wenn die Indexparameter danach versehentlich veraendert
wuerden, funktioniert die Datenbank immer noch, denn die Programme ent-
nehmen dann den Wert ii der TBL-Datei. Wenn man diesen natuerlich selber
veraendert, geht nichts mehr. (Aber wer macht schon sowas!)
Noch ein Hinweis
Wenn man Fuellzeichen definiert hat (Befehl f in der CFG), dann erhaelt beim
Neuaufbau jeder Satz mindestens diese Anzahl Fuellzeichen, dann aber
zusaetzlich noch soviele, dass die Laenge dann durch ii teilbar ist.
Im Schnitt sind das ii/2 Fuellzeichen zusaetzlich.
Das gilt dann auch fuer Neuaufnahmen.
Bernhard Eversberg
Universitaetsbibliothek, Postf. 3329,
D-38023 Braunschweig, Germany
Tel. +49 531 391-5026 , -5011 , FAX -5836
e-mail B.Eversberg at tu-bs.de
Mehr Informationen über die Mailingliste Allegro