it-swarm.com.de

Speichern Sie die Oracle-Datenbank in einem textuellen SQL-Skript

Ich denke darüber nach, was mysqldump oder pg_dump sind dabei. Sie sichern also eine aktive Datenbank in einer Textdatei, die die SQL-Abfragen enthält, die diese gesamte Datenbank reproduzieren. In MySQL und in PostgreSQL ist dies das normale Datenbank-Dump-Format.

Existiert es auf Oracle? Wie geht das?

Es ist absolut kein Problem, wenn es sich nicht um eine Standard-Oracle-Sache handelt. Ich brauche eine Lösung für das Problem. Das Exportieren einzelner Tabellen ist nicht genug, ich frage nach dem Speicherauszug einer ganzen Datenbank.

Es ist eine reduzierte Entwicklerumgebung eines großen Projekts (mit mehreren Millionen Zeilen DB), aber immer noch mit Hunderten von Tabellen und einer sehr komplexen Struktur. Und ich möchte damit spielen schnell. Während ich damit spiele, muss ich auch in der Lage sein, knifflige Änderungen daran vorzunehmen. Auf einem binären Dump kann ich das nicht tun, auf einem Text kann ich das.

In der Datenbank selbst gibt es so etwas nicht.

In SQL Developer können Sie mit dem Datenbankexport-Tool etwas Ähnliches ausführen.

So exportieren Sie Daten mit SQL Developer

Mit dem Tool Tools/Datenbankexport können Sie die Objekte angeben, die Sie exportieren möchten. Anschließend generiert SQL Developer eine SQL-Datei zum Neuerstellen mit den Daten als Einfügeanweisungen.

3
Balazs Papp

Existiert es auf Oracle?

Ein ähnliches Dienstprogramm gibt es in der Oracle-Umgebung namens Data Pump.

Wie geht das?

Verwenden Sie das Befehlszeilentool expdp, um den vollständigen Datenbankexport durchzuführen.

Beispiel :

expdp hr DIRECTORY=dpump_dir2 DUMPFILE=expfull.dmp FULL=YES NOLOGFILE=YES

Dann können Sie impdp verwenden, um es in eine andere Datenbank zu importieren.

Beispiel :

impdp hr DUMPFILE=dpump_dir1:expfull.dmp FULL=YES LOGFILE=dpump_dir2:full_imp.log

Wenn Sie den Parameter DUMPFILE angeben, wird eine Binärdatei mit dem Namen dump file geschrieben. Mit dem Parameter SQLFILE (SQLFILE=/my/file/name.sql) Sie können die gesamte SQL-DDL abrufen, die der Import ausgeführt hätte.

Mehr davon hängt von den Anforderungen ab.

Oracle Documentation erklärt mehr als ich hier kann.

Übersicht über Oracle Data Pump

6
JSapkota

Da die genauen Anforderungen vage sind, werde ich Folgendes posten: Sie können die gewünschten Daten auch in externe Tabellen schreiben. Dies würde Ihnen die Daten im (zum Beispiel) CSV-Format geben, die Sie zum Importieren mit den Importfunktionen einer anderen Datenbank verwenden könnten.

Beachten Sie, dass es möglicherweise nicht ausreicht, die Daten nur als DDL/DML-Anweisungen abzurufen, um das zu tun, was Sie vermutlich versuchen. Es gibt Unterschiede in Datentypen, Längen, Formaten und mehr, die Probleme verursachen können, wenn Sie von einem Instanztyp zu einem anderen migrieren.

1
Phil Sumner

In einigen Fällen können Tools wie Flyway oder Liquebase für Sie hilfreich sein, denke ich. Scheint, sie können Dump in SQL, XML und vielleicht etwas anderem machen. Dieses Tool ist nicht sehr einfach zu bedienen, sieht aber viel flexibler aus als SQL Developer. Zum Beispiel, wenn Sie Daten vor dem Hochladen filtern müssen.

0
Anton Chekmarev