SQL SERVER 2012斷日誌

來源:互聯網
上載者:User

標籤:des   blog   http   io   ar   os   使用   sp   檔案   

有一個SQL2012庫的日誌達到了100G左右,平時開發人員根本沒有做過交易記錄備份,而磁碟空間已經快滿了。所以,只能截斷它。但是,由於從2K8以後,SQL SERVER好像不再提供 truncate_only和no_log功能了,而這個伺服器的磁碟空間也不夠。所以,只能採用切換到簡單復原模式方式,來先將已經完成的事務truncate了。然後shrik記錄檔來回收空間了。

--查詢交易記錄的狀態,可以看到是LOG_BACKUP狀態,說明需要備份日誌。

--http://msdn.microsoft.com/zh-cn/library/ms190925.aspx#Truncation

select name,log_reuse_wait_desc from sys.databases

--查看LOG使用方式

dbcc sqlperf(LOGSPACE)--已經使用的百分比

dbcc loginfo --查看status列基本上都是2表示不可以重用,只有0時候才可以重新使用。

--切換到簡單復原模式

alter database test set recovery simple with no_wait--再次使用dbcc loginfo 查看,可以看到很多status原來是2的已經變為0.

--切回到FULL

alter database test set FULL simple with no_wait

--這個時候你可以試著插入資料,觀看status的值。你會發現它雖然恢複模型已經切回FULL,但是,它的交易記錄使用方式還是SIMPLE模式,也就是還可以重新使用已經提交日誌空間。這個時候,我們只有做一個全庫備份才可以真正切回FULL模式。(記得好像如果建立一個資料庫也有這個情況。只有建完以後,馬上做一個全庫備份以後,才是真正的FULL模式。)

--這個時候,如果你想通過shrink記錄檔來縮小檔案會發現不起做用。只有你做完以後記錄備份後,再去shrik才可以功能。

backup log test to disk=‘d:\test.log‘

DBCC SHRINKFILE (N‘Test_log‘ , 0, TRUNCATEONLY)

 參考資料:

簡介資料庫記錄檔的增長

SQL Server 何時將“髒頁”回寫到硬碟

SQL SERVER 2012斷日誌

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.