強(qiáng)制將當(dāng)前數(shù)據(jù)庫的所有臟頁寫到磁盤上。臟頁是指在輸入到高速緩沖存儲器后被修改的數(shù)據(jù)或日志頁,但這些修改還沒有寫到磁盤上。有關(guān)日志截斷的更多信息,請參見截斷事務(wù)日志。
語法
CHECKPOINT
注釋
CHECKPOINT 語句可在后來的恢復(fù)中節(jié)省時間,方法是創(chuàng)建一個點以確保所有對數(shù)據(jù)和日志頁的修改都寫到磁盤上。
檢查點也會在下列情況中出現(xiàn):
- 當(dāng)用 ALTER DATABASE 更改了某數(shù)據(jù)庫選項時。檢查點在更改選項的數(shù)據(jù)庫中執(zhí)行。
- 當(dāng)服務(wù)器停止時,在服務(wù)器上的每個數(shù)據(jù)庫中執(zhí)行檢查點。停止每個數(shù)據(jù)庫 Microsoft® SQL Server™ 2000 檢查點的方法是:
- 使用 SQL Server 服務(wù)管理器。
- 使用 SQL Server 企業(yè)管理器。
- 使用 SHUTDOWN 語句。
- 在命令提示行使用 Windows NT 命令 net stop mssqlserver。
- 使用 Windows NT 控制面板中的 services 圖標(biāo),選擇 mssqlserver 服務(wù),并單擊"停止"按鈕。
SHUTDOWN WITH NOWAIT 語句關(guān)閉 SQL Server 而不在每個數(shù)據(jù)庫中執(zhí)行檢查點。這可能會導(dǎo)致后來重新啟動以恢復(fù)服務(wù)器上的數(shù)據(jù)庫的時間比通常時間長。
SQL Server 2000 還在任何至少發(fā)生下面兩種情況的數(shù)據(jù)庫上自動執(zhí)行檢查點:
- 日志的活動部分超出了在 recovery interval 服務(wù)器配置選項中指定的時間總量中服務(wù)器可以恢復(fù)的大小。
- 如果數(shù)據(jù)庫處于日志截斷模式并且日志的百分之七十已滿。
當(dāng)下列條件都屬實時,數(shù)據(jù)庫就處于日志截斷模式:
- 數(shù)據(jù)庫使用的是簡單恢復(fù)模式。
- 當(dāng)最后一個引用數(shù)據(jù)庫的 BACKUP DATABASE 語句被執(zhí)行后,下面事件中的某一個將會發(fā)生:
- 引用數(shù)據(jù)庫的 BACKUP LOG 語句將在帶有 NO_LOG 或 TRUNCATE_ONLY 子句的情況下被執(zhí)行。
- 在數(shù)據(jù)庫中執(zhí)行一個無日志記錄的操作,例如執(zhí)行一個無日志記錄的大容量復(fù)制操作或一個無日志記錄的 WRITETEXT 語句。
- 執(zhí)行一個在數(shù)據(jù)庫中添加或刪除文件的 ALTER DATABASE 語句。
權(quán)限
CHECKPOINT 權(quán)限默認(rèn)授予 sysadmin 固定服務(wù)器角色以及 db_owner 和 db_backupoperator 固定數(shù)據(jù)庫角色的成員且不可轉(zhuǎn)讓。