ORACLE誤刪資料的恢複

來源:互聯網
上載者:User

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

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

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

  注釋:Oracle 僅根據 SCN 執行恢複。

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

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

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

  具體執行流程我們可從以下幾個樣本圖中體會;

  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資料.處理即可

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.