LFD

Aus Admin Kuhn GmbH
Zur Navigation springen Zur Suche springen

Der folgende Vorgang wird die Daten für die Testmigration zu Unicode umwandeln.

Konfiguration[Bearbeiten]

Anlegen der Konfigurationsdatei "GENdb.ini".

login: sisis
$ cd /home/sisis/sc
$ cp -i GENdb.txt GENdb.ini
$ vi GENdb.ini

Die Datei "/home/sisis/sc/GENdb.ini" muss alle benötigten Module enthalten. Am besten werden überhaupt gleich alle angelegt.

misc:sonstige :
#zfl::
cir:CIR-:
cat:CAT-:
acq:ACQ-:
imx:IMX-:
opac:OPAC-:
z39:z39.50-:
z39target:z39target-:
ifk:ifk-:
adm:adm-:
ig:ig-:
idm:idm-:
quart:quart-:

Es wird empfohlen, unter Sybase ASE nur das Standardsegment "default" zu verwenden.

Falls zusätzlich benannte Segmente angelegt werden sollen, so müssen diese wie folgt konfiguriert werden. Andernfalls kann der Rest dieses Abschnitts übersprungen werden. In jedem Fall aber muss eine allfällig bereits vorhandene Datei "/home/sisis/TabGenCtrl.syb.ini" gelöscht werden!

Zur Verwendung zusätzlicher benannter Segmente muss zuerst die Steuerdatei kopiert werden. Dann werden die Segmentnamen in die neue Steuerdatei geschrieben - andernfalls wird die Steuerdatei nicht benötigt!

$ cd /home/sisis/sc
$ cp -i TabGenCtrl.syb.txt TabGenCtrl.syb.ini
$ vi TabGenCtrl.syb.ini

Zum Verwenden der Segmentnamen "cirdbs" für die Ausleihe und "acqdbs" für die Erwerbung muss der Inhalt der Steuerdatei wie folgt aussehen.

MODULDEF:CIRDBS:cir:opac:ig
MODULDEF:CATDBS:cat:imx
MODULDEF:MISCDBS:z39:misc:z39target:ifk:zfl:adm:idm
MODULDEF:ACQDBS:acq
MODUL:CIRDBS:cirdbs:cirdbs:::
MODUL:CATDBS:::::
MODUL:MISCDBS:::::
MODUL:ACQDBS:acqdbs:acqdbs:::

Das Zusatzdokument "Installationshinweise SISIS-SunRise V4.1pl1 - Anhang (Einrichten einer betriebsbereiten leeren Datenbank" zur Freigabemitteilung von "SISIS-SunRise SISISBASE V4.1pl1" beschreibt den Vorgang in allen Einzelheiten.

Laden der Daten und Umwandlung zu Unicode[Bearbeiten]

Beim Umwandeln der Daten zu Unicode muss die Variable "AREA" auf den Wert gesetzt werden, der beim Update der Datenbank auf SISIS-SunRise V4.1pl2 verwendet wurde (siehe den obenstehenden Abschnitt "(Alter Rechner) Entladen des SISIS-SunRise V3.7pl2-Datenbankinhalts und Update auf V4.1pl1 für Testmigration").

$ export AREA=/OCLC/backup/MIGRATION-TEST \
         DATABASE=sisis                   \
         DBS=syb
$ cd ${AREA}/area_${DATABASE}

Hinstellen der korrekten Datei "charmappings".

$ cp -i /home/sisis/sc/charmappings .

Setzen der Umgebung und Deaktivieren des Sybase ASE-Transaktionsloggings.

$ . /opt/lib/sisis/etc/syb.rc && LANG=de_DE.UTF-8
$ printf "sp_dboption ${DATABASE}, 'trunc log on chkpt', true\ngo\n" | \
    $SYBASE/OCS-15_0/bin/isql -Usa -P$(cat ${SISISROOT}/etc/syb/syb.pw | \
    grep ^sa: | awk -F: '{ print $2 }' | tr -d '\012') -S${DSQUERY}
Datenbankoption 'trunc log on chkpt' ist für Datenbank 'sisis' aktiviert.
CHECKPOINT wird für Datenbank 'sisis' ausgeführt, damit Option 'trunc log on chkpt' wirksam wird.
DUMP TRANSACTION ist nicht zulässig, wenn 'trunc log on chkpt' ON ist.
Verwenden Sie stattdessen DUMP DATABASE.
(return status = 0)

