Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como restaurar os dados em uma tabela Oracle?


Primeiro, você confirmou a mudança? Caso contrário, você pode simplesmente emitir um rollback para reverter suas alterações.

Supondo que você tenha confirmado suas alterações, outros usuários estão modificando a tabela ao mesmo tempo? Você precisa preservar as alterações que outros fizeram e apenas reverter as alterações feitas em sua transação? Ou você pode restaurar a tabela inteira para um ponto no tempo antes de suas alterações serem feitas?

Se você puder restaurar a tabela inteira para um ponto no tempo
FLASHBACK TABLE <<table name>>
  TO TIMESTAMP( systimestamp - interval '10' minute )

retornará uma tabela ao estado em que estava há 10 minutos, assumindo que o UNDO necessário fazer isso permanece disponível (então você só tem um tempo limitado depois de cometer um erro para poder fazer o flashback desse erro). Para emitir um FLASHBACK TABLE , você também deve certificar-se de que
  • A tabela habilitou o movimento de linhas ALTER TABLE <<table name>> ENABLE ROW MOVEMENT
  • Você deve ter FLASHBACK privilégios na tabela ou no FLASHBACK ANY TABLE privilégio do sistema.