SQL Server 交易記錄截斷與記錄檔縮減

Acronis Backup 不會在建立磁碟備份後截斷交易記錄。如果您沒有使用 Microsoft SQL Server 的原生備份引擎,或是任何其他會自動管理交易記錄的第三方備份解決方案,您可以使用下列方法管理記錄。

使用 SQL Server Management Studio 進行記錄截斷

您將資料庫切換為簡單復原模式時,交易記錄會自動截斷。

  1. 若要將資料庫切換為簡單復原模式:
    1. 執行 Microsoft SQL Server Management Studio 並連線至執行個體。
    2. 用滑鼠右鍵按一下資料庫,然後按一下 [內容][資料庫屬性] 對話方塊隨即開啟。
    3. [選取頁面] 窗格中,按一下 [選項]
    4. [復原模式] 清單方塊中,選擇 [簡單] 模式清單。
  2. 交易記錄檔將會自動截斷。
  3. 使用步驟 1 所述的方式將資料庫切換回 [完整] 或 [大量記錄] 復原模式。
自動化記錄截斷與縮減

您可以使用指令碼 (並選擇新增記錄檔縮減),來自動化上述截斷程序。如果您將指令碼新增到事後備份命令,記錄將會於備份後立即截斷與縮減。此方法假設您具備 Transact-SQL 指令碼使用技巧,且熟悉 sqlcmd 公用程式。

如需 Transact-SQL 和 sqlcmd 的詳細資訊,請參閱下列文章:

若要自動化單一 SQL 執行個體的交易記錄截斷與縮減

  1. 使用下列範本建立指令碼,以針對執行個體資料庫截斷與縮減記錄檔:

    USE database_name
    ALTER DATABASE 資料庫名稱 SET RECOVERY SIMPLE;
    DBCC SHRINKFILE(記錄檔名稱);
    ALTER DATABASE 資料庫名稱 SET RECOVERY FULL;

    在最後一個字串中,SET RECOVERY 值取決於特定資料庫的原始復原模式,且可以為 FULLBULK_LOGGED

    以下範例為含有兩個資料庫 (TestDB1 和 TestDB2) 的執行個體:

    USE TestDB1;
    ALTER DATABASE TestDB1 SET RECOVERY SIMPLE;
    DBCC SHRINKFILE(TestDB1_log);
    ALTER DATABASE TestDB1 SET RECOVERY FULL;

    USE TestDB2;
    ALTER DATABASE TestDB2 SET RECOVERY SIMPLE;
    DBCC SHRINKFILE(TestDB2_log);
    ALTER DATABASE TestDB2 SET RECOVERY BULK_LOGGED;

  2. 將下列 sqlcmd 命令新增到事後備份命令

    sqlcmd -S myServer\instanceName -i C:\myScript.sql

    其中:

若要自動化多個 SQL 執行個體的交易記錄截斷與縮減

如果您的電腦上有多個執行個體,且想要將上述程序套用到這些執行個體,請如下進行。

  1. 為每個執行個體建立個別的指令碼檔案 (例如 C:\script1.sql 和 C:\script2.sql)。
  2. 建立批次檔案 (例如 C:\truncate.bat),其中並包含用於對應執行個體的命令:

    sqlcmd -S myServer\instance1 -i C:\script1.sql
    sqlcmd -S myServer\instance2 -i C:\script2.sql

  3. 在事後備份命令中,指定批次檔案的路徑。