Oracle用delete命令刪除資料恢複

來源:互聯網
上載者:User

同事找回時操作的資料庫為Oracle 10g , 之前刪除方式為delete 不曉得trancate好使不。

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

相關文章

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.