<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    大魚

    誤刪除了oracle表的數據,恢復方法

    同事找回時操作的數據庫為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數據.處理即可

    posted on 2010-10-20 22:20 大魚 閱讀(480) 評論(0)  編輯  收藏 所屬分類: oracle

    主站蜘蛛池模板: 色多多A级毛片免费看| 亚洲色成人WWW永久在线观看 | 免费a级毛片无码a∨性按摩| 亚洲制服丝袜在线播放| 亚洲毛片免费观看| 亚洲人配人种jizz| 精品免费国产一区二区三区| 亚洲爆乳AAA无码专区| 国产成人精品男人免费| 一级女性全黄久久生活片免费| 亚洲av无码不卡私人影院| 人人爽人人爽人人片av免费 | 国产性生交xxxxx免费| 亚洲国产成人AV网站| 亚洲 另类 无码 在线| 中文精品人人永久免费| 亚洲人成在线影院| 成年女人免费视频播放77777| 亚洲AV无码成人精品区日韩| 亚洲精品亚洲人成在线观看下载| 波多野结衣免费一区视频| 亚洲精品午夜久久久伊人| 在线免费观看一区二区三区| 亚洲AV无码AV日韩AV网站| 在线观看国产区亚洲一区成人| 国内精品一级毛片免费看| 亚洲成a人片在线观看中文!!!| 成年午夜视频免费观看视频 | 久久精品亚洲福利| 3d成人免费动漫在线观看| 亚洲精品又粗又大又爽A片| 亚洲国产综合精品一区在线播放| 久久大香香蕉国产免费网站| 亚洲免费福利在线视频| 亚洲日韩涩涩成人午夜私人影院| 最近高清中文字幕免费| 美女又黄又免费的视频| 久久久无码精品亚洲日韩蜜臀浪潮| 97无码免费人妻超级碰碰碰碰| 久久精品免费大片国产大片| 亚洲人成高清在线播放|