標籤:style io 使用 ar strong 資料 sp on c
原理: Oracle根據還原資料表空間資訊,利用還原資料表空間中的資料,類似一致性讀取方法,可以把表置於一個刪除前的時間點(或SCN),從而將資料找回。
刪除刪除錯誤的dml操作的oracle的前提準備:
一、保證可以閃回兩個小時之前的資料
show parameter undo_retention
顯示事務在undo資料表空間中至少儲存的時間。表示一個事務提交以後,該事務的資料至少要在還原資料表空間中儲存的undo_retention參數指定的時間(秒).
alter system set undo_retention=7200
二、還原資料表空間相關的參數
SQL> show parameter undo;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
其中undo_management = auto,設定自動undo管理(AUM),該參數預設設定為:auto;(必須設定為自動管理的還原資料表空間,否則不能實現閃回資料)
Undo_retention = n(秒),設定決定undo最多的儲存時間,其值越大,就需要越多的undo資料表空間的支援
undo_tablespace指定系統使用的當前的還原資料表空間。
三、設定足夠大的還原資料表空間
雖然設定undo中儲存兩個小時的資料,但是如果資料表空間上的dml操作過於頻頻導致佔用了大量的undo資料表空間。還原資料表空間上沒有足夠的空間時oracle會使用undo_retention參數要求保留的磁碟空間,即這部分空間中的資料將被覆蓋掉,無法恢複錯誤的dml操作。通常報錯為“表結構的定義被修改了”
oracle中閃回錯誤的dml操作原理