Ausführen der Umwandlung des Datenbankinhalts. Die Umwandlung der Daten erfolgt über das Skript "Migrate2Unicode.sh" und beinhaltet folgende Schritte:

  • Anlegen der Tabellen
  • Laden der Daten (einschliesslich Umwandlung)
  • Anlegen der Indizes
  • BLOB-Umwandlung
  • Schalter "-f" wandelt zusätzlich auch die Katalog-Formulare im Verzeichnis "$CATSERVERSPOOL/forms" um.
Bibliothek Datenbank Dauer Anmerkungen
Fachhochschule Aachen sisis 140 Minuten
Stadtbücherei Kaufbeuren sisis 60 Minuten Nach Behebung des untenstehenden Fehlers
Stadtbücherei Pulheim sisis 48 Minuten
Fouqué-Bibliothek der Stadt Brandenburg an der Havel sisis 140 Minuten
Stadtbücherei Lampertheim sisis 50 Minuten
Bayerischer Landtag sisis 22 Minuten
Kantonsbibliothek Uri kkb 14 Minuten
Kantonsbibliothek Uri sisis 140 Minuten
Kantonsbibliothek Uri urisik 2 Minuten
Helmholtz-Zentrum Berlin sisis 42 Minuten
Hochschule Ostwestfalen-Lippe sisis 92 Minuten
$ export OUTFILE=nohup.out-$(date +%Y%m%d-%H%M)-${DATABASE}-migrate2unicode; \
   nohup /home/sisis/sc/Migrate2Unicode.sh -f > ${OUTFILE} &
$ tail -f ${OUTFILE}
Im Falle eines Abbruchs wegen nicht erzeugbarer Indizes hilft möglicherweise die Fehlermeldung SRP-17902
Bei der Stadtbücherei Kaufbeuren war in der Tabelle "d612funktion" ein doppelter Schlüsselbegriff vorhanden:
Erstellen des eindeutigen Indexes wegen doppelten Schlüsselbegriffs abgebrochen; Primärschlüssel ist '17, 2001, 0'
  • Der folgende Befehl zeigt alle mehrfach vorkommenden Zeilen, diese müssen sämtlich aus der Ladedatei gelöscht werden!
$ cat d612funktion.load | sort | uniq -d
  • Im Verzeichnis "/OCLC/backup/MIGRATION-TEST/area_sisis" wurden mehrere Dateien gelöscht:
$ rm nohup.out-20121013-5-sisis-migrate2unicode \
    nohup.out-20121013-1347-sisis-migrate2unicode \
    migr2Unde.prot.20121013134714 \
    genSunrTabs.done
  • Im Verzeichnis "/OCLC/backup/MIGRATION-TEST/area_sisis/loadFiles" wurden alle auf ".done" endenden Dateien gelöscht.
$ rm *.done
  • Leer-Datenbank wurde zurückgespielt
$ SybSQL15.0.3
Give Sybase user [sa] 
1> load database sisis from "/OCLC/backup/MIGRATION-TEST/sisis-empty15.0.3.20121003-1432.cdmp"
2> go
...
1> online database sisis
2> go
1> quit
  • Migration wurde nochmals gestartet

Das Skript "Migrate2Unicode.sh" schreibt eine "done"-Datei für alle erfolgreichen Ladevorgänge. Im Fehlerfall kann das Problem also behoben und das Skript neu gestartet werden. Untenstehend die möglichen Optionen des Skripts "Migrate2Unicode.sh":

Option Beschreibung
-c dateiname Bestimmt eine Datei für die Zeichenumsetzung. Die Datei muss im Verzeichnis "$AREA/area_$DATABASE" stehen.
-i Ignorieren von Fehlern bei der Indexerzeugung.
-r Entfernen von "done"-Dateien (für das Neustarten des Skripts). Diese Option darf nur verwendet werden, wenn die Datenbank zurückgesetzt wurde und das Skript "Migrate2Unicode.sh" nochmals ausgeführt werden muss.
-f Automatische Umwandlung der Katalog-Formulare im Verzeichnis "$CATSERVERSPOOL/forms".

