dbexport

Aus Mikiwiki
Wechseln zu: Navigation, Suche

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.

Mit dem Befehl dbimport kann eine derart entladene Datenbank wieder geladen werden.

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 Byte und Bandgrösse 1'000'000 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