事務日誌文件

標籤: 暫無標籤

11

更新時間: 2013-09-01

廣告

事務日誌文件 -簡介

  事務日誌文件Transaction Log File,擴展名為ldf,它是資料庫結構中非常重要卻又常被忽視的部分。它是用來記錄資料庫更新情況的文件,它可以記錄針對資料庫的任何操作,並將記錄的結果保存到獨立的文件中。對於每一次資料庫更新的過程,事務日誌文件都有非常全面的記錄。根據這些記錄可以恢復資料庫更新前的狀態。

作用

  出於性能上的考慮,SQL Server將用戶的改動存入緩存中,這些改變會立即寫入事務日誌,但不會立即寫入數據文件。事物日誌會通過一個標記點來確定某個事物是否已將緩存中的數據寫入數據文件。當SQL Server重啟后,它會查看日誌中最新的標記點,並將這個標記點後面的事物記錄抹去,因為這些事物記錄並沒有真正的將緩存中的數據寫入數據文件。這可以防止那些中斷的交易修改數據文件。

會出現的狀況

  一般情況下,在能夠容納兩次事務日誌截斷之間發生的最大數量的事務時,事務日誌的大小是穩定的,事務日誌截斷由檢查點或者事務日誌備份觸發。

  然而,在某些情況下,事務日誌可能會變得非常大,以致用盡空間或變滿。通常,在事務日誌文件佔盡可用磁碟空間且不能再擴展時,您將收到如下錯誤消息:

  Error:9002, Severity:17, State:2

  The log file for database 』%.*ls』 is full.

  除了出現此錯誤消息之外,SQL Server 還可能因為缺少事務日誌擴展空間而將資料庫標記為 SUSPECT。有關如何從此情形中恢復的其他信息,請參見 SQL Server 聯機幫助中的「磁碟空間不足」主題。

  另外,事務日誌擴展可能導致下列情形:

  · 非常大的事務日誌文件。

  · 事務可能會失敗並可能開始回滾。

  · 事務可能會用很長時間才能完成。

  · 可能發生性能問題。

  · 可能發生阻塞現象。

  原因

  事務日誌擴展可能由於以下原因或情形而發生:

  · 未提交的事務

  · 非常大的事務

  · 操作:DBCC DBREINDEX 和 CREATE INDEX

  · 在從事務日誌備份還原時

  · 客戶端應用程序不處理所有結果

  · 查詢在事務日誌完成擴展之前超時,您收到假的「Log Full」錯誤消息

  · 未複製的事務

廣告

廣告