Как восстановить удаленные данные из Oracle?

Способы восстановления данных в БД Oracle после фиксации (commit).

Ретроспективный запрос

Ретроспективный запрос позволяет восстановить недавно удалённые данные. Данные будут выведены на указанное в запросе время. Время доступности старых данных зависит от настроек базы данных.

select 
  count(*) 
from 
  tablename as of timestamp to_timestamp('2004-03-29 13:34:12', 'YYYY-MM-DD HH24:MI:SS');
1
2
3
4

Ретроспективный запрос не может быть использованopen in new window со следующими типами данных:

  • BFILE
  • BLOB
  • CLOB
  • NCLOB

Ссылки

Восстановление таблицы из корзины

Если таблица была полностью удалена (drop), то есть возможность восстановить её из корзины.

Для этого найдите таблицу в корзине

select 
  *
from
  dba_recyclebin t
where 
  original_name = 'table_name'
1
2
3
4
5
6

Возьмите название таблицы в корзине из колонки OBJECT_NAME и восстановить таблицу командой

flashback table 
  owner."BIN$2vv3nR/wSHyzgnIdqcBGJA==$0" 
to before drop 
rename to new_table_name;
1
2
3
4

Ссылки

Последниее изменение: 24.08.2023, 06:42:55