LFD: Unterschied zwischen den Versionen

Aus Admin Kuhn GmbH
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Die TAR-Datei "yaust.tar" enthält drei Dateien ("[[yaust2.sh]]", "dbtUpTo2.pl", "sisis.unload"), welche zum Entladen des Inhalts einer Sybase ASE 12.5.4-Datenbank auf dem alten Rechner und zum Update auf SISIS-Sunrise V4.1pl2 verwendet werden können. Die dabei entstehenden Dateien werden später in die neue Sybase ASE 15.0.3-Datenbank geladen.
Der folgende Vorgang wird die Daten für die Testmigration zu Unicode umwandeln.


Crontab-Einträge aller Benutzer deaktivieren.
=== Konfiguration ===


SISIS-Sunrise-Server stoppen.
Anlegen der Konfigurationsdatei "GENdb.ini".


  # <b>/etc/init.d/tomcat stop</b>
  login: <b>sisis</b>
  # <b>/etc/init.d/SunRiseServer stop</b>
$ <b>cd /home/sisis/sc</b>
$ <b>cp -i GENdb.txt GENdb.ini</b>
$ <b>vi GENdb.ini</b>
 
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.
 
{{Info|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!
 
$ <b>cd /home/sisis/sc</b>
$ <b>cp -i TabGenCtrl.syb.txt TabGenCtrl.syb.ini</b>
$ <b>vi TabGenCtrl.syb.ini</b>
 
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 ==


Allfällig noch laufende SISIS-Sunrise-Prozesse töten.
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").


  # <b>ps -ef</b>
  $ <b>export AREA=/OCLC/backup/MIGRATION-TEST \
          DATABASE=sisis                  \
          DBS=syb</b>
$ <b>cd ${AREA}/area_${DATABASE}</b>


Sybase-Server muss laufen!
Hinstellen der korrekten Datei "charmappings".


  # <b>/etc/init.d/sybase start</b>
  $ <b>cp -i /home/sisis/sc/charmappings .</b>
# <b>tail -f /var/spool/sybase/sisisSYB.errorlog</b>


Sicherung der Datenbanken (mit dbtool bzw. dump).
Setzen der Umgebung und Deaktivieren des Sybase ASE-Transaktionsloggings.


Die Datei "yaust.tar" muss auf den alten Rechner ins Verzeichnis "/home/sisis/sc" kopiert werden.
$ <b>. /opt/lib/sisis/etc/syb.rc && LANG=de_DE.UTF-8</b>
$ <b>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}</b>
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)


$ <b>md5sum /home/sisis/sc/yaust.tar</b>
Ausführen der Umwandlung des Datenbankinhalts. Die Umwandlung der Daten erfolgt über das Skript "Migrate2Unicode.sh" und beinhaltet folgende Schritte:
af1d8a3d60c3bac467234d438c4c146c  yaust.tar
* Anlegen der Tabellen
* Laden der Daten (einschliesslich Umwandlung)
* Anlegen der Indizes
* BLOB-Umwandlung


Sicherung der vorhandenen Dateien "yaust2.sh", "dbtUpTo2.pl" und "sisis.unload".
* Schalter "-f" wandelt zusätzlich auch die Katalog-Formulare im Verzeichnis "$CATSERVERSPOOL/forms" um.


  $ <b>cd /home/sisis/sc</b>
{| class=wiki
  $ <b>for i in yaust2.sh dbtUpTo2.pl sisis.unload; do mv $i $i-ORIGV37pl2; done</b>
! 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
|}
 
  $ <b>export OUTFILE=nohup.out-$(date +%Y%m%d-%H%M)-${DATABASE}-migrate2unicode; \
    nohup /home/sisis/sc/Migrate2Unicode.sh -f > ${OUTFILE} &</b>
  $ <b>tail -f ${OUTFILE}</b>
 
