Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie stellt man die Daten in einer Oracle-Tabelle wieder her?

Erstens, haben Sie die Änderung übernommen? Wenn nicht, können Sie einfach ein rollback veranlassen um Ihre Änderungen rückgängig zu machen.

Angenommen, Sie haben Ihre Änderungen festgeschrieben, ändern andere Benutzer die Tabelle gleichzeitig? Müssen Sie die Änderungen beibehalten, die andere vorgenommen haben, und nur die Änderungen rückgängig machen, die Sie an Ihrer Transaktion vorgenommen haben? Oder können Sie die gesamte Tabelle zu einem Zeitpunkt wiederherstellen, bevor Ihre Änderungen vorgenommen wurden?

Wenn Sie die gesamte Tabelle zu einem bestimmten Zeitpunkt wiederherstellen können

FLASHBACK TABLE <<table name>>
  TO TIMESTAMP( systimestamp - interval '10' minute )

bringt eine Tabelle in den Zustand zurück, in dem sie sich vor 10 Minuten befand, unter der Annahme, dass UNDO notwendig ist, bleibt verfügbar (so dass Sie nur eine begrenzte Zeit haben, nachdem Sie einen Fehler gemacht haben, um diesen Fehler zurückblenden zu können). Um eine FLASHBACK TABLE auszugeben , müssen Sie auch dafür sorgen

  • Die Tabelle hat die Zeilenbewegung aktiviert ALTER TABLE <<table name>> ENABLE ROW MOVEMENT
  • Sie müssen über FLASHBACK verfügen Privilegien für die Tabelle oder das FLASHBACK ANY TABLE Systemberechtigung.