Überprüfen der Protokolldatei. Sie sollte keine Fehler enthalten - die letzte Zeile sollte lauten "Migration to Unicode finished".

$ more migr2Unicode.prot.*

Protokoll von Migrate2Unicode.sh

Die Protokolldatei enthält falsche Informationen bezüglich der Erwerbungstabellen "acq_layout", "acq_ehistory" und "acq_binterface", welche fälschlicherweise aussagen, die Tabelle könne nicht geladen werden, da sie schon geladen sei. Diese Meldungen können ignoriert werden!

Update der sequences in Sybase[Bearbeiten]

$ . /opt/lib/sisis/etc/syb.rc && export LANG=de_DE.UTF-8
$ $SC_SQL -Usisis -P$(cat ${SISISROOT}/etc/syb/syb.pw | \
    grep ^sisis: | awk -F: '{ print $2 }' | tr -d '\012') \
    -S${DSQUERY} -D${DATABASE} -i /home/sisis/sc/SybUpdSeq.sql

Sicherung der Datenbank[Bearbeiten]

Sichern der Datenbank "sisis" mit dem umgewandelten Inhalt. Dazu kann das Skript "SYBASEbackup.sh" mit dem Argument "-V4.1pl2-migriert" aufgerufen werden.

$ SYBASEbackup.sh -V4.1pl2-migriert

Which Sybase ASE version to use
 1  Sybase ASE 12.5.4
 2  Sybase ASE 15.0.3

Enter your selection [1-2] 2
Enter database name [sisis] 
Enter name extension if you want [-V4.1pl2-migriert]
Enter backup directory [/OCLC/backup/MIGRATION-TEST]
Bibliothek Datenbank Bereich Komprimiert Dauer
Hochschule Ostwestfalen-Lippe sisis 8.0 GB 1.0 GB 6 Minuten

Normalisierung der Namenssuche in der Ausleihe[Bearbeiten]

Bibliothek Dauer
Fachhochschule Aachen 3 Minuten
Helmholtz-Zentrum Berlin 1 Minute
Hochschule Ostwestfalen-Lippe 1 Minute
$ export OUTFILE=nohup.out-$(date +%Y%m%d-%H%M)-${DATABASE}-normi; \
   nohup /opt/bin/startnormi > ${OUTFILE} &
$ tail -f ${OUTFILE}

Neuanlegen der Anzeigetabellen[Bearbeiten]

Migrieren der Datenbanktabellen "*_anzeige" zur neuen Struktur.

Bibliothek Datenbank Dauer
Stadtbücherei Pulheim sisis 4 Minuten
Kantonsbibliothek Uri sisis 4 Minuten
Helmholtz-Zentrum Berlin sisis 1 Minute
Hochschule Ostwestfalen-Lippe sisis 3 Minuten
$ export OUTFILE=nohup.out-$(date +%Y%m%d-%H%M)-${DATABASE}-reBuildAnz; \
   nohup /home/sisis/sc/reBuildAnz.sh > ${OUTFILE} &
...
Das Laden der Anzeige-Tabelle für Normdaten koe_anzeige ist beendet
...
Das Laden der Anzeige-Tabelle für Normdaten sys_anzeige ist beendet
...
Das Laden der Anzeige-Tabelle für Normdaten per_anzeige ist beendet
...
Das Laden der Anzeige-Tabelle für Normdaten swd_anzeige ist beendet
$ tail -f ${OUTFILE}

Warten, bis der Prozess "reBuildAnz.sh" (alle ANZINDMASS-Prozesse) sich beendet und anschliessendes Überprüfen des Inhalts der Datei "nohup.out" sowie der Protokolldateien "startanzindmass.prot.*".

$ ps -ef | grep reBuildAnz
$ more startanzindmass.prot.*

Neuaufbau der Sortiertabelle[Bearbeiten]

Neuaufbau der Tabelle "sort_tab". Für einen schnelleren Neuaufbau können mehrere Prozesse parallel gestartet werden - im Beispiel sind das vier Prozesse ("- split 4").

