您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“數據庫中如何使用閃回刪除來回退DROP TABLE操作”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“數據庫中如何使用閃回刪除來回退DROP TABLE操作”這篇文章吧。
--閃回
SELECT * FROM AA AS OF TIMESTAMP(sysdate-1/24/60) --查看2個小時以前的數據
1/2就是12小時
1/24就是1小時
1/24/60就是1分鐘
alter table tableName enable row movement;
這個命令的作用是,允許修改ORACLE分配給行的ROWID,在oracle中,插入一行數據
就會給它分配一個rowid,這行永遠擁有這個ROWID,閃回表處理會對EMP完成DELETE操作
并添加新行,這樣就會對新行分配一個新的ROWID; 否則會報 ora-08189錯誤。
flashback table tableName to scn timestamp_to_scn(sysdate-1/12);--利用時間轉換成SCN號,進行數據恢復.
SCN:
SCN(System ChangeNumber):系統改變號,一個由系統內部維護的序列號。當系統需要更新的時候自動
增加,他是系統中維持數據的一致性和順序恢復的重要標志。
--恢復刪除的表
DROP TABLE AA;
1.用如下語句查詢到這個表還在Oracle回收站中:
SELECT * FROM user_recyclebin WHERE original_name='AA';
2.用以下語句進行恢復:
FLASHBACK TABLE AA TO BEFORE DROP;
ORACLE10G增加了回收站(recycle bin)的功能,從原理來說就是一個數據字典,保存被DROP對象的信息,]
實際上被DROP的對象,并沒有被數據庫刪除,任然占有空間。除非用戶手工purge和數據空間不夠被清除掉.
3.清除回收站的數據
purge table tableName
purge recyclebin;--全部清除
這部分解釋了如何使用FLASHBACK TABLE…TO BEFORE DROP語句從回收站獲取對象。
閃回刪除可以回退DROP TABLE操作的影響
閃回刪除要比可應用于該場景的其它恢復技術要快,例如基于時間點的恢復,不會導致停機或最近的事務的丟失。
當你刪除一個表的時候,數據庫不會立即移除與這個表相關的空間。
相反,這個表被改名了,并與其它相關的對象一起,被放入了回收站。
系統產生的回收站對象的名稱是唯一的。可以像查詢其它對象一樣,查詢在回收站中的對象。
FLAHSBACK操作從收回站獲取對象,當獲取被刪除的表的時候,
可以指定這個表的原始的由用戶指定的名稱,也可以指定系統產生的名稱。
當你刪除一個表,這個表和所有它依賴的對象都進入到了回收站。
因此當執行閃回刪除的時候,所有的對象通常都是一起被獲取。
當從回收站還原表時,依賴的對象,例如索引,不會得到它們原始的名字,保留系統產生的回收站中的名稱。
Oracle會獲取定義在該表上的所有的索引(位圖連接索引除外)、觸發器和約束(引用其它表的引用完整性約束除外)
一些依賴的對象,例如索引,可以會兒因為空間壓力而被回收。這種情況下被回收的對象不會從回收站獲取。
以上是“數據庫中如何使用閃回刪除來回退DROP TABLE操作”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。