DataPump: Konsistenter Export

Bei den alten Tools zum Exportieren von Dumps konnte man mit dem Parameter consistent=y einen zum Startzeitpunkt des Kommandos konsistenten Dump erstellen. Beim DataPump-Kommando expdp ist dieser Parameter verschwunden. Trotzdem ist es weiterhin möglich, einen explizite Konsistenz anzufordern. Leider ist die Umsetzung nicht ganz eingängig und unterscheidet sich zu allem Übel auch noch unter Windows und Linux aufgrund der notwendigen Escape-Zeichen.

Linux..:> expdp \'/ as sysdba\' directory=DUMP_DIRECTORY schemas=SCHEMA_OWNER 
            dumpfile=DUMPFILE.DMP logfile=LOGFILE.LOG 
            flashback_time=\"to_timestamp\(\'20110228_1930\',\'YYYYMMDD_HH24MI\'\)\"
Windows:> expdp '/ as sysdba' directory=DUMP_DIRECTORY schemas=SCHEMA_OWNER 
            dumpfile=DUMPFILE.DMP logfile=LOGFILE.LOG 
            flashback_time=\"to_timestamp('20110228_1930','YYYYMMDD_HH24MI')\"

Ohne "Geschwurbel" mit diversen Arten von Anführungszeichen kann man auch plattformübergreifend mit flashback_time=sysdate oder flashback_time=systimestamp arbeiten, wenn man einen zum Startzeitpunkt des Exports konsistenten Dump haben möchte.

Ab Oracle 11.2. kann wieder der altbekannte Parameter consistent=y genutzt werden. Damit münzt Oracle den Aufruf intern automatisch auf den passenden flashback_time Parameter um. Vorteil/Nachteil: Dadurch fällt DataPump in einen Kompatibilitätsmodus und überschreibt bspw. auch ohne Rückfrage die erstellten Dumps.