dbexport
Der Informix-Befehl dbexport erstellt u. a. eine Datei, die die ganze logische Struktur einer Datenbank enthält. Zusätzlich zu den Informix-SQL-Anweisungen (die auch "dbschema" liefert), entlädt dbexport die Daten jeder Tabelle in je eine Datei. Der Befehl wird durch Benutzer "informix" aufgerufen und erstellt im aktuellen Verzeichnis:
- die Datei "dbexport.out", die alle während des Ablaufs entstandenen Meldungen enthält
- das Verzeichnis "<Datenbankname>.exp", das eine Datei (*.sql) mit der SQL-Anweisungsfolge und je eine Datei (*.unl) mit den Daten der entladenen Tabellen enthält.
Während der Konvertierung sperrt dbexport die Datenbank exklusiv.
Verwendung
Datenbank "sisis" ins aktuelle Verzeichnis exportieren.
$ dbexport sisis
Datenbank "sisis" ins Verzeichnis "/tmp" exportieren.
$ dbexport -o /tmp sisis
Datenbank "sisis" auf Bandgerät "/dev/rmt0" mit Blockgrösse 512 bytes und Bandgrösse 1000000 exportieren.
$ dbexport -t /dev/rmt0 -b 512 -s 1000000 sisis
Konvertierung einer Datenbank aus Informix-SE in OnLine-Umgebung
Die Dienstprogramme dbexport und dbimport ermöglichen die Konvertierung einer Datenbank aus Informix-SE in eine Turbo- bzw. OnLine-Umgebung oder umgekehrt.
Export der Datenbank "sisis" ins Verzeichnis "/tmp". Die Umgebungsvariable $SQLEXEC wird zuerst so gesetzt, dass der Informix-SE-Datenbankserver benutzt wird.
$ SQLEXEC=$INFORMIXDIR/lib/sqlexec $ export SQLEXEC $ dbexport -o /tmp sisis
Nach dem Entladen der Datenbank wird die SQLEXEC-Variable so gesetzt, dass der Informix-OnLine-Datenbankserver aktiv wird.
$ SQLEXEC=$INFORMIXDIR/lib/sqlturbo $ export SQLEXEC
Nun wird die Datenbank in die OnLine-Umgebung geladen.
$ dbimport -i /tmp sisis
Neuaufbau der Tabelle "isbn_ref"
Es darf niemand sonst am Rechner arbeiten!
Manchmal bleibt die Datenbank während eines Entladevorgangs bei der Tabelle "isbn_ref" hängen, deshalb am besten vorbeugend durchführen:
1. Tabelle "isbn_ref" nach $SISISHOME entladen.
# su - sisis $ dbaccess sisis - > unload to kuhntest select * from isbn_ref; CTRL+C $ ls -al | grep kuhntest
2. Tabelle "isbn_ref" löschen.
$ dbaccess sisis - > drop table isbn_ref; CTRL+C
3. Wechseln ins Verzeichnis der Datei "isbn_ref.sql". Neuerzeugen der Tabelle "isbn_ref". Laden der Daten aus der alten Tabelle "isbn.ref".
$ cd $SISISHOME/sql/sikis $ ls -al | grep isbn_ref.sql > dbaccess sisis isbn_ref.sql CTRL+C $ cd $SISISHOME > dbaccess sisis -
> load from kuhntest insert into isbn_ref; CTRL+C
Vorbereitungen zum Datenbankexport
1. Sicherung und Tageslauf müssen gelaufen sein!
2. Beenden der SISIS-server (avserver, catserver, opserver, siadae).
3. Es sollte niemand mehr eingeloggt sein (Kontrolle mit "who | more").
4. Erstellung eines neuen Verzeichnisses. Das muss offenbar als Benutzer "sisis" gemacht werden, jedenfalls muss das Skript "inf.rc" mit der Informix-Umgebung abgearbeitet werden; ausserdem muss die Variable "LANG=de" gesetzt sein
login: root password: # . /opt/lib/sisis/etc/inf.rc # cd /export/home5 # mkdir kuhn # chmod 777 kuhn # chown informix:informix kuhn
5. Prüfen, ob als Benutzer "informix" eine Datei angelegt werden kann.
# su - informix $ touch file
6. Variablen setzen.
$ DBMONEY=. $ export DBMONEY $ DBDATE=DMY4. $ export DBDATE
7. Export der Datenbank "sisis". Dabei werden im Verzeichnis "export/home5/kuhn" die beiden Dateien "dbexport.out" und "sisis.exp" angelegt.
$ cd /export/home5/kuhn $ dbexport sisis
8. Packen und Zippen der beiden Dateien in die Datei "sisis.tar.gz".
# tar cvf sisis.tar dbexport.out sisis.exp # gzip sisis.tar