全部產品
Search
文件中心

ApsaraDB RDS:RDS SQL Server如何收縮交易記錄

更新時間:Mar 20, 2025

本文針對RDS SQL Server日誌空間充足和不足的情況分別提供交易記錄收縮方案。

說明

阿里雲提醒您:

  • 如果您對執行個體或資料有修改、變更等風險操作,請務必注意執行個體的容災、容錯能力,確保資料安全。

  • 如果您對執行個體(包括但不限於ECS、RDS)等進行配置與資料修改,建議提前建立快照或開啟RDS記錄備份等功能。

  • 如果您在阿里雲平台授權或者提交過登入帳號、密碼等安全資訊,建議您及時修改。

日誌空間充足

如果日誌空間充足,可以通過RDS控制台備份並收縮交易記錄功能來處理,系統將自動通過執行記錄備份和日誌收縮操作來管理和最佳化交易記錄檔的大小。

重要
  • 在進行收縮交易記錄操作時,系統會自動執行一次記錄備份,目的是為了歸檔交易記錄以便本地日誌有更高的機率清理成功。

  • 在進行收縮交易記錄操作前,請先檢查資料庫的日誌重用等待狀態

    • 狀態為NOTHING時,可以嘗試進行收縮,但收縮的大小取決於交易記錄尾部可重用的VLF大小。如果存在活動事務導致尾部VLF狀態無法設定為可重用,可能需要再次進行記錄備份,並等待當前活動事務完成後,重新檢查重用等待狀態,直到狀態為NOTHING為止。

    • 狀態為LOG_BACKUP時,可能會由於存在活動事務,並不一定收縮成功,收縮操作可能需要多次執行才能成功。

    您可前往資料庫管理 > 查看詳情頁面查看記錄檔重用狀態(log_reuse_wait_desc)

  1. 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。

  2. 在左側導覽列單擊備份復原

  3. 單擊備份並收縮交易記錄,單擊確定

    image.png

  4. 收縮完成後,您可前往RDS執行個體詳情頁監控與警示頁面,查看最新的日誌空間情況。

    image

日誌空間不足

如果您的資料庫伺服器提示“交易記錄已滿”,此時無法通過控制台收縮交易記錄,需要您手動執行SQL語句進行處理。收縮交易記錄需要佔用部分日誌空間,所以當日誌處於已滿狀態時只能按命令截斷日誌鏈進行收縮。

使用前須知

  • 以下操作僅適用於緊急狀態下進行,一般建議您先擴容磁碟

  • 原則上不建議將資料庫復原模式修改為SIMPLE模式,這會影響RDS的備份鏈,導致目前時間點之後的所有恢複任務失敗。

  • 對於高可用系列執行個體,需先關閉鏡像,再修改資料庫復原模式。

警告

鏡像關閉和恢複,以及資料庫復原模式的變更操作均為高危風險操作。如需在緊急情況下執行,表示您已瞭解並願意承擔上述風險,請謹慎考慮。

操作步驟

基礎系列執行個體

-- 設定資料庫復原模式為SIMPLE,資料庫日誌鏈會斷開
ALTER DATABASE [資料庫名] SET RECOVERY SIMPLE;

高可用系列執行個體

對於高可用系列執行個體,涉及資料庫鏡像,因此直接執行 ALTER DATABASE 操作會被禁止。請按如下方案執行:

-- 先關閉鏡像
ALTER DATABASE [資料庫名] SET PARTNER OFF;
GO
-- 設定資料庫復原模式為SIMPLE,資料庫日誌鏈會斷開
ALTER DATABASE [資料庫名] SET RECOVERY SIMPLE;

-- 鏡像後續會自動回復,無需您手動設定

系統會將復原模式重設為FULL,不會實際修改資料庫復原模式為SIMPLE,但資料庫日誌鏈會斷開,並返回如下報錯,此報錯不影響日誌鏈的斷開效果,忽略即可

Msg 50000, Level 16, State 1, Procedure ******, Line 46
Login User [Test11] can't change database [TestDb] recovery model.
Msg 3609, Level 16, State 2, Line 2
The transaction ended in the trigger. The batch has been aborted.

常見報錯

  • Q:執行ALTER DATABASE [TestDb] SET RECOVERY SIMPLE後出現如下類似報錯,如何解決?

    訊息 1468,層級 16,狀態 2,第 1 行
    The operation cannot be performed on database "zhttestdb" because it is involved in a database mirroring session or an availability group. Some operations are not allowed on a database that is participating in a database mirroring session or in an availability group.
    訊息 5069,層級 16,狀態 1,第 1 行
    ALTER DATABASE statement failed.
  • A:高可用系列的RDS SQL Server執行個體涉及資料庫鏡像,所以ALTER復原模式操作被禁止。請根據操作步驟處理即可。

相關文檔