2010年6月25日 星期五

MS SQL 交易記錄檔已滿

當操作DB出現"交易記錄檔已滿"時,可用以下兩段srcipt處理
  1. backup log [db name] with no_log
  2. dump transaction [db name] with no_log

1 則留言:

  1. 這幾天,發現DB的log.LDF異常肥大,做了以下處理
    1.在db屬性->選項->復原模式->改成"簡單"(Simple)
    2.檢查db並修復問題
    語法:DBCC CheckDB(DB Name)
    3.清理Log
    語法:DBCC SHRINKDATABASE(DB Name)
    [註]另可將 Logfile 檔案變成指定大小的 size
    DBCC SHRINKFILE ( , )
    ex. DBCC SHRINKFILE(ABC_log,3)

    使用結果感覺良好,另可手動處理,作法如下:
    1.卸離該資料庫
    2.直接刪除該 ldf 檔 (log)
    3.重新附加回來, 系統就會自動建立新的log, 而且只有不到 1M

    順帶一提,log隨平時不太會去注意它,但它的重要性卻不容忽視,如:
    1.不正常斷線或是當機時,當下次重新啟動時 ,您可以從 SQL Server 的 Eventlog 中看到一些有關於 Roll Back or Roll Forward 的處理, 確保資料的一致性。
    2.資料庫的 Backup Tranction Log & Backup File or Filegroup 的時候, Log檔也扮演重要的角色。
    3.Standby Server 架構也是透過 Log 處理的機制達到的。

    回覆刪除