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, für einen DataPump-Export eine 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.