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

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

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

    Decode360's Blog

    業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks
    一、What is Undo
    ?
    ??? ① 當發布一條回滾語句時,撤銷記錄用于撤銷未提交事務讀數據庫所做的修改。
    ??? ② 在數據庫恢復期間,撤銷記錄用于撤銷從重做日志作用到數據文件的任何未提交的修改。
    ??? ③ 當另一用戶正在修改數據時,撤銷記錄為正在訪問數據的用戶提供修改錢的映像。
    ?
    ??? 注:一個數據庫只有一個SYSTEM回滾段,通常在CREATE DATABASE時自動創建,并在實例啟動時聯機。
    ?
    ?
    二、指定管理Undo TableSpace的方式
    ?
    ??? 管理Undo TableSpace的方法有兩種:一是使用回滾段來管理,該方式被認為是手動撤銷管理;二是使用撤銷表空間的方法,是以自動撤銷管理方式。不能在一個數據庫實例中同時使用兩種方法,如要進行切換,則需要關閉和重啟數據庫。實例中使用何種管理方法,由初始化參數UND_MANAGEMENT決定。
    ?
    ??? 1、自動撤銷管理方式
    ?
    ??? UNDO_MANAGEMENT = AUTO
    ??? 注:前提是一個撤銷表空間必須是可用的。
    ?
    ??? ① 實例啟動時,Oracle自動選擇第一個可用的撤銷表空間。
    ??? ② 如果沒有撤銷表空間,則啟動時使用SYSTEM回滾段,但會有警告信息產生。
    ??? ③ 可以啟動時指定特定的撤銷表空間,通過 UBDO_TABLESPACE 初始化參數約定。
    ?
    ??? 其他相關初始化參數:
    ?
    ??? UNDO_RETENTION:保持撤銷的時間長度動態參數,默認為900秒
    ??? UNDO_SUPPRESS_ERRORS:自動撤銷管理方法下,發布手動撤銷管理SQL語句時,是否發布錯誤信息。TRUE取出信息|FALSE發布信息
    ?
    ??? 2、手動撤銷管理方式
    ?
    ??? UNDO_MANAGEMENT = MANUAL (default)
    ??? 注:此模式下UNDO_TABLESPACE參數值被忽略。
    ?
    ??? 其他相關的初始化參數:
    ?
    ??? ROLLBACK_SEGMENTS:指定在啟動時需要的回滾段
    ??? TRANSACTIONS:指定并發事務的最大個數
    ??? TRANSACTIONS_PER_ROLLBACK_SEGMENT:指定每個回滾段希望被處理的并發事務個數
    ??? MAX_ROLLBACK_SEGMENTS:指定可以為任何實例聯機服務的回滾段最大個數
    ?
    ?
    -----------------------------------------------------------------------------------
    ?
    管理撤銷表空間
    ?
    ??? Oracle強烈建議以自動撤銷管理方式進行操作。
    ?
    1、創建撤銷表空間
    ?
    ??? ① CREATE DATABASE 的 UNDO TABLESPACE 子句
    ?
    ??? 若在CREATE DATABASE中沒有UNDO TABLESPACE子句,則Oracle會自動創建一個名為SYS_UNDOTBS(9i)的默認撤銷表空間,以自動撤銷管理方式進行。SYS_UNDOTBS初始大小為10M,自動盤區。
    ?
    ??? 創建語法:
    ?
    ??? CREATE DATABASE rbdb1
    ??? CONTROLFILE REUSE
    ??? ...
    ??? UNDO TABLESPACE undotbs_01 DATAFILE '/u01/oracle/rbdb1/undo0101.dbf';
    ?
    ??? 注:使用該子句后,若Undo TableSpace沒有創建成功,則整個數據庫新建操作失敗。
    ?
    ??? ② 使用 CREATE UNDO TABLESPACE 語句
    ?
    ??? CREATE UNDO TABLESPACE undotbs_02
    ??? DATAFILE '/u02/oracle/rbdb1/undo0201.dbf' SIZE 2M REUSE AUTOEXTEND ON;
    ?
    ??? 注:與CREATE TABLESPACE語句基本一樣。
    ?
    2、修改撤銷表空間
    ?
    ??? 撤銷表空間也可以通過ALTER TABLESPACE語句來進行修改,但是由于撤銷表空間中大多數的方面都由系統自動管理,所以用戶只需要進行以下的操作(也只允許用戶進行這些屬性的修改):
    ?
    ??? ① 添加數據文件
    ??? ② 數據文件重命名
    ??? ③ 數據文件聯機/脫機
    ??? ④ 開始/結束數據文件的公開備份
    ?
    ??? 注:具體操作與普通數據文件操作相同,不再舉例。
    ?
    3、取消撤銷表空間
    ?
    ??? 一個撤銷表空間只有在沒有被任何實例所使用的情況下才可以被取消。如果包含任何未完成的事務,則操作失敗。
    ?
    ??? DROP TABLESPACE undotbs_01;
    ?
    ??? 注:取消Undo TableSpace時相當于 DROP TABLESPACE ... INCLUDING CONTENTS
    ?
    4、切換撤銷表空間
    ?
    ??? ALTER SYSTEM SET UNDO_TABESPACE = undotbs_02;
    ?
    ??? 命令執行后,會立即切換,但是需要注意以下幾點:
    ??? ① 該表空間必須存在
    ??? ② 該表空間必須是一個撤銷表空間
    ??? ③ 該表空間不能被其他實例使用
    ?
    ??? 因為切換操作不等待已有事務的提交,所以當切換操作完成之后,原先的Undo TableSpace進入PENDING OFFLINE狀態,已經開始的事務可以繼續進行操作,新事務則使用新的Undo TableSpace。
    ?
    ??? 另外,可以使用 ALTER SYSTEM SET UNDO_TABLESPACE = '';? 來去掉Undo TableSpace。
    ?
    5、為撤銷空間確定用戶限額
    ?
    ??? Oracle的Database Resource Manager的UNDO_POOL指令允許DBA限制一個用戶組所消耗的撤銷空間的數量。 可以為每個使用者組指定一個撤銷池,一個撤銷池控制由一個使用者產生的全部撤銷數量。
    ?
    ??? 當沒有明確定義UNDO_POOL指令時,用戶被允許使用沒有限制的撤銷表空間。
    ?
    6、為撤銷信息設置保留期
    ?
    ??? ① 指定保留期
    ?
    ??? UNDO_RETENTION = 500 (default 900)
    ??? 初始化參數 UNDO_RETENTION 可設置數據保留期。 UNDO_RETENTION參數是可以通過ALTER SYSTEM 來動態修改的。
    ?
    ??? 該保留期的計算不受系統崩潰的影響,即實例崩潰前生成的撤銷,一直保持到它的保留期過期,即使重新啟動實例也是如此。
    ?
    ??? 注:UNDO_RETENTION只有在Undo TableSpace有足夠空間時才起作用。當空間不足時,系統開始重用未到期的撤銷空間。
    ?
    ??? ② 閃回查詢的保留期
    ?
    ??? DBMS_FLASHBACK可以實現系統的閃回操作,即用戶可以見到過去一個指定時間的一致版本。
    ?
    ??? 閃回可以回退的時間最大長度,取決于撤銷的保存時間長度,所以一般如果需要閃回在12小時的,則需要設置:
    ??? UNDO_RETENTION = 43200
    ?
    ??? ③ 撤銷保留的空間要求
    ?
    ??? 通過一下公式計算撤銷保留所需要的空間:
    ??? UndoSpace = UR * UPS + Overhead
    ?
    ??? UndoSpace = 撤銷塊數目
    ??? UR = 以秒計的 UNDO_RETENTION
    ??? UPS = 每秒的撤銷塊數
    ??? Overhead = 元數據的小開銷 (事務表、位圖等)
    ?
    7、關于撤銷空間的信息
    ?
    ??? V$UNDOSTAT:包括用來監聽和調整撤銷空間的統計信息
    ??? V$ROLLSTAT:自動撤銷管理方式中撤銷表空間中撤銷段的行為
    ??? V$TANSACTION:撤銷段的信息
    ??? DBA_UNDO_EXTENTS:撤銷表空間中每個盤區的提交時間
    ?
    ??? 監控撤銷空間:
    ??? SELECT BEGIN_TIME, END_TIME, UNDOTSN, UNDOBLKS, TXNCOUNT, MAXCONCURRENCY "MAXCON"
    ??? FROM V$UNDOSTAT; -- 監控某段時間內撤銷空間的消耗情況
    ?




    -The End-

    posted on 2009-02-06 21:10 decode360-3 閱讀(695) 評論(0)  編輯  收藏 所屬分類: DBA
    主站蜘蛛池模板: 在线观看日本免费a∨视频| 1000部羞羞禁止免费观看视频| 成人午夜大片免费7777| 亚洲国产理论片在线播放| 久久午夜羞羞影院免费观看| 亚洲狠狠综合久久| 91九色老熟女免费资源站| 亚洲最大的黄色网| 无人在线观看免费高清视频| 亚洲熟妇自偷自拍另欧美| 日韩免费福利视频| 免费国产va在线观看| 久久久久亚洲AV成人网人人软件| 国产日韩精品无码区免费专区国产 | 久久久久亚洲AV无码专区首| 免费高清国产视频| 亚洲精品美女久久久久9999| 99精品国产免费久久久久久下载 | 国产亚洲精品美女2020久久| 午夜亚洲国产成人不卡在线| 亚洲邪恶天堂影院在线观看| 国产成人免费在线| 中文字幕乱码亚洲精品一区| 无码国产精品一区二区免费式芒果 | 免费在线人人电影网| 久久亚洲2019中文字幕| 国产激情免费视频在线观看| 亚洲国产美女精品久久久久| 免费毛片在线看不用播放器| 亚洲丁香色婷婷综合欲色啪| 日韩精品成人无码专区免费| 亚洲国产综合在线| 免费无码一区二区三区蜜桃大| 免费毛片毛片网址| 亚洲精品高清久久| 国产成人一区二区三区免费视频| 中文日韩亚洲欧美制服| 亚洲国产成人久久综合一区77| 久章草在线精品视频免费观看| 亚洲国产精品无码中文lv| 亚洲一区二区三区无码中文字幕|