oracle checkpoint檢查點系列一

wisdomone1發表於2013-03-25
a,檢查點是什麼?
    1,檢查點是一種確保資料庫一致性的機制;比如在資料庫非正常關閉,例項恢復,資料庫操作期間;
    2,檢查點包括幾層意思:
        1,它是一種資料結構,標明檢查點的位置;指定例項恢復從redo中的哪個scn開始恢復
                    1,這個檢查點的位置由什麼決定呢?由buffer cache最老的髒緩衝區決定:
                    2,檢查點的位置起到一個指標的作用,它指向redo file的具體的rba;
                    3,檢查點的位置一般儲存在哪兒呢?儲存在控制檔案及每個資料檔案頭部
        2,發生檢查點時,ckpt通麼dbwr把buffer cache中的diry buffer寫入到磁碟中
          它是觸發dbwr寫東東的一個事件
  b,檢查點的作用?
     1,減少介質恢復和例項恢復所需要的時間
        2,確保定時把buffer cache中的dirty buffer寫入到磁碟
        3,確保提交的資料寫入到磁碟
      
   c,什麼時間發生檢查點?
        ckpt負責把檢查點資訊寫入到每個資料檔案頭部和控制檔案之中.如下幾種情況會發生檢查點事件
             1,database checkpoint,資料庫級的檢查點:
                    1,alter system checkpoint;
                    2,alter system switch logfile;
                    3,alter database begin backup;
                    4,正常關閉資料庫
                        shutdown immediate  
                       
             2,表空間和資料檔案檢查點:
                    1,alter tablespace read only;
                    2,alter datafile shrink;
                    3,alter tablespace offline;
                    4,alter tablespace begin backup;
                   
             3,增量檢查點:
                    增量檢查點的產生是為了減少switch logfile寫入大量資料塊到線上日誌檔案的一種方法;
                    dbwr程式會每隔3秒檢查是否有事要作,即寫入buffer cache的dirty buffer;每次寫入時,
                    dbwr會推進檢查點的位置.讓ckpt把檢查點位置資訊寫入到控制檔案,但不寫入到資料檔案頭部;
                    (增量是僅寫入控制檔案,但不寫入資料檔案頭部。而完全檢查點則是二者皆寫入)     
             4,其它型別的檢查點:
                   1,模式物件刪除或trucate;
                   2,例項和介質恢復 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-757005/,如需轉載,請註明出處,否則將追究法律責任。

相關文章