Sql-Server
使用帶 TRUNCATE_ONLY 的備份日誌有多安全
BACKUP LOG db_name WITH TRUNCATE_ONLY
根據標題,在任何 SQL 作業執行的最後一步中使用多少安全?在Google上隨機發現這個程式碼行在使用中可能非常有害。但是怎麼做?我在我的 SQL 作業的最後一步中使用如下程式碼。
BACKUP LOG my_database with Truncate_Only DBCC SHRINKFILE (N'my_database_Data') DBCC SHRINKFILE (N'my_database_Log')
讓我從以下幾個方面簡化問題:
- 在 SQL-Job 中實際執行此程式碼是什麼?它真的有幫助嗎?
- DB-Server 有什麼相關的性能嗎?
- 如果我刪除第一行程式碼(
BACKUP LOG
),它如何生效?- 目前我無法看到相同 SQL-Job 的 SQL-Job 歷史記錄,這是它清除所有日誌的原因嗎?
這可能是基於意見的問題,但仍然讓我們討論您是否可以分享一些想法。
- 在 SQL-Job 中實際執行此程式碼是什麼?它真的有幫助嗎?
SQL 將日誌備份到無處,然後嘗試縮小數據庫的數據和日誌文件。所有這些都是壞主意。將日誌備份到無處意味著您將失去數據庫的時間點恢復,因為您無法恢復日誌的這些部分。有關更多資訊,請參閱此連結。
- DB-Server 有什麼相關的性能嗎?
不斷縮小日誌和數據文件可能會導致性能問題,因為 SQL Server 必鬚根據需要重新增長這些文件,這會導致等待需要額外空間的查詢。
- 如果我刪除第一行程式碼(BACKUP LOG),它如何生效?
在您可以回收日誌中的空間之前,您需要備份日誌中的數據。刪除它意味著您的縮小可能不會釋放太多空間,但是,正如在縮小日誌之前所說的那樣,無論如何都是一個壞主意。
- 目前我無法看到相同 SQL-Job 的 SQL-Job 歷史記錄,這是它清除所有日誌的原因嗎?
不,這無關緊要。您的 SQL 代理歷史記錄很可能是有限的,並且您有一個填寫作業歷史記錄表的高頻作業。請參閱此連結。