激情五月天婷婷,亚洲愉拍一区二区三区,日韩视频一区,a√天堂中文官网8

<ul id="buwfs"><strike id="buwfs"><strong id="buwfs"></strong></strike></ul>
    <output id="buwfs"></output>
  • <dfn id="buwfs"><source id="buwfs"></source></dfn>
      <dfn id="buwfs"><td id="buwfs"></td></dfn>
      <div id="buwfs"><small id="buwfs"></small></div>
      <dfn id="buwfs"><source id="buwfs"></source></dfn>
      1. <dfn id="buwfs"><td id="buwfs"></td></dfn>
        始創(chuàng)于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
        • 掛牌上市企業(yè)
        • 60秒人工響應(yīng)
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補(bǔ)償
        全部產(chǎn)品
        您的位置: 網(wǎng)站首頁(yè) > 幫助中心>文章內(nèi)容

        Oracle 10g 讀書(shū)筆記之 redo 與 undo

        發(fā)布時(shí)間:  2012/8/29 17:12:07

        redo(重做信息)是 Oracle 在在線(或歸檔)重做日志文件中記錄的信息,用于重做事務(wù);undo(撤銷)是 oracle 在 undo 段中記錄的信息,用于取消或回滾事務(wù)。

        undo 操作數(shù)據(jù)庫(kù)只是邏輯的恢復(fù)到原來(lái)的樣子,但數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)塊本身在回滾后可以大不相同。這樣做的原因是同時(shí)可能會(huì)有多個(gè)并發(fā)的事務(wù)。

        盡管 undo 信息存儲(chǔ)在 undo 表空間或 undo 段中,但也會(huì)受到 redo 的保護(hù)。換句話說(shuō),會(huì)把 undo 數(shù)據(jù)當(dāng)成是表數(shù)據(jù)或索引數(shù)據(jù)一樣,對(duì) undo 的修改會(huì)生成一些 redo 并記入日志。
        -
         

        Oracle 的事務(wù)提交是一個(gè)非?斓牟僮鳎徽撌聞(wù)有多大,COMMIT 的響應(yīng)時(shí)間都差不多。因?yàn)樵谔峤恢耙呀?jīng)完成了99.9%工作,例如已經(jīng)發(fā)生了如下操作:

        a、已經(jīng)在 SGA 中生成了 undo 塊
        b、已經(jīng)在 SGA 中生成了已修改的數(shù)據(jù)塊
        c、已經(jīng)在 SGA 中生成了對(duì)應(yīng)前兩項(xiàng)的緩存 redo
        d、取決于前三項(xiàng)的大小,以及這些工作花費(fèi)的時(shí)間,前面的某些數(shù)據(jù)可能已經(jīng)刷新輸出到磁盤(pán)
        e、已經(jīng)得到了所需的全部鎖
        執(zhí)行 COMMIT 時(shí),余下的工作只是
        a、為事務(wù)生成一個(gè) SCN。它是 Oracle 使用的一種簡(jiǎn)單的計(jì)時(shí)機(jī)制,用于保證事務(wù)的順序,并支持失敗恢復(fù)。它還用于保證數(shù)據(jù)庫(kù)中的讀一致性和檢查點(diǎn)。
        b、LGWR 將所有余下的緩存重做日志條目寫(xiě)至磁盤(pán),并把 SCN 記錄到在線重做日志文件中。這一小是真正的 COMMIT。之后事務(wù)條目為從 V$TRANSACTION 中“刪除”。
        c、V$LOCK 中記錄著我們的會(huì)話持有鎖,這些鎖都將被釋放,而排隊(duì)等待這些鎖的每一個(gè)人都會(huì)被喚醒,可以繼續(xù)完成他們的工作。
        d、如果事務(wù)修改的某些塊還在緩沖區(qū)中,則會(huì)清除存儲(chǔ)在數(shù)據(jù)庫(kù)塊首部與鎖相關(guān)的信息。

        相反 ROLLBACK 時(shí)要做以下工作:
        a、撤銷已做的所有修改。從 undo 段讀回?cái)?shù)據(jù),然后實(shí)際上逆向執(zhí)行前面所做的操作,并將 undo 條目標(biāo)記為已用。
        b、會(huì)話持有的所有鎖都將釋放,如果有人在排隊(duì)等待我們持有的鎖,就會(huì)被喚醒。

        減少重做日志的生成:
        a、在 SQL 中設(shè)置 NOLOGGING。這并不是說(shuō)這個(gè)對(duì)象的所有操作在執(zhí)行時(shí)都不生成重做日志,只是說(shuō)有些特定的操作生成的 redo 會(huì)比平常少得多。
        b、在索引上設(shè)置 NOLOGGING。在段(索引或表)上設(shè)置 NOLOGGING 屬性,從而隱式的采用 NOLOGGING 模式來(lái)執(zhí)行操作。
        c、可以采用 NOLOGGING 模式執(zhí)行以下操作:
        1、索引的創(chuàng)建和 ALTER。例如 create index t_idx on t(name) nologging ,alter index t_idx nologging,alter index t_idx rebuild
        2、表的批量 INSERT 。表數(shù)據(jù)不生成 redo,但是所有的索引修改會(huì)生成 redo。
        3、LOB 操作(對(duì)大對(duì)象的更新不必生成日志)。
        4、通過(guò) CREATE TABLE AS SELECT 創(chuàng)建表。
        5、各種 ALTER TABLE 操作,如 MOVE 和 SPLIT。

        塊清除:即刪除所修改數(shù)據(jù)庫(kù)塊上與“鎖定”有關(guān)的信息。后面提到 ORA-01555:snapshot too old 會(huì)用到這個(gè)概念。
        數(shù)據(jù)鎖實(shí)際上是數(shù)據(jù)的屬性,存儲(chǔ)在塊首部。下次訪問(wèn)這個(gè)塊時(shí),就要將這些事務(wù)信息刪除,這個(gè)動(dòng)作會(huì)生成 redo,并導(dǎo)致塊變臟,也就是說(shuō) SELECT 可能也會(huì)生成 redo 并將塊刷新至磁盤(pán)。
        如果塊在還在緩沖區(qū)中,那么 COMMIT 時(shí)會(huì)清除,這樣后面的 SELECT 就不必再清理了。只有塊的 UPDATE 才會(huì)真正清除殘余的事務(wù)信息,由于 UPDATE 時(shí)已經(jīng)生成 redo,所以注意不到清除工作。

        臨時(shí)表不會(huì)為它們的塊生成 redo,但會(huì)生成 undo,而且這個(gè) undo 為記入日志。
        INSERT 會(huì)生成很少甚至不生成 undo/redo 活動(dòng)。因?yàn)樯傻?undo 很少,Oracle 只需要記錄要?jiǎng)h除的 rowid。
        DELETE 在臨時(shí)表上生成的 redo 與在正常表上生成的 redo 同樣多,因它的 undo 很大,需要把整行的前映像記錄到 undo 段中。
        臨時(shí)表的 UPDATE 會(huì)生成正常表一半的 redo,對(duì)于臨時(shí)表來(lái)說(shuō)不必保存“后映像”(redo)。

        SQL> show parameter undo
        NAME                                 TYPE        VALUE
        ------------------------------------ ----------- ------------------------------
        undo_management                      string      AUTO //自動(dòng) undo 管理
        undo_retention                       integer     900 // undo 保留的時(shí)間
        undo_tablespace                      string      UNDOTBS1 // undo 存儲(chǔ)表空間


         


        本文出自:億恩科技【mszdt.com】

        服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

      2. 您可能在找
      3. 億恩北京公司:
      4. 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
      5. 億恩鄭州公司:
      6. 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
      7. 億恩南昌公司:
      8. 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
      9. 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
      10. 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
      11. 專注服務(wù)器托管17年
        掃掃關(guān)注-微信公眾號(hào)
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問(wèn):河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
          0
         
         
         
         

        0371-60135900
        7*24小時(shí)客服服務(wù)熱線