?SQL Server日志文件不斷增長處理方法 | 鄭州計算機學校_鄭州電腦學校_鄭州電腦培訓

15

09-2013

  先了解SQLServer需要保存的日志記錄:  1、所有沒有經過“檢查點”的日志記錄:  SQLServer定時執行(Checkpoint),保證“臟頁”被寫入硬盤。沒做Checkpoint的,可能是只在內存中修改,數據文件還沒同步。SQLServer要在硬盤的日志文件中有記錄,一邊異常重啟后重新修改。  2、所有沒有提交的事務所產生的日志及其后續的日志記錄:  所有日志都有嚴格順序,不能有跳躍。  3、要做備份的日志記錄:  如果恢復模式不是簡單模式,那么SQLServer會認為用戶是要去備份日志記錄的。所有沒備份的記錄都會保留。  4、有其他需要讀取日志的數據庫功能:  如事務型復制(Transactional Replication)和鏡像。  除以上的類型之外,其他類型會在Checkpoint時做截斷把占用的空間標志為可重用。如果重用空間足夠,是不會報告日志空間已滿。Checkpoint的頻率由服務器的“Recovery Interval”決定,默認為一分鐘左右。  通常日志不斷增長的原因有:  1、數據庫恢復模式不是簡單,但是沒有做日志備份:  在這種模式下,做完整備份和差異備份是不會截斷日志的。  2、數據庫上有一個很長時間都沒有提交的事務:  SQLServer不會干預前端程序的連接遺留事務在SQLServer中的行為。只要不退出,事務會一直存在,直到(此處原為知道,謝謝kalagooooo的細心發現,現以改正過來)前端主動提交或者回滾。此時做日志備份也沒用了。  3、數據庫上有一個很大的事務在運行:  如建立、重建索引。或者insert/delete大量數據。或者是服務器端游標沒有把數據及時取走。  4、數據庫復制或鏡像出了異常  要避免上述現象,來防止日志不斷增長。對于不會做日志備份的數據庫,設為簡單模式即可。如果是完整模式,一定要定期做日志備份。如果鏡像或復制除了問題,要及時處理,如果沒有處理,那么要暫時拆除復制或鏡像。程序設計時,也要避免事務時間過長、過多。  對于日志增長處理:  步驟1:檢查日志現在使用情況和數據庫狀態:  檢查日志使用百分比、恢復模式和日志重用等待狀態。從2005以后,sys.databases加入了log_reuse_wait(log_reuse_wait_desc)來反映不能階段日志的原因Log_reuse_waitLog_reuse_wait_desc說明0NOTHING有可重用的虛擬日志文件1CHECKPOINT上次日志截斷后,未出現檢查點,或者日志頭部尚未跨一個虛擬日志文件移動范圍(所有模式)2LOG_BACKUP要求日志備份將日志表頭前移(非簡單模式)。日志備份完成后,日志標頭將前移,并一些空間可能會變成可重用。3ACTIVE_BACKUP_OR_RESTORE數據庫備份或還原正在進行(所有模式)4ACTIVE_TRANSACTION事務處于活動狀態(所有模式)5DATABASE_MIRRORING數據庫鏡像滯后(完整模式)6REPLICATION在事務復制中,與發布相關的事務仍未傳遞到分發數據庫(僅限于完整模式)7DATABASE_SNAPSHOT_CREATEION正在創建數據庫快照(所有模式)8LOG_SCAN正在進行日志掃描(所有模式)9OTHER_TRANSIENT此值當前未使用

該日志 2013年09月15日發表在網絡安全技術分類下, 通告目前不可用,你可以至底部留下評論。
轉載請注明: SQL Server日志文件不斷增長處理方法 | 鄭州計算機學校_鄭州電腦學校_鄭州電腦培訓
6十1开奖黑龙江