SQL Server2012中的Indirect CheckPoint


簡介

    SQL Server2012新增的Indirect CheckPoint允許CheckPoint的恢復間隔設置到數據庫級別,而不是以前那樣實例級別。

    在數據庫級別設置的恢復時間以秒為單位,而不是在實例級別的以分鍾為單位。這可以更精確的保證數據庫Recovery的最大時間。

 

配置Indirect CheckPoint

    Indirect Checkpoint是數據庫級別的。在SQL SERVER中,包括Contained Database,SQL Server把一些設置從實例級別轉到了數據庫級別。

    按照MSDN上對Indirect CheckPoint的描述,我對Indirect CheckPoint的理解是獨立於實例級別CheckPoint的的額外線程。僅僅負責其所在的數據庫。因此帶來的好處可以歸結如下。

    1.更少的數據庫恢復時間(CheckPoint間隔小了,自然恢復時間就少了)

    2.更精確的恢復時間。現在不僅僅CheckPoint的范圍縮小了,並且最大恢復時間是以秒為單位。

    3.由於這個Indirect CheckPoint線程將其所負責數據庫范圍內的Dirty Page寫入磁盤,所以實例級別的CheckPoint可以減少對磁盤的一次性寫入量。從而減少了實例級別CheckPoint的負載

   

   

    但是,設置Indirect CheckPoint保證數據庫Recovery時間盡可能短的同時,由於恢復間隔可能變短,在OLTP環境下造成更多的磁盤寫入,有可能給I/O造成額外的負擔

 

    下面來看配置Indirect CheckPoint,我們可以通過SSMS或是T-SQL進行配置

     使用SSMS配置Indirect CheckPoint如圖1所示。

    1

    圖1.在SSMS中設置CheckPoint

 

    也可以通過設置數據庫的TARGET_RECOVERY_TIME選項來設置恢復時間,如代碼1所示。
   

ALTER DATABASE Test 

SET TARGET_RECOVERY_TIME = 32 SECONDS;
     代碼1.設置數據庫的TARGET_RECOVERY_TIME選項

 

參考資料:Change the Target Recovery Time of a Database

                Database Checkpoints


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM