chas0rde
Goto Top

DB2 - Komplette Struktur in eine zweite DB der selben Instanz übertragen

Struktur einer DB X in der Instanz I soll auf eine DB Y, welche ebenfalls in der Instanz I ist, übertragen werden.

Hallo zusammen,
ich bin vollkommener DB2 Noob.
Wir haben in der Firma auch nur einen DB2-Server, mit dem sich leider auch kein Kollege wirklich auskennt.

Ich habe folgendes Problem:

Ich habe eine DB mit sehr vielen Einträgen.
Das System ist dadurch sehr langsam.

Also sollen alle Einträge, die älter sind als 6 Monate aus der DB verschwinden.
Und dass soll wie folgt von statten gehen:

Es soll eine zweite DB geben (innerhalb der selben Instanz), in der die letzten 12 Monate abgelegt werden sollen (man hat also 18 Monate in 2 DBs online).

Die Struktur der beiden DBs muss natürlich gleich sein.

Es sollen also die Daten aus DB A monatlich in DB B verschoben werden.
Im selben Zug sollen dann natürlich die Daten des ältesten Monats aus DB B nach Excel o.Ä. exportiert werden.

Also zusammengefasst:

  • DB A: Daten von 6 Monaten (online)
  • DB B: Daten von 12 Monaten (online)
  • TXT/XLS/MDB mit den restlichen Daten (offline)

Monatl. werden die Daten quasi eine "Etage tiefer" gelagert.

Mein Problem jetzt - warsch. Mangels Erfahrungen mit DBs allgemein und einem 0-Wissen im Zusammenhang mit DB2:

  • Wie kriege ich die Struktur der DB A (Views, Tabellen etc.) in DB B, ohne alles quasi von Hand erneut anlegen zu müssen?
  • Gibt es einen Weg, dass Alter eines Datensatzes zu erkennen?
  • Gibt es einen Weg, um nach XLS o.Ä. zu exportieren?

Ich würde mich über Hilfe sehr freuen.

Kurze Systeminfo:

  • Windows Server 2003 SE
  • IBM DB2 v8.2

MFG chaser

Content-ID: 71767

Url: https://administrator.de/forum/db2-komplette-struktur-in-eine-zweite-db-der-selben-instanz-uebertragen-71767.html

Ausgedruckt am: 22.12.2024 um 22:12 Uhr

Biber
Biber 17.11.2007 um 17:23:10 Uhr
Goto Top
Moin chas0rde,

irgendwie hab ich Deinen Beitrag erst heute gefunden.
Ist die Frage noch offen oder hast Du es schon selbst gelöst?

Falls noch offen:
Zu allen 3 Fragen gibt es ca. 300 verschiedene Lösungsstrategien.
Wenn es eine einmalige Aktion ist (muss ja, als dauerhafter Prozess wäre das ja zu verwegen), dann:
zu 1) Die DDL-Skripte von Dantebankinstanz A erzeugen und auf DB B laufen lassen.
Am besten aus dem Modellierungstool heraus, das ihr bestimmt einsetzt.

Oder, halb von Hand, mit einem CREATE TABLE DB_B.tablespace.tablename LIKE DB_A.tablespace.tablename.
Geht aber AFAIK nur bei Tabellen, nicht bei Views, Tablespaces, Indices oder Triggern.

zu 2) Alter eines Datensatzes erkennen...
Jein, normalerweise wird das letzte Änderungsdatum "programmtechnisch" gepflegt, indem bei jeder Änderung noch der current timestamp oder das current date in ein zusätzliches Tabellenfeld geschrieben wird ( also ein Feld TS_CHANGED TIMESTAMP NOU NULL WITH DEFAULT).
Wenn ihr so etwas nicht habt, kann man/frau zwar die letzte Datensatzänderung aus den internen DB2-Systeminformationen rausfrickeln, aber das ist etwas holzig/nicht wirklich schön.

zu 3) DB2 ist doch eine stinknormale SQL-DB mit der sich über ODBC plaudern lässt.
Von daher hast Du die ganze Palette angefangen von DataPumpern bis zu handgeschriebenen Excel-Makros zur Auswahl.

Grüße
Biber
chas0rde
chas0rde 18.11.2007 um 12:17:00 Uhr
Goto Top
Hallo Biber
habe das problem unsauber gelöst, da auf grund der druckerkonsolidierung bei uns ein wenig eile am mann/frau war ;)

Hab die datensätze, die älter als 6 Monate sind von hand exportiert.

Habe einige der wege, die du beschrieben hast auch probiert gehabt.

z.b. über DDLs oder Create like...aber ich denke mal, dass auf grund der auslastung der DB das ganze nicht ganz geklappt hat.

trotzdem danke ich dir für deine antwort face-smile
vllt ist sie ja noch anderen zu nutze face-smile

grüße
chas0rde
Biber
Biber 18.11.2007 um 13:52:56 Uhr
Goto Top
Moin chas0rde,

danke für die schnelle Rückmeldung.
Und nochmals sorry, dass Du auf Deinen Beitrag wochenlang nicht mal eine Lesebestätigung bekommen hast.

Dann setze ich diesen Thread mal nicht auf "gelöst", sondern auf "erledigt".
Und auf "geschlossen".

Denn das Thema "Datenbank portieren / exportieren / migrieren" bekommen wir öfters mal "frisch" rein.

Schönen Sonntag
Biber