LFD: Unterschied zwischen den Versionen

Aus Admin Kuhn GmbH
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
{{Info|Vor dem Anlegen der neuen Datenbank für SISIS-Sunrise muss sichergestellt werden, dass die aktuellen SISIS-Sunrise V4.1pl2-Pakete installiert wurden!}}
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.


Zum Anlegen einer leeren Sybase ASE 15.0.3-Datenbank "sisis" werden standardmässig die folgenden SQL-Dateien benötigt:
Crontab-Einträge aller Benutzer deaktivieren.


* "DiskInit.sql" legt die Datenbankbereiche für Sybase ASE an.
SISIS-Sunrise-Server stoppen.
* "CreatDb.sql" legt die Datenbank an, übergibt die Datenbankbereiche an die Datenbank, fügt Segmente hinzu und setzt einige Parameter.


Diese Dateien müssen an die lokale Umgebung und die lokale Datenbankstruktur angepasst werden - die Werte für device_fragments sind dabei in "pages" anzugeben ( Wert = 1024 * device_fragments [MB] / 2 ).
# <b>/etc/init.d/tomcat stop</b>
# <b>/etc/init.d/SunRiseServer stop</b>


{{Info|Diese Dateien dürfen nicht unverändert ausgeführt werden - dies könnte ungewollt Dateien im Dateisystem überschreiben! Es muss aussserdem sichergestekllt werden, dass die physikalischen Dateinamen in der Datei "DiskInit.sql" der Verzeichnisstruktur des lokalen Rechners entsprechen!}}
Allfällig noch laufende SISIS-Sunrise-Prozesse töten.


Im Fall der [[Stadtbücherei Kaufbeuren]] musste nur eine Datenbank namens "sisis" angelegt werden. Ihr Inhalt unter Sybase ASE 12.5.4 war 1.6 GB - diese Grösse multipliziert mit 2 ergab für Sybase ASE 15.0.3 also 3.2 GB und einschliesslich Reserven für Datenwachstum eine anzulegende Grösse von 4 GB für den Gebrauch mit SISIS-Sunrise V4.1pl2.
# <b>ps -ef</b>


{{Alert|Das Erstellen der Dateien "Disk.Init.sql<i>-xxx</i>" und "CreatDb.sql<i>-xxx</i>" könnte womöglich verskriptet werden, um in der Vergangenheit immer wieder aufgetretene Fehlkonfigurationen zu vermeiden...}}
Sybase-Server muss laufen!


{{Alert|Bei Einsatz von Touchpoint muss offenbar zusätzlich eine eigene Datenbank angelegt werden.}}
# <b>/etc/init.d/sybase start</b>
# <b>tail -f /var/spool/sybase/sisisSYB.errorlog</b>


Konfiguration der Datei zum Anlegen der Plattenbereiche.
Sicherung der Datenbanken (mit dbtool bzw. dump).


Login: <b>sisis</b>
Die Datei "yaust.tar" muss auf den alten Rechner ins Verzeichnis "/home/sisis/sc" kopiert werden.
$ <b>cd /home/sisis/sc</b>
$ <b>KUERZEL=Berlin-HUB</b>
$ <b>cp DiskInit.sql.orig DiskInit.sql-15.0.3-${KUERZEL}</b>
$ <b>vi DiskInit.sql-15.0.3-${KUERZEL}</b>


Zum Beispiel kann die angepasste Datei wie folgt aussehen.
$ <b>md5sum /home/sisis/sc/yaust.tar</b>
<pre>
af1d8a3d60c3bac467234d438c4c146c  yaust.tar
disk init
name="sisis_log1",
physname="/SybaseLog/15.0.3/sisis_log1.log",
size="1G",
dsync=false
go


disk init
Sicherung der vorhandenen Dateien "yaust2.sh", "dbtUpTo2.pl" und "sisis.unload".
name="sisis_data1",
physname="/SybaseDatabase/15.0.3/sisis_data1.dat",
size="4G",
dsync=false
go
</pre>


