閃回特性中對相關物件的處理
一:閃回刪除
1.表的所有的索引,觸發器,授權閃回後將不受到影響;
2.對於約束,如果是外來鍵約束,表刪除之後將不可恢復,其餘的約束不受影響。
3.drop table 時自動將其對映為rename命令,表會被重新命名為乙個系統生成的名稱,除表以外,與表相關的索引,觸發器,約束也會被自動重新命名為系統生成的名稱,
但表的授權不會被重新命名,原因是表的授權沒有名稱,因此無法重新命名授權。
當授予乙個物件許可權時,通過名稱指定物件對並且底層儲存的授權通過它的物件號引用該物件,由於rename操作並沒有改變物件號,因此授權仍是有效的。
4.在閃回刪除時,可以通過rename to 命令重新命名表,但無法改變原始表的模式。
5.和表一起閃回的索引,觸發器,約束都保持它們的**站的名稱,如果希望恢復索引,觸發器,約束原先的名稱,需要在閃回操作後手動重新命名。
6.如果刪除了乙個使用者,如:drop user scott cascade;
那麼使用閃回無法恢復任何scott的表,將模式刪除意味著oracle根本無法維護物件(即使在**站內),因為沒有可供物件連線的使用者。
7.如果刪除了表,並且建立了具有相同名稱的另乙個表,並且隨後也刪除了它,那麼在**站中將有兩個表,它們具有不同的**站名稱,但具有相同的原始名稱。預設情況下,閃回刪除將總是恢復最新版本的表,但是如果這不是你想要的版本,則可以指定你希望恢復的版本的**站名稱,而不是原始名稱,例如:
flash table "**站名稱" to before drop ;
8.從**站中清除表,如**站中存有多個具有相同原始表名稱的物件,那麼將清除時間最久的物件。
9.如果**站中存有多個刪除的表,那麼當需要重寫**站的空間時,首先重寫存放時間最長的物件,即先進先出(first in first out,fifo)。
10.system表空間中的表不可以用於閃回刪除。
11.想要使用閃回刪除,那麼被刪除的表的表空間必須是locally managed;
二:閃回查詢
1.閃回操作是乙個單獨的事物。
2.閃回操作不是乙個回滾提交的工作,而是以乙個新事物取消已提交事務的影響。
3.閃回操作維護所有的索引並強制執行約束:表閃回只是另一種事物,通常的規則仍適用。
4.表的觸發器對閃回操作預設是禁用的。
5.適用表閃回需要開啟行移動(預設情況下沒有為任何表啟用行移動)。
6.擁有主外來鍵約束的兩個表,單獨閃回從表會違反完整性約束,對此可以同時閃回主表和從表。
7.閃回不能跨越ddl。
8.閃回不適用於處於sys模式下的表。
9.閃回版本查詢可以檢視乙個行所有提交的版本(任何未提交的版本不能檢視)。
10.閃回版本查詢不能用於外部表,臨時表,v$檢視,原因是這些物件不生成撤銷資料。
11.閃回事物查詢前必須授予select any transaction,預設情況下,此許可權授予sys 或dba角色。
12.dbma_flashback包:它包含取消事物的過程,但必須有flashback any table許可權。
13.閃回表語句將被寫入到警告日誌檔案。
oracle 中的閃回
概述 閃回技術是oracle強大資料庫備份恢復機制的一部分,在資料庫發生邏輯錯誤的時候,閃回技術能提供快速且最小損失的恢復 多數閃回功能都能在資料庫聯機狀態下完成 需要注意的是,閃回技術旨在快速恢復邏輯錯誤,對於物理損壞或是介質丟失的錯誤,閃回技術就回天乏術了,還是得借助於oracle一些高階的備份...
oracle 10g的閃回特性
1.先介紹兩個表 select from tab 檢視有那些表 select from ind 檢視有那些索引 2.試驗指令碼 create table abc id int create index abc on abc id commit insert into abc values 1 ins...
Oracle中的閃回查詢的寫法
閃回查詢是oracle中可以查詢到一段時間之前的資料的一種操作,可以一定程度上避免誤操作等造成的資料丟失。其寫法就是在sql中新增一段as of timestamp即可。例 查詢2019年8月29日20 20 19秒時student表中姓名為doubly的各項資料,就可以使用如下的 進行查詢 sel...