1. 程式人生 > >SQL Server中事務日誌已滿的原因以及解決辦法

SQL Server中事務日誌已滿的原因以及解決辦法

錯誤描述:資料庫的事務日誌已滿。若要查明無法重用日誌中的空間的原因 ,請參閱sys.databases 中的 log_reuse_wait_desc 列 。

  首先引入一下事務日誌的概念(來自百度百科):

  事務日誌是一個與資料庫檔案分開的檔案。它儲存對資料庫進行的所有更改,並全部記錄插入、更新、刪除、提交、回退和資料庫模式變化。事務日誌還稱作前滾日誌或重做日誌。

  事務日誌是備份和恢復的重要元件,也是使用 SQL Remote 或 [複製代理] 複製資料所必需的。

  在預設情況下,所有資料庫都使用事務日誌。事務日誌的使用是可選的,但是,除非您因特殊原因而不使用,否則您應始終使用它。執行帶有事務日誌的資料庫可提供更強的故障保護功能、更好的效能以及資料複製功能。

  引發異常的原因:

  a.未提交的事務 

  b.非常大的事務 

  c.操作:DBCC DBREINDEX 和 CREATE INDEX 

  d.在從事務日誌備份還原時 

  e.客戶端應用程式不處理所有結果 

  f.查詢在事務日誌完成擴充套件之前超時,您收到假的“Log Full”錯誤訊息 

  g.未複製的事務

  解決辦法:

  1.釋放磁碟空間(菜鳥適用);

  2.把資料庫移到記憶體充足的磁碟(原理同上);

  3.清空日誌:DUMP TRANSACTION 庫名 WITH NO_LOG;

  4.截斷事務日誌:BACKUP LOG 庫名 WITH NO_LOG;

  遇到問題才是我們進步的機會,這些都是從網上搜索的一些解決辦法,希望可以幫助到您!