LFD

Aus Admin Kuhn GmbH
Zur Navigation springen Zur Suche springen
Vor dem Anlegen der neuen Datenbank für SISIS-Sunrise muss sichergestellt werden, dass die aktuellen SISIS-Sunrise V4.1pl2-Pakete installiert wurden!

Zum Anlegen einer leeren Sybase ASE 15.0.3-Datenbank "sisis" werden standardmässig die folgenden SQL-Dateien benötigt:

  • "DiskInit.sql" legt die Datenbankbereiche für Sybase ASE an.
  • "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 ).

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!

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.

Das Erstellen der Dateien "Disk.Init.sql-xxx" und "CreatDb.sql-xxx" könnte womöglich verskriptet werden, um in der Vergangenheit immer wieder aufgetretene Fehlkonfigurationen zu vermeiden...
Bei Einsatz von Touchpoint muss offenbar zusätzlich eine eigene Datenbank angelegt werden.

Konfiguration der Datei zum Anlegen der Plattenbereiche.

Login: sisis
$ cd /home/sisis/sc
$ KUERZEL=Berlin-HUB
$ cp DiskInit.sql.orig DiskInit.sql-15.0.3-${KUERZEL}
$ vi DiskInit.sql-15.0.3-${KUERZEL}

Zum Beispiel kann die angepasste Datei wie folgt aussehen.

disk init
name="sisis_log1",
physname="/SybaseLog/15.0.3/sisis_log1.log",
size="1G",
dsync=false
go

disk init
name="sisis_data1",
physname="/SybaseDatabase/15.0.3/sisis_data1.dat",
size="4G",
dsync=false
go

Konfiguration der Datei zum Anlegen der Datenbank.

$ cp CreatDb.sql.orig CreatDb.sql-15.0.3-${KUERZEL}
$ vi CreatDb.sql-15.0.3-${KUERZEL}

Zum Beispiel kann die angepasste Datei zum Anlegen der Datenbank "sisis" (passend zu den Plattenbereichen im obenstehenden Beispiel) wie folgt aussehen.

sp_configure "lock scheme", 0, datarows
go

create database sisis
on sisis_data1=4096
log on sisis_log1=1024
go

sp_dboption sisis,"select into/bulkcopy","true"
go

sp_dboption sisis,"auto identity","true"
go

sp_dboption sisis,"trunc. log on chkpt.", true
go

use sisis
go

checkpoint
go

sp_adduser "sisis"
go

grant ALL to sisis
go

Setzen der Umgebung und Ausführen der beiden Dateien als Benutzer "sisis".

$ . /opt/lib/sisis/etc/syb.rc && export LANG=de_DE.UTF-8

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.

$ ${SC_SQL} -Usa -P$(cat ${SISISROOT}/etc/syb/syb.pw | \
    grep ^sa: | awk -F: '{ print $2 }' | tr -d '\012') -S${DSQUERY} \
    -i /home/sisis/sc/DiskInit.sql-15.0.3-${KUERZEL}

Nun folgt das Anlegen der Datenbank, des Sybase-Benutzers "sisis" und die Zuteilung der Berechtigungen.

$ ${SC_SQL} -Usa -P$(cat ${SISISROOT}/etc/syb/syb.pw | \
    grep ^sa: | awk -F: '{ print $2 }' | tr -d '\012') -S${DSQUERY} \
    -i /home/sisis/sc/CreatDb.sql-15.0.3-${KUERZEL}
 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.

$ SybSQL15.0.3
Give Sybase user [sa]
1> sp_helpdb sisis
2> go

Im Fall der oben verwendeten beiden Beispieldateien sah die Ausgabe wie folgt aus.

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)

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.

1> sp_dboption sisis, 'trunc log on chkpt', false
2> go
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> use sisis
2> go
1> checkpoint
2> go
1> quit

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!

$ vi /home/sisis/sc/SYBASEbackup.sh
ALLDATABASES="sisis"
EXTENSION="$1"
BACKUPPATH=/OCLC/backup/MIGRATION-TEST
$ SYBASEbackup.sh -leer-15.0.3

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 [-leer-15.0.3] 
Enter backup directory [/OCLC/backup/MIGRATION-TEST]