強(qiáng)制將當(dāng)前數(shù)據(jù)庫的所有臟頁寫到磁盤上。臟頁是指在輸入到高速緩沖存儲器后被修改的數(shù)據(jù)或日志頁,但這些修改還沒有寫到磁盤上。有關(guān)日志截?cái)嗟母嘈畔?,請參?A HREF="JavaScript:hhobj_1.Click()">截?cái)嗍聞?wù)日志。
語法
CHECKPOINT
注釋
CHECKPOINT 語句可在后來的恢復(fù)中節(jié)省時(shí)間,方法是創(chuàng)建一個點(diǎn)以確保所有對數(shù)據(jù)和日志頁的修改都寫到磁盤上。
檢查點(diǎn)也會在下列情況中出現(xiàn):
- 當(dāng)用 ALTER DATABASE 更改了某數(shù)據(jù)庫選項(xiàng)時(shí)。檢查點(diǎn)在更改選項(xiàng)的數(shù)據(jù)庫中執(zhí)行。
- 當(dāng)服務(wù)器停止時(shí),在服務(wù)器上的每個數(shù)據(jù)庫中執(zhí)行檢查點(diǎn)。停止每個數(shù)據(jù)庫 Microsoft® SQL Server™ 2000 檢查點(diǎn)的方法是:
- 使用 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í)行檢查點(diǎn)。這可能會導(dǎo)致后來重新啟動以恢復(fù)服務(wù)器上的數(shù)據(jù)庫的時(shí)間比通常時(shí)間長。
SQL Server 2000 還在任何至少發(fā)生下面兩種情況的數(shù)據(jù)庫上自動執(zhí)行檢查點(diǎn):
- 日志的活動部分超出了在 recovery interval 服務(wù)器配置選項(xiàng)中指定的時(shí)間總量中服務(wù)器可以恢復(fù)的大小。
- 如果數(shù)據(jù)庫處于日志截?cái)嗄J讲⑶胰罩镜陌俜种呤褲M。
當(dāng)下列條件都屬實(shí)時(shí),數(shù)據(jù)庫就處于日志截?cái)嗄J剑?br />
- 數(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)讓。