select * from 表名 as of timestamp to_timestamp('2019-04-15 22:00:38', 'yyyy-mm-dd hh24:mi:ss');
alter table 表名 enable row movement;
alter table 表名 disable row movement;
flashback table 表名 to timestamp to_timestamp('2019-04-15 22:00:38', 'yyyy-mm-dd hh24:mi:ss');
drop table 表名;
select object_name,original_name, type from user_recyclebin;
上面的object_name便是這裡被刪除的表在資料庫**站中的臨時表名bin$djh3j69wqfgwda1d76/9na==$0
select * from "bin$djh3j69wqfgwda1d76/9na==$0";
flashback table 表名 to before drop;
select *
from 表名 as of timestamp to_timestamp('2019-04-16 21:43:38', 'yyyy-mm-dd hh24:mi:ss')
minus
select *
from 表名;
將恢復 表至2019-04-16 21:43:38時點,恢復資料為因 delete 及 update 操作修改的資料。
注意:需要通過唯一條件id定位資料。
merge into 表名 a
using (select *
from 表名 as of timestamp to_timestamp('2019-04-16 21:43:38', 'yyyy-mm-dd hh24:mi:ss')
minus
select *
from 表名) b
on (a.id = b.id)
when matched then
update
set a.col = b.col,
when not matched then
insert
values
(b.id,
b.col);
select *
from 表名
minus
select *
from 表名 as of timestamp to_timestamp('2019-04-16 21:45:38', 'yyyy-mm-dd hh24:mi:ss');
其中將恢復 表至2019-04-16 21:45:38時點,恢復資料為因 insert 操作修改的資料。
注意:需要通過唯一條件 unique_id定位資料。
delete from 表名 a
where exists (select 1
from (select *
from 表名
minus
select *
from 表名 as of timestamp to_timestamp('2019-04-16 21:45:38', 'yyyy-mm-dd hh24:mi:ss')) b
where a.id = b.id);
如果相隔時間過長的話,資料就回滾不了了,所以一旦資料出現問題,就要立即進行處理。
oracle資料回滾
當我們修改了表的資料並且提交了事務後,想回滾資料怎麼辦?先根據sql執行歷史確定資料回滾時間點 select sql text,last load time from v sql where sql text like update order by last load time desc 再將資料...
Oracle資料回滾
1 select from 表名 as oftimestamp to timestamp 2019 04 15 22 00 38 yyyy mm dd hh24 mi ss 1 select 2 from 表名 as oftimestamp to timestamp 2019 04 16 21 43...
Oracle資料回滾
今天差一點刪庫跑路 還好有乙個回滾 嚇死 1.查詢某個時間點的資料 select from table as of timestamp to timestamp 2019 12 24 00 00 00 yyyy mm dd hh24 mi ss 2.開啟資料閃回 alter table table ...