程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server中的CheckPoint

SQL Server中的CheckPoint

編輯:關於SqlServer

前面說到Recovery Interval可以控制SQL Server在內存中保留多少被修改的數據。其實我們有一個問題沒有講。

那就是內存中被修改的數據寫回到磁盤後,也就意味著磁盤中的數據版本和日志中的數據操作已經同步了。當然也就意味著如果這個時候系統崩潰了,SQL Server就不需要再恢復了。

不過如果真的這個時候崩潰了,那麼SQL Server怎麼知道這些日志操作的數據已經寫到磁盤了呢,所以SQL Server還有一個概念。

這個概念就是CheckPoint。

當SQL Server將一些被修改過的數據(術語叫Dirty Data)寫回到磁盤後(這個操作的術語叫Flush),SQL Server會在日志中留下一個標記,以表示這個標記前的數據已經都被寫到磁盤中了,而這個標記就叫做CheckPoint。

因此我們可以這麼說,CheckPoint代表著一次Flush操作。

SQL Server會在以下情況下觸發CheckPoint,也就是進行Flush:

SQL Server在正常停止服務的時候

日志中需要進行恢復的操作要花費超過Recovery Interval的時間時

SQL Server可用內存不足的情況下

管理員手動遞交CHECKPOINT命令的時候

當日志文件中的數據超過70%

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved