在 SQL Server 2016 中預設資料庫檔案路徑為:
假設有一個名稱為 mydb 的資料庫, 在裡面會發現有以下的檔案:
資料庫名稱_log.ldf 就是 Transaction Log (交易紀錄檔),下面的步驟就是來釋放 Transaction Log 檔案的儲存空間。
查看 Transaction Log 使用情況:
範例輸出:
可以發現 mydb 的 log 占了 24,918 MB
在刪除前要先備份檔案
備份 Log 檔案(記得替換路徑):
再次檢查空間,就會發現 Log Space Used 變得很少:
只會減少 Log Space Used ,並不會真的釋放檔案空間,會發現 Log Size 還是很大,可以使用下面的指令限制 Log Size ,達成實際減少儲存空間:
範例輸出:
文章撰寫中...請稍後...
C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA
假設有一個名稱為 mydb 的資料庫, 在裡面會發現有以下的檔案:
mydb.mdf
mydb_log.ldf
資料庫名稱_log.ldf 就是 Transaction Log (交易紀錄檔),下面的步驟就是來釋放 Transaction Log 檔案的儲存空間。
查看 Transaction Log 使用情況:
DBCC SQLPERF(LOGSPACE);
範例輸出:
DBCC SQLPERF(LOGSPACE);
+----------------------+-------------+------------------+------+
|Database Name |Log Size (MB)|Log Space Used (%)|Status|
+----------------------+-------------+------------------+------+
|master |2.2421875 |25.827526 |0 |
|tempdb |7.9921875 |5.3457966 |0 |
|model |7.9921875 |41.642227 |0 |
|msdb |5.5546875 |19.277426 |0 |
|mydb |24918.242 |0.2591522 |0 |
|model_msdb |5.5546875 |18.15225 |0 |
|model_replicatedmaster|1.4921875 |41.492146 |0 |
+----------------------+-------------+------------------+------+
可以發現 mydb 的 log 占了 24,918 MB
在刪除前要先備份檔案
備份 Log 檔案(記得替換路徑):
BACKUP LOG [mydb] TO DISK = 'C:\Backup\mydb_Log.trn';
再次檢查空間,就會發現 Log Space Used 變得很少:
DBCC SQLPERF(LOGSPACE);
只會減少 Log Space Used ,並不會真的釋放檔案空間,會發現 Log Size 還是很大,可以使用下面的指令限制 Log Size ,達成實際減少儲存空間:
USE mydb;
DBCC SHRINKFILE (mydb_log, 1000); -- 設定目標大小,範例為 1,000 MB
範例輸出:
DBCC SQLPERF(LOGSPACE);
+----------------------+-------------+------------------+------+
|Database Name |Log Size (MB)|Log Space Used (%)|Status|
+----------------------+-------------+------------------+------+
|master |2.2421875 |26.437283 |0 |
|tempdb |7.9921875 |5.443548 |0 |
|model |7.9921875 |41.660557 |0 |
|msdb |5.5546875 |20.815752 |0 |
|tertec |999.992 |0.071103625 |0 |
|model_msdb |5.5546875 |18.15225 |0 |
|model_replicatedmaster|1.4921875 |41.492146 |0 |
+----------------------+-------------+------------------+------+
文章撰寫中...請稍後...
感謝教學~
回覆刪除