ORACLE誤刪數據的恢復
來源:易賢網 閱讀:1139 次 日期:2014-08-25 11:02:28
溫馨提示:易賢網小編為您整理了“ORACLE誤刪數據的恢復”,方便廣大網友查閱!

有很多原因導致了數據記錄的誤刪,怎樣恢復誤刪的記錄呢?先來看看這個概念:

SCN(系統(tǒng)改變號),它的英文全拼為:System Change Number ,它是數據庫中非常重要的一個數據結構。

SCN提供了Oracle的內部時鐘機制,可被看作邏輯時鐘,這對于恢復操作是至關重要的

注釋:Oracle 僅根據 SCN 執(zhí)行恢復。

它定義了數據庫在某個確切時刻提交的版本。在事物提交時,它被賦予一個唯一的標示事物的SCN 。一些人認為 SCN 是指, System Commit Number ,而通常 SCN 在提交時才變化,所以很多情況下,

這兩個名詞經常被交替使用。

究竟是哪個詞其實對我們來說并不是最重要的,重要的是我們知道 SCN 是 Oracle 內部的時鐘機制, Oracle 通過 SCN 來維護數據庫的一致性,并通過SCN 實施 Oracle 至關重要的恢復機制。

具體執(zhí)行流程我們可從以下幾個示例圖中體會;

1.原表記錄 $ sqlplus eygle/eygle

SQL*Plus: Release 10.1.0.2.0 - Production on Wed Mar 30 08:52:04 2005

Copyright (c) 1982, 2004, Oracle. All rights reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

SQL>select count(*) from t1;

COUNT(*)

----------

9318

2.誤刪除所有記錄

并且提交更改。

SQL>delete from t1;

9318 rows deleted.

SQL>commit;

Commit complete.

SQL>select count(*) from t1;

COUNT(*)

----------

0

3.獲得當前SCN

如果能夠確切知道刪除之前SCN最好,如果不知道,可以進行閃回查詢嘗試.

SQL>select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER

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

10671006

SQL>select count(*) from t1 as of scn 10671000;

COUNT(*)

----------

0

SQL>select count(*) from t1 as of scn 10670000;

COUNT(*)

----------

9318

我們看到在SCN=10670000時,數據都在。

 4.恢復數據.

SQL>insert into t1 select * from t1 as of scn 10670000;

9318 rows created.

SQL>commit;

Commit complete.

SQL>select count(*) from t1;

COUNT(*)

----------

9318

文章2

誤刪數據后的還原

select timestamp_to_scn(to_timestamp('2009-03-13 09:00:00','YYYY-MM-DD HH:MI:SS')) from dual;

結果:13526973

將刪除時間轉換為scn

select * from reportinfo

AS OF SCN 13526973

將reportinfo表中的scn點的數據取出

然后可以根據這個數據進行還原操作

create table reporttest as select * from reportinfo where 1=0;

insert into reporttest select * from reportinfo AS OF SCN 13526973;

--上面兩句應該可以合成一句

--create table reporttest as select * from reportinfo AS OF SCN 13526973;

這是reporttest表中就是scn點的reportinfo數據.處理即可

更多信息請查看IT技術專欄

更多信息請查看數據庫
易賢網手機網站地址:ORACLE誤刪數據的恢復

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網