Sql-Server

MSSQL 日誌傳送是否會自動從兩台伺服器中刪除備份文件?

  • January 10, 2019

Microsoft SQL Server 的日誌傳送功能是否會自動刪除備份文件?我擔心輔助伺服器的硬碟驅動器將達到容量,除非先前恢復的文件被刪除。

我無法在任何地方找到可靠的答案。

日誌傳送使用名為SqlLogShip.exe的執行檔。根據文件,當它作為 LSBackup 作業的一部分執行時,它會刪除主數據庫上定義的保留期之外的舊備份文件:

備份操作在備份目錄中創建日誌備份。然後,sqllogship 應用程序會根據文件保留期清除所有舊的備份文件。接下來,應用程序記錄主伺服器和監控伺服器上備份操作的歷史記錄。最後,應用程序執行 sp_cleanup_log_shipping_history,它根據保留期清除舊的歷史資訊。

當它作為 LSRestore 作業的一部分執行時,它會刪除輔助伺服器上定義的保留期之外的舊備份文件:

在最近的還原點之後創建的目標目錄中的任何備份文件都將還原到輔助數據庫或數據庫。然後,sqllogship 應用程序會根據文件保留期清除所有舊的備份文件。接下來,應用程序記錄輔助伺服器和監控伺服器上恢復操作的歷史記錄。最後,應用程序執行 sp_cleanup_log_shipping_history,它根據保留期清除舊的歷史資訊。

如果您設置了保留期並且 SqlLogShip.exe 正確執行,它應該在主要和次要位置維護日誌文件。

是和否。它不會在恢復後立即刪除,但會在您可以定義的設置保留期後刪除。

儲存過程 sp_change_log_shipping_secondary_primary 允許您設置它,它的文件位於Microsoft Docs

您也可以直接在下表 msdb.dbo.log_shipping_secondary 的欄位 file_retention_period 中設置它,該欄位以分鐘為單位儲存。

UPDATE msdb.dbo.log_shipping_secondary  
SET file_retention_period = 4320 --3 Days
WHERE secondary_id = 'ID_OF_YOUR_SECONDARY'

通過首先在該表上進行選擇以查找要更改的表來查找secondary_id。在此之後,它將清除比複製作業中的保留時間舊的文件。

引用自:https://dba.stackexchange.com/questions/226741