RACLE 找回被truncate的表

2021-07-01 18:40:13 字數 1801 閱讀 1270

當表被truncate後,需要馬上恢復。首先要做的就是關閉資料庫所有應用,或者offline那個表所在的表空間。目的只有乙個,確保空間不會被重用資料不會被覆蓋。只要原來的空間沒有被重用(即資料被覆蓋),則資料都是可以恢復的。辦法大概有這麼幾種:

一、使用flashback database功能找回被truncate表:

使用該方式首先需要資料庫處在歸檔模式下,並且開啟flashback和force_logging功能;

其侷限性在於這種方式實際是恢復資料庫到一定時間點,恢復資料庫過程需要資料庫重啟。

1.檢視是否開啟flashback和force_logging功能:

2.重啟資料庫到mount狀態,開啟flashback和force_logging功能:

4.模擬誤刪除表:

6.以「resetlogs」的方式開啟資料庫,檢視資料是否被恢復: 

二、利用oracle表掃瞄機制恢復被truncate的資料:

黃煒(fuyuncat:提供了乙個使用plsql編寫的儲存過程包來恢復被truncate的資料。

其原理基於truncate不會逐個清除使用者資料塊上的資料,而僅僅重置資料字典和元資料塊上的元資料(如儲存段頭和擴充套件段圖)。也就是說,此時,其基本資料並未被破壞,而是被系統**、等待被重新分配————因此,要恢復被truncate的資料,需要及時備份其所在的資料檔案。

2.查詢出表所在的資料檔案:

select file_name from dba_data_files f, dba_tables t where t.owner='hh' and t.table_name='arthas' and t.tablespace_name = f.tablespace_name;

3.拷貝出該資料檔案到某處,比如d:\:

4.執行下列儲存過程恢復表:

exec fy_recover_data.recover_truncated_table('hh','arthas',1,'d:\','d:\users01.dbf');  

5.恢復的資料的放到了表arthas$$當中,將資料插到原表arthas。

6.恢復資料後,把恢復時產生的2個表空間刪除,再刪除對應資料檔案:

alter tablespace fy_rec_data offline;

drop tablespace fy_rec_data including contents;

drop tablespace fy_rst_data including contents;

文章及儲存過程包請參考在此非常感謝這位大牛的共享!)

三、使用oracle資料恢復工具-odu恢復被truncate的資料:

odu是比較好用且功能強大的資料恢復工具,它也是通過直接掃瞄資料檔案來獲取誤刪的資料,遺憾的是現在已經商用了,正式版需要

license,有需要的公司或個人可購買(

1.查詢資料檔案資訊:

select d.ts#,d.file#,d.name,d.block_size from v$datafile d order by d.ts#;

2.拷貝出system表空間和

表所在的資料檔案,放在比如d:\:

3.根據上一步的查詢資訊修改control.txt:

4.開啟odu介面如下:

5.載入並檢視資料字典資訊:

可以看到,hh.arthas表所在的表空間號為4,資料段頭部為4號檔案的762號塊。data object id為obj#=77949

。6.掃瞄表空間的extent並輸出表資料:

執行完後,會在odu軟體的data目錄生成ctl、txt、sql檔案。

7.進入cmd使用sqlldr匯入資料即可。

racle的STRUCT和VARRAY的讀寫方法

巧巧電腦網路 2010 02 25 qqread 佚名 收藏此文 大中小 分享到qq空間 人人網開心網 豆瓣更多 本文給出了讀寫oracle的特殊資料型別struct和varray的操作方法。首先,建立型別 create type struct test as object s varchar 30...

華為手機開啟手機找回,被鎖。

兩年前買了一部榮耀9手機,用到現在,有些卡,準備雙清,備份完資料後,恢復出廠設定,並清除cache分割槽,然後,嘎吉,進入手機需要輸入華為賬號密碼,腦袋一熱,輸入了各種密碼,都不正確,然後的然後就被鎖了。請求太頻繁,請稍後重試 1 等3小時,等待賬戶解鎖。2 在這空閒的3個小時,找回密碼。通過手機號...

0RACLE的字段型別

字段型別 描述字段長度及其預設值 char size 用於儲存定長 size 位元組的字串資料。每行定長 不足部分補為空格 最大長度為每行2000位元組,預設值為每行1位元組。設定長度 size 前需考慮字符集為單位元組或多位元組。varchar2 size 用於儲存變長的字串資料。其中最大位元組長...