Bibliothek Dauer
Fachhochschule Aachen 12 Minuten
Stadtbücherei Kaufbeuren 16 Minuten
Stadtbücherei Pulheim 17 Minuten
Fouqué-Bibliothek der Stadt Brandenburg an der Havel 55 Minuten
Stadtbücherei Lampertheim 7 Minuten
Kantonsbibliothek Uri 20 Minuten
Helmholtz-Zentrum Berlin 18 Minuten
Hochschule Ostwestfalen-Lippe 28 Minuten
$ export OUTFILE=nohup.out-$(date +%Y%m%d-%H%M)-${DATABASE}-sortindmass; \
   nohup /opt/bin/startsortindmass -split 4 > ${OUTFILE} &
$ tail -f ${OUTFILE}
...
         Das Laden der Sortiertabelle ist beendet

 Bitte beachten Sie die Datei startsortindmass.prot.8514
Beim Helmholtz-Zentrum Berlin tauchte erstmals folgender Fehler auf:
16.04.2013 01:38:38:
         Sortier-Auftragstabelle angelegt und leer?

16.04.2013 01:38:38:
         Abbruch: <Sortier-Auftragstabelle> ist nicht leer, sondern hat 7177 Einträge!

Die Lösung ist in SRP-18537 zu finden:

Bei der "<Sortier-Auftragstabelle>" handelt es sich nicht um die Tabelle "sort_tab", sondern um die Tabelle "sort_auftrag". Beim Neuaufbau muss wie folgt vorgegangen werden.

$ SybSQL15.0.3
Give Sybase user [sa] sisis
Give name of database [sisis] 
1> truncate table sort_auftrag
2> go
1> truncate table sort_tab
2> go

Danach den obenstehenden Befehl wiederholen.

Neuaufbau der Titeldaten in strukturierter Form[Bearbeiten]

Falls die Tabelle "titel_dupdaten" nicht verwendet wird, kann dieser Abschnitt übersprungen werden.

Anzeige der Anzahl Titelsätze in der Tabelle "titel_dupdaten".

$ printf "select count(*) from titel_dupdaten\ngo\n" | \
    $SC_SQL -Usisis -P$(cat ${SISISROOT}/etc/syb/syb.pw | \
    grep ^sisis: | awk -F: '{ print $2 }' | tr -d '\012') \
    -S${DSQUERY} -D${DATABASE}

Löschen des Inhalts der vorhandenen Tabelle "titel_dupdaten".

$ printf "truncate table titel_dupdaten\ngo\n" | \
    $SC_SQL -Usisis -P$(cat ${SISISROOT}/etc/syb/syb.pw | \
    grep ^sisis: | awk -F: '{ print $2 }' | tr -d '\012') \
    -S${DSQUERY} -D${DATABASE}

Starten von DUPINDMASS und überprüfen der Protokolldatei.

Bibliothek Datensätze Dauer
Fachhochschule Aachen 160'000 75 Minuten
BTU Cottbus 480'000 120 Minuten
Stadtbibliothek Chemnitz 380'000 150 Minuten
Stadtbücherei Kaufbeuren 88'000 45 Minuten
Stadtbücherei Pulheim 89'000 25 Minuten
Fouqué-Bibliothek der Stadt Brandenburg an der Havel 124'000 75 Minuten
Stadtbücherei Lampertheim 36'000 20 Minuten
Bayerischer Landtag 40'000 7 Minuten
Kantonsbibliothek Uri 135'000 45 Minuten
Helmholtz-Zentrum Berlin 74'000 45 Minuten
Hochschule Ostwestfalen-Lippe 162'000 68 Minuten
$ export OUTFILE=nohup.out-$(date +%Y%m%d-%H%M)-${DATABASE}-dupindmass; \
    nohup /opt/bin/startdupindmass > ${OUTFILE} &
$ tail -f ${OUTFILE}
$ more startdupindmass.prot.*

Sicherung der Datenbank[Bearbeiten]

Sichern der Datenbank "sisis" mit dem neuaufgebauten Tabellen Inhalt. Dazu kann das Skript "SYBASEbackup.sh" mit dem Argument "-V4.1pl2-neuaufgebaut" aufgerufen werden.

$ SYBASEbackup.sh -V4.1pl2-neuaufgebaut

Which Sybase ASE version to use
 1  Sybase ASE 12.5.4
 2  Sybase ASE 15.0.3

Enter your selection [1-2] 2
Enter database name [sisis] 
Enter name extension if you want [-V4.1pl2-neuaufgebaut]
Enter backup directory [/OCLC/backup/MIGRATION-TEST]