<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

    主站蜘蛛池模板: 春暖花开亚洲性无区一区二区| 亚洲日韩AV一区二区三区四区| 色妞www精品视频免费看| 成人免费午夜无码视频| 久久亚洲日韩精品一区二区三区| 波多野结衣免费一区视频| 国产亚洲精品免费视频播放| 本免费AV无码专区一区| 亚洲成色在线综合网站| 亚洲免费视频观看| 免费无码肉片在线观看| 亚洲码和欧洲码一码二码三码| 大学生一级特黄的免费大片视频| 亚洲av永久无码精品秋霞电影秋 | 亚洲情a成黄在线观看动漫尤物| 成人精品一区二区三区不卡免费看| 国产亚洲精久久久久久无码| 中文字幕 亚洲 有码 在线| 最近中文字幕无吗高清免费视频| 亚洲中文字幕久久无码| 免费人成视频在线观看视频| 一级毛片a女人刺激视频免费| 国产成人精品免费视频大全麻豆 | 日本一道本高清免费| 国内成人精品亚洲日本语音| 亚洲av无码国产精品色在线看不卡| 青娱乐在线视频免费观看| 国产成人A亚洲精V品无码| 午夜精品射精入后重之免费观看 | 日韩内射激情视频在线播放免费 | 亚洲乱码一区av春药高潮| 日韩免费毛片视频| 国产视频精品免费视频| 亚洲国产韩国一区二区| 国产片免费福利片永久| 女人体1963午夜免费视频| 亚洲日韩中文字幕一区| 亚洲精品一品区二品区三品区| 国产91免费在线观看| 一级免费黄色大片| 亚洲日本国产精华液|