Konfiguration der Datei zum Anlegen der Datenbank.
$ <b>cd /home/sisis/sc</b>
$ <b>for i in yaust2.sh dbtUpTo2.pl sisis.unload; do mv $i $i-ORIGV37pl2; done</b>


$ <b>cp CreatDb.sql.orig CreatDb.sql-15.0.3-${KUERZEL}</b>
Kopieren der Datei "yaust.tar" ins Verzeichnis "/home/sisis/sc" und Entpacken der Datei.
$ <b>vi CreatDb.sql-15.0.3-${KUERZEL}</b>


Zum Beispiel kann die angepasste Datei zum Anlegen der Datenbank "sisis" (passend zu den Plattenbereichen im obenstehenden Beispiel) wie folgt aussehen.
$ <b>cd /home/sisis/sc</b>
$ <b>tar xvf yaust.tar</b>
$ <b>chmod 775 yaust2.sh dbtUpTo2.pl sisis.unload</b>


<pre>
Setzen der Umgebung für das Skript "yaust2.sh". Die Variable "INSTVERSION" enthält die SISIS-Sunrise-Zielversion (hier ist es "V4.1pl2").
sp_configure "lock scheme", 0, datarows
go


create database sisis
login: <b>sisis</b>
on sisis_data1=4096
$ <b>export AREA=/home/sisis/sc \
log on sisis_log1=1024
          DATABASE=sisis \
go
          INSTVERSION=V4.1pl2</b>


sp_dboption sisis,"select into/bulkcopy","true"
Ü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.
go


sp_dboption sisis,"auto identity","true"
$ <b>ls -al sisis.done ${AREA}/area_${DATABASE}</b>
go


sp_dboption sisis,"trunc. log on chkpt.", true
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>
go
* 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


use sisis
$ <b>./yaust2.sh -k -a</b>
go
Update-Script for SISIS-SunRise:
... $Id: yaust2.sh 285871 2012-05-03 08:26:31Z bajdalaj $
... started on "Linux sedvs011 2.6.5-7.244-default"
... started at "Sa Okt 13 11:42:52 CEST 2012"
... pre-selected "Sybase" database "sisis"
... pre-selected database server "sisisSYB"
... pre-selected area for unload-files "/home/sisis/sc/area_sisis/loadFiles"
... old version according dbcall interface: "V3.7"
... installed "sisisbase" version: "V4.1pl2"
... current database version:      "V3.7pl2"
... unload and convert database "sisis" from "V3.7" to "V4.1pl2"?
    Is this what you really want to do?
... Let's start and hit ENTER to CONTINUE or interrupt
<b>Interrupt with CTRL+C</b>


checkpoint
{{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.}}
go


sp_adduser "sisis"
Zum Vermeiden von Verbindungsabbrüchen muss der Befehl "nohup" verwendet werden.
go


grant ALL to sisis
{| class=wiki
go
! Bibliothek !! Datenbank !! Medien !! Titelsätze !! Dauer
</pre>
|-
| [[Stadtbücherei Kaufbeuren]] || sisis || 95'000 || || 8 Minuten
|-
| [[Stadtbücherei Pulheim]] || sisis || 86'000 || || 8 Minuten
|-
| [[Stadtbücherei Lampertheim]] || sisis || 35'000 || ... || 4 Minuten
|-
| [[Bayerischer Landtag]] || sisis || 19'000 || ... || 4 Minuten
|-
| [[Kantonsbibliothek Uri]] || kkb || 13'000 || 20'000 || 1 Minute
|-
| [[Kantonsbibliothek Uri]] || sisis || 92'000 || 179'000 || 25 Minuten
|-
| [[Kantonsbibliothek Uri]] || urisik || 0 || 11'000 || 1 Minute
|-
| [[Helmholtz-Zentrum Berlin]] || sisis || 29'000 || 81'000 || 6 Minuten
|-
| [[Hochschule Ostwestfalen-Lippe]] || sisis || 168'000 || 189'000 || 8 Minuten
|}


