qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          數據庫失敗類型之用戶錯誤

           數據庫失敗的類型分為幾大類。對于每種失敗來說,Oracle都會提供適當的解決方法。

            所有失敗類型最好被記錄在一個服務級別協議內,同時在程序手冊中還要記錄解決失敗的相關步驟。

            第四種失敗類型:用戶錯誤

            就Oracle而言,所關心的是事務。對于DML錯誤來說,用戶在提交之前發現錯誤時仍然有機會回滾錯誤的語句。但是對于DDl語句來說,用戶是無法回滾錯誤的語句。

            因為,commit被內置到DDL語句中。

            解決用戶錯誤的理想方式是首先防止這些錯誤的出現。培訓用戶只是其中的一部分工作,不過最重要的是設計軟件。從而使任何用戶進程都不允許用戶執行不存在where子句的update語句。然而設計最完美的軟件也沒法防止用戶發出與指定業務不相符的sql語句。Oracle為修正用戶錯誤的dba提供了許多可用的方法,不過使用這些方法通常極為困難,尤其是用戶錯誤在一段時間內未被報告時更是如此??赡艿募夹g包括閃回查詢,閃回刪除,閃回數據庫和不完全恢復。

            閃回查詢時針對過去某時存在的數據庫所運行的查詢。通過使用撤銷數據,可以只為當前會話構造讀一致性的數據庫。

            如下:有一位用戶不小心刪除了emp表中的所有行,并提交了刪除操作,那么隨后通過針對5分鐘之前的表執行子查詢檢索這些行。

          SQL> delete from emp;
          15 rows deleted.
          SQL> commit;
          Commit complete.
          SQL> select count(*) from emp;
          COUNT(*)
          ----------
          0
          SQL> insert into emp (select * from emp as of timestamp(sysdate-5/1440));
          15 rows created.
          SQL> select count(*) from emp;
          COUNT(*)
          ----------
          15
          (2)利用閃回刪除來恢復被刪掉的表
          如下:
          SQL> drop table emp;
          Table dropped.
          SQL> select count(*) from emp;
          select count(*) from emp
          *
          ERROR at line 1:
          ORA-00942: table or view does not exist
          SQL> flashback table emp to before drop;
          Flashback complete.
          SQL> select count(*) from emp;
          COUNT(*)
          ----------
          15

            對于撤銷用戶錯誤來說,不完全恢復與閃回數據庫是作用更為顯著的方法。使用上述任一種方法,整個數據庫會返回發生錯誤前的時刻。前面介紹的其他方法在保持數據庫其他部分不發生變化的情況只撤銷錯誤的事務。但是,一旦執行了數據庫的不完全恢復或閃回操作,就會失去從返回到的時刻開始的所有工作,而不僅僅失去錯誤的事務。

          posted on 2013-08-02 11:43 順其自然EVO 閱讀(619) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2013年8月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 麻阳| 石门县| 嘉黎县| 会宁县| 绥江县| 常州市| 许昌市| 张家界市| 吉安市| 平度市| 万载县| 长治市| 富蕴县| 凤冈县| 重庆市| 新宁县| 孙吴县| 青田县| 肥西县| 泾阳县| 舞阳县| 讷河市| 磴口县| 丹棱县| 桑植县| 收藏| 丰城市| 嘉黎县| 繁峙县| 长沙县| 温宿县| 壶关县| 团风县| 革吉县| 库尔勒市| 光山县| 郸城县| 荥阳市| 日照市| 汝城县| 邵阳县|