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.