茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1671184 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
F09_532.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2019/8/7 10:28:21

本文將介紹資料庫交易記錄已滿的可能解決方式。

問題描述

當您嘗試存取SQL Server 時發生【資料庫'db name'的交易記錄已滿。如果要了解為何無法重複使用記錄中的空間,請參閱sys.databases中的log_reuse_wait_desc資料行】,從 SQL Server 的記錄檔檢視器,您會看到類似下圖的記錄。

實際檢查交易記錄檔所使用的磁碟機似乎還有足夠的空間可供使用,為什麼會發生這樣的問題呢? KB 317375 指出可能的原因如下:

實作步驟

若您想要了解是什麼原因造成交易記錄無法重複使用,必須強制截斷或清空,您可以依照錯誤訊息的提示來查詢 sys.databases 系統檢視的 log_reuse_wait_desc 資料行,該資料行會告訴您目前交易記錄檔的空間正等待進行什麼樣的作業。


NOTHING CHECKPOINT LOG_BACKUP ACTIVE_BACKUP_OR_RESTORE
ACTIVE_TRANSACTION DATABASE_MIRRORING REPLICATION DATABASE_SNAPSHOT_CREATION
LOG_SCAN AVAILABILITY_REPLICA OLDEST_PAGE OTHER_TRANSIENT

但是要解決這個問題,或許您可以直接以下列兩種方式之一來截斷或清空交易記錄。

方法一、使用 T-SQL:您可以利用設定資料庫復原模式為簡單復原模式,來截斷或清空交易記錄。



SET RECOVERY SIMPLE
GO

方法二、使用 SSMS:您也可以在 SSMS 的物件總管中,在發生上述錯誤訊息的資料庫上按滑鼠右鍵選擇【屬性】。

於資料庫屬性視窗左側的選取頁面區塊中點選【選項】,接著設定復原模式為【簡單】,最後按確定,即可截斷或清空記錄檔。

建議除了開發或測試的資料庫使用簡單復原模式以外,正式環境還是在截斷交易記錄之後,還是把復原模式改回來完整,以確保可以使用更多樣的資料庫策略,進而降低資料遺失的機率。

參考資料

執行 SQL Server 之電腦上的交易記錄檔意外地擴充或滿溢


sys.databases (Transact-SQL)

The transaction log for database 'mydatabase' is full. To find out why space in the log cannot be reused, see the log_reuse_wait

交易記錄檔已滿、爆掉;截斷交易記錄檔。


原文出處: 資料庫交易記錄已滿的可能解決方式 | 積沙成塔 - 點部落
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|