Oracle中恢復某張表丟失資料的方法

2021-08-31 04:40:31 字數 879 閱讀 5306

oracle中恢復某張表丟失資料的方法

2010-05-15 16:55

--利用oracle資料庫的scn進行恢復,oracle資料庫每隔5分鐘,系統會產生乙個系統時間標記與scn的匹配並存入sys.smon_scn_time表中。

--我們對這個備份機制做如下測試

--查詢出來資料

select t.*, t.rowid from account t where id >10000 order by t.id asc;

--刪掉資料

delete from account c where c.id >10000;

--查詢出oracle資料庫中的scn與時間的對應關係

select * from sys.smon_scn_time order by time_dp desc;

--根據資料取得刪除時間段對應的scn號,這裡是1693760, 檢視這個檢查點的account表的歷史情況

select * from account as of scn 1693760;

-- 將account表複製乙個,(這裡表的關聯關係需要另外處理),命名為account_new 。

create table account_new as select * from account where 1<>1

--將刪掉的資料庫從這個檢查點恢復到新錶account_new中。

insert into account_new (select * from account as of scn 1693760);

--查詢恢復後的結果。

select * from account_new;

--- 此方法的最佳恢復時間越短越好,如果超過了24個小時,恢復的可能性就很小了。

引用自:

恢復某張表 PostgreSQL恢復誤刪除資料

今天早上發生了一件事,業務人員一不小心刪除了某張表的資料。說實話大哥我玩兒pg也不久,很多運維經驗也是邊踩坑邊總結,所以在誤刪除恢復這件事上哥的經驗還是比較匱乏的。而且還有一件比較可怕的事情是該資料庫的物理備份還沒有弄好。現實 打臉,只怪自己學藝不深。研究一通之後發現並不是外掛程式問題。以下是在測試...

Oracle設定某張表為唯讀

oracle 11g開始支援設定某張表為唯讀,這樣可以防範對某些表的修改,起到一定的安全性。設定如下 設定表為唯讀許可權 加鎖 alter table tab name read only 設定表的讀寫許可權 解鎖 alter table tab name read write 當表需要進行更新 增...

oracle中查詢某張表都被哪些表參照了

起因 系統測試的時候發現如果某條記錄已經被引用了,這個時候刪除這條記錄會引起資料不一致,系統會報錯。比如警員資訊,在考勤記錄表裡會引用警員id,如果考勤記錄表中已經存在這個警員id了,這時從警員表中刪除該警員,就會引起資料不一致,前台報錯。所以,這個時候我就想查詢資料庫中所有引用這個id的表 約束用...