dbexport: Unterschied zwischen den Versionen

Aus Mikiwiki
Zur Navigation springen Zur Suche springen
(New page: Der Informix-Befehl <b>dbexport</b> erstellt u. a. eine Datei, die die ganze logische Struktur einer Datenbank enthält. Zusätzlich zu den Informix-SQL-Anweisungen (die auch "dbschema...)
 
Keine Bearbeitungszusammenfassung
Zeile 110: Zeile 110:




{{cat|Datensicherung}}
{{cat|Informix}}
{{cat|Informix}}

Version vom 21. Januar 2009, 22:20 Uhr

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