Backup--如何快速截斷日志


--在SQL Server 2005 中,可用使用 BACKUP LOG WITH TRUNCATE_ONLY來迅速清理日志,該命令在 SQL Server2008 及更高版本上被去除。

--BACKUP LOG WITH TRUNCATE_ONLY --該語句相當於將數據庫改為簡單恢復模式后又改為完整恢復模式,在該語句運行后至最近一次完整備份區間,數據庫相當於運行在簡單恢復模式下,所有活動日志在 checkpoint后被丟棄,且無法對數據庫進行日志備份。

​ --BACKUP LOG TO DISK='nul' --nul並非null 的錯誤拼寫, nul可以被看成一個虛擬文件,所有寫入到 nul文件里的數據都被丟棄,對 SQL Server而言,nul 與其他真實存在的文件一樣, SQL SERVER會掃描所有活動日志,將該日志格式化后寫入 nul文件,數據寫入到nul文件后被操作系統丟棄,然后由操作系統返回確認信息給 SQL Server,然后將活動日志標記為已日志備份,該活動日志所在空間可被 reuse。 --BACKUP LOG TO DISK='nul' 相當於正常備份日志然后刪除日志文件,並不破壞備份日志鏈。

--總結:在SQL SERVER 2008 及以后版本中,可以通過修改數據庫恢復模式方式來實現 TRUNCATE_ONLY功能,對於數據庫已做鏡像且數據庫日志巨大的情況,如果不需要當前日志,可以使用 BACKUP LOG TO DISK='nul'方式來備份日志然后收縮。

--注意: --1>BACKUP LOG TO DISK='nul' 會導致日志不可用再恢復。


免責聲明!

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



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