{{Alert|Im Falle eines Abbruchs wegen nicht erzeugbarer Indizes hilft möglicherweise die Fehlermeldung <b>[https://issues.oclcpica.org/browse/SRP-17902 SRP-17902]</b>}}
 
{{Alert|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!
$ <b>cat d612funktion.load <nowiki>|</nowiki> sort <nowiki>|</nowiki> uniq -d</b>
* Im Verzeichnis "/OCLC/backup/MIGRATION-TEST/area_sisis" wurden mehrere Dateien gelöscht:
$ <b>rm nohup.out-20121013-5-sisis-migrate2unicode \
    nohup.out-20121013-1347-sisis-migrate2unicode \
    migr2Unde.prot.20121013134714 \
    genSunrTabs.done</b>
* Im Verzeichnis "/OCLC/backup/MIGRATION-TEST/area_sisis/loadFiles" wurden alle auf ".done" endenden Dateien gelöscht.
$ <b>rm *.done</b>
* Leer-Datenbank wurde zurückgespielt
$ <b>SybSQL15.0.3</b>
Give Sybase user [sa]
1> <b>load database sisis from "/OCLC/backup/MIGRATION-TEST/sisis-empty15.0.3.20121003-1432.cdmp"</b>
2> <b>go</b>
...
1> <b>online database sisis</b>
2> <b>go</b>
1> <b>quit</b>
* 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":
 
{| class=wiki
! Option !! Beschreibung
|-
| <tt>-c <i>dateiname</i></tt> || Bestimmt eine Datei für die Zeichenumsetzung. Die Datei muss im Verzeichnis "$AREA/area_$DATABASE" stehen.
|-
| <tt>-i</tt> || Ignorieren von Fehlern bei der Indexerzeugung.
|-
| <tt>-r</tt> || 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.
|-
| <tt>-f</tt> || 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".


Kopieren der Datei "yaust.tar" ins Verzeichnis "/home/sisis/sc" und Entpacken der Datei.
$ <b>more migr2Unicode.prot.*</b>


$ <b>cd /home/sisis/sc</b>
[[/Protokoll von Migrate2Unicode.sh|Protokoll von Migrate2Unicode.sh]]
$ <b>tar xvf yaust.tar</b>
$ <b>chmod 775 yaust2.sh dbtUpTo2.pl sisis.unload</b>


Setzen der Umgebung für das Skript "yaust2.sh". Die Variable "INSTVERSION" enthält die SISIS-Sunrise-Zielversion (hier ist es "V4.1pl2").
{{Info|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. <b>Diese Meldungen können ignoriert werden!</b>}}


login: <b>sisis</b>
== Update der sequences in Sybase ==
$ <b>export AREA=/home/sisis/sc \
          DATABASE=sisis \
          INSTVERSION=V4.1pl2</b>


Überprüfen, ob es bereits eine Datei "sisis.done" und ein Verzeichnis "area_sisis" gibt - wenn ja, so müssen diese verschoben oder gelöscht werden.
$ <b>. /opt/lib/sisis/etc/syb.rc && export LANG=de_DE.UTF-8</b>
$ <b>$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</b>


$ <b>ls -al sisis.done ${AREA}/area_${DATABASE}</b>
== Sicherung der Datenbank ==


Ausführen des Skripts "[[yaust2.sh]]" zum Sicherstellen, dass die richtige Datenbank upgedatet würde und dass die korrekte Software verwendet wird - <b>das Skript muss an dieser Stelle aber abgebrochen werden!</b>
Sichern der Datenbank "sisis" mit dem umgewandelten Inhalt. Dazu kann das Skript "SYBASEbackup.sh" mit dem Argument "-V4.1pl2-migriert" aufgerufen werden.
* Schalter "-k" bewahrt die Entladedateien
* Schalter "-a" entlädt alle in der Datei "sisis.unload" enthaltenen Tabellen (u. a. auch diejenigen für den IDM Connector) und erzeugt Ladedateien


  $ <b>./yaust2.sh -k -a</b>
  $ <b>SYBASEbackup.sh -V4.1pl2-migriert</b>
   
   
  Update-Script for SISIS-SunRise:
  Which Sybase ASE version to use
  1  Sybase ASE 12.5.4
  2  Sybase ASE 15.0.3
   
   
  ... $Id: yaust2.sh 285871 2012-05-03 08:26:31Z bajdalaj $
  Enter your selection [1-2] <b>2</b>
   
  Enter database name [sisis]
  ... started on "Linux sedvs011 2.6.5-7.244-default"
  Enter name extension if you want [-V4.1pl2-migriert]
  ... started at "Sa Okt 13 11:42:52 CEST 2012"
  Enter backup directory [/OCLC/backup/MIGRATION-TEST]
 
... pre-selected "Sybase" database "sisis"
{| class=wiki
... pre-selected database server "sisisSYB"
! Bibliothek !! Datenbank !! Bereich !! Komprimiert !! Dauer
... pre-selected area for unload-files "/home/sisis/sc/area_sisis/loadFiles"
|-
... old version according dbcall interface: "V3.7"
| [[Hochschule Ostwestfalen-Lippe]] || sisis || 8.0 GB || 1.0 GB || 6 Minuten
... installed "sisisbase" version: "V4.1pl2"
|}
... current database version:      "V3.7pl2"
 
... unload and convert database "sisis" from "V3.7" to "V4.1pl2"?
== Normalisierung der Namenssuche in der Ausleihe ==
 
    Is this what you really want to do?
{| class=wiki
! Bibliothek !! Dauer
  ... Let's start and hit ENTER to CONTINUE or interrupt
|-
  <b>Interrupt with CTRL+C</b>
| [[Fachhochschule Aachen]] || 3 Minuten
|-
| [[Helmholtz-Zentrum Berlin]] || 1 Minute
|-
| [[Hochschule Ostwestfalen-Lippe]] || 1 Minute
|}
 
  $ <b>export OUTFILE=nohup.out-$(date +%Y%m%d-%H%M)-${DATABASE}-normi; \
    nohup /opt/bin/startnormi > ${OUTFILE} &</b>
  $ <b>tail -f ${OUTFILE}</b>


{{Info|Das Skript "yaust2.sh" darf zur Vermeidung von Datenbankinkonsistenzen nur bei stillstehendem Bibliotheksbetrieb ausgeführt werden! Es müssen also ausser dem Sybase-Server alle mit SISIS-Sunrise zusammenhängenden Server gestoppt werden.}}
== Neuanlegen der Anzeigetabellen ==


Zum Vermeiden von Verbindungsabbrüchen muss der Befehl "nohup" verwendet werden.
Migrieren der Datenbanktabellen "*_anzeige" zur neuen Struktur.


{| class=wiki
{| class=wiki
! Bibliothek !! Datenbank !! Medien !! Titelsätze !! Dauer
! Bibliothek !! Datenbank !! Dauer
|-
|-
| [[Stadtbücherei Kaufbeuren]] || sisis || 95'000 || || 8 Minuten
| [[Stadtbücherei Pulheim]] || sisis || 4 Minuten
|-
|-
| [[Stadtbücherei Pulheim]] || sisis || 86'000 || || 8 Minuten
| [[Kantonsbibliothek Uri]] || sisis || 4 Minuten
|-
|-
| [[Stadtbücherei Lampertheim]] || sisis || 35'000 || ... || 4 Minuten
| [[Helmholtz-Zentrum Berlin]] || sisis || 1 Minute
|-
|-
| [[Bayerischer Landtag]] || sisis || 19'000 || ... || 4 Minuten
| [[Hochschule Ostwestfalen-Lippe]] || sisis || 3 Minuten
|}
 
$ <b>export OUTFILE=nohup.out-$(date +%Y%m%d-%H%M)-${DATABASE}-reBuildAnz; \
    nohup /home/sisis/sc/reBuildAnz.sh > ${OUTFILE} &</b>
...
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
$ <b>tail -f ${OUTFILE}</b>
 
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.*".
 
$ <b>ps -ef | grep reBuildAnz</b>
$ <b>more startanzindmass.prot.*</b>
 
== Neuaufbau der Sortiertabelle ==
 
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").
 
{| class=wiki
! Bibliothek !! Dauer
|-
| [[Fachhochschule Aachen]] || 12 Minuten
|-
| [[Stadtbücherei Kaufbeuren]] || 16 Minuten
|-
| [[Stadtbücherei Pulheim]] || 17 Minuten
|-
|-
| [[Kantonsbibliothek Uri]] || kkb || 13'000 || 20'000 || 1 Minute
| [[Fouqué-Bibliothek der Stadt Brandenburg an der Havel]] || 55 Minuten
|-
|-
| [[Kantonsbibliothek Uri]] || sisis || 92'000 || 179'000 || 25 Minuten
| [[Stadtbücherei Lampertheim]] || 7 Minuten
|-
|-
| [[Kantonsbibliothek Uri]] || urisik || 0 || 11'000 || 1 Minute
| [[Kantonsbibliothek Uri]] || 20 Minuten
|-
|-
| [[Helmholtz-Zentrum Berlin]] || sisis || 29'000 || 81'000 || 6 Minuten
| [[Helmholtz-Zentrum Berlin]] || 18 Minuten
|-
|-
| [[Hochschule Ostwestfalen-Lippe]] || sisis || 168'000 || 189'000 || 8 Minuten
| [[Hochschule Ostwestfalen-Lippe]] || 28 Minuten
|}
|}


  $ <b>export OUTFILE=${AREA}/nohup.out-$(date +%Y%m%d-%H%M)-${DATABASE}; \
  $ <b>export OUTFILE=nohup.out-$(date +%Y%m%d-%H%M)-${DATABASE}-sortindmass; \
    nohup ./yaust2.sh -k -a -n > ${OUTFILE} &</b>
    nohup /opt/bin/startsortindmass -split 4 > ${OUTFILE} &</b>
  $ <b>tail -f ${OUTFILE}</b>
  $ <b>tail -f ${OUTFILE}</b>
...
          Das Laden der Sortiertabelle ist beendet
  Bitte beachten Sie die Datei startsortindmass.prot.8514
{{Alert|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!


Nach dem Ausführen des Skripts "yaust2.sh" kann das erzeugte Verzeichnis "area_sisis" gepackt und komprimiert werden, um es einfacher auf den neuen Rechner zu schaffen. Auf dem alten Rechner kann es gelöscht werden.
Die Lösung ist in [https://issues.oclcpica.org/browse/SRP-18537 SRP-18537] zu finden:


$ <b>tar czf area_sisis.tgz area_sisis</b>
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.
$ <b>rm -rf area_sisis</b>


{{Alert|Bei der [[Hochschule Ostwestfalen-Lippe]] erschien erstmals folgende Warnung:
$ <b>SybSQL15.0.3</b>
Give Sybase user [sa] <b>sisis</b>
Give name of database [sisis]  
1> <b>truncate table sort_auftrag</b>
2> <b>go</b>
1> <b>truncate table sort_tab</b>
2> <b>go</b>


Unload table "sik_fstab" - Start at Di Apr 30 10:19:41 CEST 2013connected to Sybase:sisis
Danach den obenstehenden Befehl wiederholen.
begin operation: UNLOAD (sik_fstab)
2131 rows unloaded...
command executed
disconnected
Compress saved file "/home/sisis/sc/area_sisis/loadFiles/sik_fstabV3.7pl2c"...
Update loadfile for "sik_fstab"...
WARNING: GND fields already exist in table "sik_fstab"!
No GND related lines added.
}}
}}


Die zuvor gesicherten originalen yaust-Dateien müssen nun wiederhergestellt werden.
== Neuaufbau der Titeldaten in strukturierter Form ==


$ <b>cd /home/sisis/sc</b>
{{Info|Falls die Tabelle "titel_dupdaten" nicht verwendet wird, kann dieser Abschnitt übersprungen werden.}}
$ <b>for i in yaust2.sh dbtUpTo2.pl sisis.unload; do mv $i-ORIGV37pl2 $i; done</b>


<font color=red>Entladen der Tabelle "d07statistik" (falls vorhanden).</font>
Anzeige der Anzahl Titelsätze in der Tabelle "titel_dupdaten".


Sicherung der Datenbankbereiche (wenn nötig bzw. möglich).
$ <b>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}</b>


Sybase-Server stoppen.
Löschen des Inhalts der vorhandenen Tabelle "titel_dupdaten".


  # <b>/etc/init.d/sybase stop</b>
  $ <b>printf "truncate table titel_dupdaten\ngo\n" | \
# <b>tail -f /var/spool/sybase/sisisSYB.errorlog</b>
    $SC_SQL -Usisis -P$(cat ${SISISROOT}/etc/syb/syb.pw | \
    grep ^sisis: | awk -F: '{ print $2 }' | tr -d '\012') \
    -S${DSQUERY} -D${DATABASE}</b>


SISIS-Sunrise-Server wieder starten.
Starten von DUPINDMASS und überprüfen der Protokolldatei.


  # <b>/etc/init.d/SunRiseServer start</b>
{| class=wiki
  # <b>/etc/init.d/tomcat start</b>
! 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
|}
 
  $ <b>export OUTFILE=nohup.out-$(date +%Y%m%d-%H%M)-${DATABASE}-dupindmass; \
    nohup /opt/bin/startdupindmass > ${OUTFILE} &</b>
  $ <b>tail -f ${OUTFILE}</b>
$ <b>more startdupindmass.prot.*</b>
 
== Sicherung der Datenbank ==
 
Sichern der Datenbank "sisis" mit dem neuaufgebauten Tabellen Inhalt. Dazu kann das Skript "SYBASEbackup.sh" mit dem Argument "-V4.1pl2-neuaufgebaut" aufgerufen werden.


Crontab-Einträge aller Benutzer wieder aktivieren.
$ <b>SYBASEbackup.sh -V4.1pl2-neuaufgebaut</b>
Which Sybase ASE version to use
  1  Sybase ASE 12.5.4
  2  Sybase ASE 15.0.3
Enter your selection [1-2] <b>2</b>
Enter database name [sisis]
Enter name extension if you want [-V4.1pl2-neuaufgebaut]
Enter backup directory [/OCLC/backup/MIGRATION-TEST]

Version vom 28. August 2013, 19:27 Uhr

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]