sql >> Database >  >> RDS >> Oracle

Hoe de gegevens in een Oracle-tabel te herstellen?

Ten eerste, heb je de wijziging doorgevoerd? Zo niet, dan kunt u eenvoudig een rollback uitvoeren om uw wijzigingen ongedaan te maken.

Ervan uitgaande dat u uw wijzigingen hebt doorgevoerd, wijzigen andere gebruikers de tabel dan tegelijkertijd? Wilt u de wijzigingen die anderen hebben aangebracht behouden en alleen de wijzigingen terugdraaien die u in uw transactie hebt aangebracht? Of kunt u de hele tabel herstellen naar een tijdstip voordat uw wijzigingen werden aangebracht?

Als je de hele tabel kunt herstellen naar een bepaald tijdstip

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

zal een tabel terugbrengen naar de staat waarin deze zich 10 minuten geleden bevond, ervan uitgaande dat de UNDO het noodzakelijke blijft beschikbaar (je hebt dus maar een beperkte tijd na het maken van een fout om die fout te kunnen flashbacken). Om een ​​FLASHBACK TABLE uit te geven , moet u er ook voor zorgen dat

  • De tabel heeft rijverplaatsing ingeschakeld ALTER TABLE <<table name>> ENABLE ROW MOVEMENT
  • Je moet FLASHBACK . hebben privileges op de tafel of de FLASHBACK ANY TABLE systeemrechten.


  1. Oracle.DataAccess.Client.OracleException ORA-03135:verbinding verbroken contact

  2. Param doorgeven aan DB .execute voor WHERE IN... INT list

  3. ORA-01830 bij het converteren van getallen naar woorden

  4. Django met Postgresql, kolom moet voorkomen in de GROUP BY-component of worden gebruikt in een aggregatiefunctie