Setzen der Umgebung und Ausführen der beiden Dateien als Benutzer "sisis".
$ <b>export OUTFILE=${AREA}/nohup.out-$(date +%Y%m%d-%H%M)-${DATABASE}; \
    nohup ./yaust2.sh -k -a -n > ${OUTFILE} &</b>
$ <b>tail -f ${OUTFILE}</b>


$ <b>. /opt/lib/sisis/etc/syb.rc && export LANG=de_DE.UTF-8</b>
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.


Das Anlegen der Plattenbereiche dauert je nach Grösse einige oder viele Minuten, während denen keine Ausgabe auf den Bildschirm geschrieben wird. Falls die verwendete Verbindung unzuverlässig ist, sollte der Befehl "nohup" verwendet werden.
$ <b>tar czf area_sisis.tgz area_sisis</b>
$ <b>rm -rf area_sisis</b>


$ <b>${SC_SQL} -Usa -P$(cat ${SISISROOT}/etc/syb/syb.pw | \
{{Alert|Bei der [[Hochschule Ostwestfalen-Lippe]] erschien erstmals folgende Warnung:
    grep ^sa: | awk -F: '{ print $2 }' | tr -d '\012') -S${DSQUERY} \
    -i /home/sisis/sc/DiskInit.sql-15.0.3-${KUERZEL}</b>


Nun folgt das Anlegen der Datenbank, des Sybase-Benutzers "sisis" und die Zuteilung der Berechtigungen.
Unload table "sik_fstab" - Start at Di Apr 30 10:19:41 CEST 2013connected to Sybase:sisis
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.


  $ <b>${SC_SQL} -Usa -P$(cat ${SISISROOT}/etc/syb/syb.pw | \
  $ <b>cd /home/sisis/sc</b>
    grep ^sa: | awk -F: '{ print $2 }' | tr -d '\012') -S${DSQUERY} \
  $ <b>for i in yaust2.sh dbtUpTo2.pl sisis.unload; do mv $i-ORIGV37pl2 $i; done</b>
    -i /home/sisis/sc/CreatDb.sql-15.0.3-${KUERZEL}</b>
  Parameter Name                Default              Memory Used
        Config Value        Run Value            Unit
        Type
  ------------------------------ -------------------- -----------
        -------------------- -------------------- --------------------
----------
  lock scheme                      allpages                    0
            datarows            datarows        name
        dynamic
(1 row affected)
Konfigurationsoption geändert. ASE muss nicht neu gestartet werden, da diese
Option dynamisch ist.
Wenn der Wert von 'lock scheme' auf 'datarows' geändert wird, erhöht sich der
von ASE verwendete Speicher um 6 KByte.
(return status = 0)
CREATE DATABASE: Es werden 1048576 logische Seiten (4096.0 MByte) auf
Plattenspeicher 'sisis_data1' zugewiesen.
CREATE DATABASE: Es werden 262144 logische Seiten (1024.0 MByte) auf
Plattenspeicher 'sisis_log1' zugewiesen.
512 Zuordnungseinheit(en) von 5120 Einheiten wurden verarbeitet (Zuordnungsseite
1113088). 10% beendet.
  ...
5120 Zuordnungseinheit(en) von 5120 Einheiten wurden verarbeitet
(Zuordnungsseite 1048320). 100% beendet.
Datenbank 'sisis' ist jetzt online.
Datenbankoption 'select into/bulkcopy/pllsort' ist für Datenbank 'sisis' aktiviert.
CHECKPOINT wird für Datenbank 'sisis' ausgeführt, damit Option 'select into/bulkcopy/pllsort' wirksam wird.
(return status = 0)
Datenbankoption 'auto identity' ist für Datenbank 'sisis' aktiviert.
CHECKPOINT wird für Datenbank 'sisis' ausgeführt, damit Option 'auto identity' wirksam wird.
(return status = 0)
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)
Neuer Benutzer hinzugefügt.
(return status = 0)


Überprüfen der Plattenallokation von Sybase ASE 15.0.3.
<font color=red>Entladen der Tabelle "d07statistik" (falls vorhanden).</font>


$ <b>SybSQL15.0.3</b>
Sicherung der Datenbankbereiche (wenn nötig bzw. möglich).
Give Sybase user [sa]
1> <b>sp_helpdb sisis</b>
2> <b>go</b>


Im Fall der oben verwendeten beiden Beispieldateien sah die Ausgabe wie folgt aus.
Sybase-Server stoppen.
<pre>
name                db_size
owner                dbid       
created                                       
status
-------------------- ----------------------------------------------------
sisis                    5120.0 MB                                     
sa                      4           
Apr 15, 2013                                   
select into/bulkcopy/pllsort, Log an Checkpoint abschneiden, Auto-Identity                                                                                                                                                                                                                             
(1 row affected)
device_fragments              size          usage             
created                  free kbytes     
------------------------------ ------------- --------------------
sisis_data1                        4096.0 MB Nur Daten         
Apr 15 2013  3:24PM                4174640
sisis_log1                        1024.0 MB Nur Log           
Apr 15 2013  3:24PM      nicht zutreffend
                                                                                                                 
-----------------------------------------------------------------------------------------------------------------
Nur Log free kbytes = 1044476                                                                                   
(return status = 0)
</pre>


Nach dem Anlegen der neuen Datenbank wird das Sybase-Log standardmässig bei einem checkpoint abgeschnitten. Dieses Verhalten muss als Sybase-Benutzer "sisis" abgeschaltet werden, um das Transaktionslogging zu aktivieren.
# <b>/etc/init.d/sybase stop</b>
# <b>tail -f /var/spool/sybase/sisisSYB.errorlog</b>


1> <b>sp_dboption sisis, 'trunc log on chkpt', false</b>
SISIS-Sunrise-Server wieder starten.
2> <b>go</b>
Datenbankoption 'trunc log on chkpt' ist für Datenbank 'sisis' deaktiviert.
CHECKPOINT wird für Datenbank 'sisis' ausgeführt, damit Option 'trunc log on
chkpt' wirksam wird.
(return status = 0)
1> <b>use sisis</b>
2> <b>go</b>
1> <b>checkpoint</b>
2> <b>go</b>
1> <b>quit</b>


Nun wird die neue (aber immer noch leere) Datenbank "sisis" gesichert. Zum Herstellen eines Dumps kann das Skript "SYBASEbackup.sh" verwendet werden, das allerdings zuvor konfiguriert werden muss!
# <b>/etc/init.d/SunRiseServer start</b>
# <b>/etc/init.d/tomcat start</b>


$ <b>vi /home/sisis/sc/SYBASEbackup.sh</b>
Crontab-Einträge aller Benutzer wieder aktivieren.
ALLDATABASES="sisis"
EXTENSION="$1"
BACKUPPATH=<b>/OCLC/backup/MIGRATION-TEST</b>
$ <b>SYBASEbackup.sh -leer-15.0.3</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 [-leer-15.0.3]
Enter backup directory [/OCLC/backup/MIGRATION-TEST]

Version vom 28. August 2013, 19:05 Uhr

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.

Crontab-Einträge aller Benutzer deaktivieren.

SISIS-Sunrise-Server stoppen.

# /etc/init.d/tomcat stop
# /etc/init.d/SunRiseServer stop

Allfällig noch laufende SISIS-Sunrise-Prozesse töten.

# ps -ef

Sybase-Server muss laufen!

# /etc/init.d/sybase start
# tail -f /var/spool/sybase/sisisSYB.errorlog

Sicherung der Datenbanken (mit dbtool bzw. dump).

Die Datei "yaust.tar" muss auf den alten Rechner ins Verzeichnis "/home/sisis/sc" kopiert werden.

$ md5sum /home/sisis/sc/yaust.tar
af1d8a3d60c3bac467234d438c4c146c  yaust.tar

Sicherung der vorhandenen Dateien "yaust2.sh", "dbtUpTo2.pl" und "sisis.unload".

$ cd /home/sisis/sc
$ for i in yaust2.sh dbtUpTo2.pl sisis.unload; do mv $i $i-ORIGV37pl2; done

Kopieren der Datei "yaust.tar" ins Verzeichnis "/home/sisis/sc" und Entpacken der Datei.

$ cd /home/sisis/sc
$ tar xvf yaust.tar
$ chmod 775 yaust2.sh dbtUpTo2.pl sisis.unload

Setzen der Umgebung für das Skript "yaust2.sh". Die Variable "INSTVERSION" enthält die SISIS-Sunrise-Zielversion (hier ist es "V4.1pl2").

login: sisis
$ export AREA=/home/sisis/sc \
         DATABASE=sisis \
         INSTVERSION=V4.1pl2

Ü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.

$ ls -al sisis.done ${AREA}/area_${DATABASE}

Ausführen des Skripts "yaust2.sh" zum Sicherstellen, dass die richtige Datenbank upgedatet würde und dass die korrekte Software verwendet wird - das Skript muss an dieser Stelle aber abgebrochen 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
$ ./yaust2.sh -k -a

Update-Script for SISIS-SunRise:

... $Id: yaust2.sh 285871 2012-05-03 08:26:31Z bajdalaj $

... started on "Linux sedvs011 2.6.5-7.244-default"
... started at "Sa Okt 13 11:42:52 CEST 2012"

... pre-selected "Sybase" database "sisis"
... pre-selected database server "sisisSYB"
... pre-selected area for unload-files "/home/sisis/sc/area_sisis/loadFiles"
... old version according dbcall interface: "V3.7"
... installed "sisisbase" version: "V4.1pl2"
... current database version:      "V3.7pl2"
... unload and convert database "sisis" from "V3.7" to "V4.1pl2"?

    Is this what you really want to do?

... Let's start and hit ENTER to CONTINUE or interrupt 
Interrupt with CTRL+C
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.

Zum Vermeiden von Verbindungsabbrüchen muss der Befehl "nohup" verwendet werden.

Bibliothek Datenbank Medien Titelsätze Dauer
Stadtbücherei Kaufbeuren sisis 95'000 8 Minuten
Stadtbücherei Pulheim sisis 86'000 8 Minuten
Stadtbücherei Lampertheim sisis 35'000 ... 4 Minuten
Bayerischer Landtag sisis 19'000 ... 4 Minuten
Kantonsbibliothek Uri kkb 13'000 20'000 1 Minute
Kantonsbibliothek Uri sisis 92'000 179'000 25 Minuten
Kantonsbibliothek Uri urisik 0 11'000 1 Minute
Helmholtz-Zentrum Berlin sisis 29'000 81'000 6 Minuten
Hochschule Ostwestfalen-Lippe sisis 168'000 189'000 8 Minuten
$ export OUTFILE=${AREA}/nohup.out-$(date +%Y%m%d-%H%M)-${DATABASE}; \
    nohup ./yaust2.sh -k -a -n > ${OUTFILE} &
$ tail -f ${OUTFILE}

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.

$ tar czf area_sisis.tgz area_sisis
$ rm -rf area_sisis
Bei der Hochschule Ostwestfalen-Lippe erschien erstmals folgende Warnung:
Unload table "sik_fstab" - Start at Di Apr 30 10:19:41 CEST 2013connected to Sybase:sisis
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.

$ cd /home/sisis/sc
$ for i in yaust2.sh dbtUpTo2.pl sisis.unload; do mv $i-ORIGV37pl2 $i; done

Entladen der Tabelle "d07statistik" (falls vorhanden).

Sicherung der Datenbankbereiche (wenn nötig bzw. möglich).

Sybase-Server stoppen.

# /etc/init.d/sybase stop
# tail -f /var/spool/sybase/sisisSYB.errorlog

SISIS-Sunrise-Server wieder starten.

# /etc/init.d/SunRiseServer start
# /etc/init.d/tomcat start

Crontab-Einträge aller Benutzer wieder aktivieren.