oracle閃回表詳解

2021-08-27 16:57:59 字數 2788 閱讀 7547

--- 說明閃回資料庫

--- 使用閃回表將表內容還原到過去的特定時間點

--- 從刪除表中進行恢復

--- 使用閃回查詢檢視截止到任一時間點的資料庫內容

--- 使用閃回版本查詢檢視某一行在一段時間內的各個版本

--- 使用閃回事務查詢檢視事務處理歷史記錄或行

優點:

閃回技術由於只能處理更改資料,所以從根本上改變了恢復技術。使用這個技術時,從錯誤中恢復花費的時間等於製造錯誤所花費的時間。當閃回技術使用時,它與介質恢復相比,在易用性、可用性和還原時間方面有明顯的優勢。

閃回資料庫使用閃回日誌執行閃回。閃回刪除使用**站。其他所有功能都使用還原資料。

閃回表 -----使用這個功能時,會還原表及其關聯物件(如索引、約束條件、觸發器等)中的資料。

所謂閃回表,就是將表裡的資料回退到歷史的某個時間點,比如回退到使用者誤刪除資料之前的時間點,從而將誤刪除的資料恢復回來,在這個操作過程中,資料庫仍然可用而且不需要額外的空間。

閃回表利用的是undo表空間裡記錄的資料被改變前的值,因此,如果閃回表時所需要的undo資料,由於保留時間超過了初始化引數undo_retention所指定的值,從而導致該undo資料庫資料被其他事務覆蓋的話,那麼就不能恢復到指定的時間了,除非在undo表空間上指定了retention guarantee選項。

使用閃回表,可將一組表恢復到特定的時間點,而不需要執行傳統時間點恢復操作。

在資料庫聯機時,通過只回退對指定表及其相關物件所做的更改,閃回表操作可原位完成。

閃回表語句可作為單個事務處理來執行。必須成功閃回所有表,否則會回退整個事務處理。

· 使用閃回表,可將乙個或多個表恢復到特定的時間點,而不需要還原備份

· 從回滾段表空間檢索資料後可執行閃回表操作

· 執行閃回表操作需要flashback table 許可權

· 必須對要執行閃回操作的表啟動行移動 //

由於閃回表的操作會修改表裡的資料,從而有可能引起資料行的移動。比如某一行資料當前在a資料塊裡,而在把表閃回到以前的某個時間點時,在那個時間上,該行資料位於b資料塊裡,於是在閃回表的操作中,資料行從當前a資料塊轉移到b資料塊,因此在閃回表之前,必須啟動資料行移動特性。

閃回表:注意事項 ·

整個flashback table 語句是在乙個事務處理中執行的。

有可能會閃回所指定表,也可能不閃回任何指定表。

·操作進行中,閃回表獲取了該語句指定的所有表上的資料操作語言(dml)互斥鎖。

·不會閃回受影響物件的統計資訊。(該物件的統計資訊不會閃回)

·會保留所有現有的索引。不會重新建立刪除的索引。還會自動保留相關的提交時實體化檢視。

·flashback table 語句會寫入預警日誌檔案。

·只要不違反任何表約束條件,就閃回flashback table 語句中指定的表。如果在閃回執行期間違反了任何約束條件,則會中止操作,此時表的狀態與flashback table語句呼叫之前的狀態相同。

·(閃回不能跨ddl,比如,在閃回資料之前,做過刪除乙個欄位的操作,那麼是無法閃回的。)不能將表閃回到早於執行資料定義語言(ddl)操作時的某個特定時間。

·不能對系統表、遠端表和固定表執行閃回表操作。

1. 實驗:閃回表用法

sys@orcl>conn tyger/tyger

connected.

tyger@orcl>create table tyger as select * from scott.emp;

table created.

tyger@orcl>select count(*) from tyger;

count(*)

----------

14tyger@orcl>select dbms_flashback.get_system_change_number from dual;

//檢視當前系統scn

get_system_change_number

------------------------

1045621

tyger@orcl>delete from tyger where rownum <5;

4 rows deleted.

tyger@orcl>commit;

commit complete.

tyger@orcl>select count(*) from tyger;

count(*)

----------

10tyger@orcl>alter table tyger enable row movement; //啟用表tyger的行移動

table altered.

tyger@orcl>flashback table tyger to scn 1045621;

flashback complete.

tyger@orcl>select count(*) from tyger;

count(*)

----------

14tyger@orcl>

關於閃回資料庫詳解:

Oracle10表刪除閃回

drop後的表被放在 站 user recyclebin 裡,而不是直接刪除掉。這樣,站裡的表資訊就可以被恢復,或徹底清除。1.通過查詢 站user recyclebin獲取被刪除的表資訊,然後使用語句 flashback table to before drop rename to 將 站裡的表恢...

oracle 資料閃回

select from scott.dept insert into scott.dept values 50,錯誤資料 china select from scott.dept as of timestamp to timestamp 2011 12 09 10 00 00 yyyy mm dd ...

oracle閃回技術

1,閃回資料庫到之前某時間點 在安裝時需要開放閃回功能 不支援表空間刪除 select name from v database 看是否開啟閃回功能 select flashback on,name from v database select name from v bgprocess where...