tft每日頭條

 > 生活

 > oracle閃回數據查詢

oracle閃回數據查詢

生活 更新时间:2024-10-13 05:47:45
概述

Oracle11g 閃回事務查詢就是對過去某段時間内所完成的事務的查詢和撤銷,通過閃回事物分析,可以識别在一個特定的時間段内所發生的所有變化,也可以對數據庫表進行事物級恢複。 前面提到可以審計一個事務到底做了什麼,現在可以獲得事務的曆史操作進行撤銷。


flashback transaction操作過程:

1、查詢某段時間内的操作發生情況:

select id,name,versions _operation,versions_xid,versions_starttime from testversions between timestamp minvalue and maxvalue order by id;

2、 根據 XID 對 flashback _transaction_query 進行查詢

select table _name,table_owner,undo_SQL from flashback_transaction_query wherexid=‘„’

3、運行上面找出的 sql 語句,即可将以前删除的數據恢複回來。

Flashback Transaction Query 也是使用 UNDO 信息來實現。利用這個功能可以查看某個事務執行的所有變化,它需要訪問 flashback _transaction_query 視圖,這個視圖的 XID 列代表事務 ID,利用這個 ID 可以區分特定事務發生的所有數據變化。


實例演示:

先開啟附加日志

oracle閃回數據查詢(Oracle備份恢複之Flashback--閃回事務查詢)1

SQL> create table B(id int); Table created. SQL> insert into B values(1); 1 row created. SQL> insert into B values(2); 1 row created. SQL> insert into B values(3); 1 row created.

oracle閃回數據查詢(Oracle備份恢複之Flashback--閃回事務查詢)2

查看視圖,每個事務都對應相同的XID

SQL>select xid,operation,commit_scn,undo_sql from flashback_transaction_query where xid in (Select versions_xid from B versions between scn minvalue and maxvalue);

oracle閃回數據查詢(Oracle備份恢複之Flashback--閃回事務查詢)3

删除數據:

SQL> delete from B where id=3; 1 row deleted. SQL> commit; Commit complete.

oracle閃回數據查詢(Oracle備份恢複之Flashback--閃回事務查詢)4

再次查看視圖,每個事務都對應相同的XID

SQL>select xid,operation,commit_scn,undo_sql from flashback_transaction_query where xid in (Select versions_xid from scott.B versions between scn minvalue and maxvalue);

oracle閃回數據查詢(Oracle備份恢複之Flashback--閃回事務查詢)5


閃回事務查詢可以将同一事務的所有撤銷SQL列出,這是閃回查詢做不到的,如有必要,管理員還能夠執行對應一個事務的部分撤銷SQL以一種破壞事務原子性的方式恢複一部分數據,如此行事正确與否完全取決于應用的邏輯。

後面會分享更多flashback方面的内容,感興趣的朋友可以關注下!

oracle閃回數據查詢(Oracle備份恢複之Flashback--閃回事務查詢)6

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved