刪除或恢復數據庫時,每小時事務日誌作業失敗
每當我們刪除數據庫或備份並恢復數據庫時,我們都會收到電子郵件提醒我們的每小時事務日誌已失敗(每 30 分鐘記錄一次日誌)。之後的每個日誌都失敗了,為了解決這個問題,我們必須手動執行每天執行的完整數據庫備份作業,並且日誌再次開始工作。
這非常令人沮喪。為什麼會發生這種情況,我們如何防止它發生?
我們正在使用 MS SQL Server 2016 和 MS SQL Server 2019
這完全是意料之中的。
在您可以創建第一個日誌備份之前,您必須創建一個完整備份。
這是因為你破壞了 LSN 鏈。每當您在完全恢復模式下創建或替換數據庫時,您必須立即進行完全備份才能對該數據庫進行日誌備份。但其他數據庫不受影響。
您可以使用以下查詢來確定是否可以進行日誌備份
select case when d.recovery_model = 3 or last_log_backup_lsn is not null then 1 else 0 as IsBackupable from sys.databases d join sys.database_recovery_status r on r.database_id = d.database_id where d.database_id > 4 -- not system and d.state = 0 -- "online" ;
您使用的是什麼備份解決方案?
一些供應商允許您根據數據庫的狀態提高備份級別。
Ola Hallengren 的維護解決方案
Ola Hallengren 的maintenancesolution.sql有一個名為ChangeBackupType的參數,用於 SQL Server 備份過程,記錄如下:
@ChangeBackupType
如果無法執行差異備份或事務日誌備份,請更改備份類型。
因此,如果您創建數據庫或恢復數據庫並且不存在以前的 FULL 備份,則該過程將自動將 TLOG 備份提升為 FULL 備份。
參考: SQL Server 備份(Ola Hallengren | SQL Server 維護解決方案)
Commvault Simpana - SQL Server Sublcient
Commvault 的 SQL Server 子客戶端具有自動將非完整備份轉換為完整備份的配置選項
將非完整備份自動轉換為完整備份
- 子客戶端的第一次備份操作。
- 在這些數據庫上執行以下還原作業後,在數據庫上執行備份操作:
+ 時間點還原 + 交易標記恢復 + 部分或分段恢復
- 將數據庫的恢復模式從簡單切換到完整或批量記錄後,備份操作在該數據庫上執行。
參考: 將非完整備份自動轉換為完整備份(需要 Commvault 支持/登錄)
您的環境
根據您的備份解決方案/供應商/供應商,您將希望備份級別自動從 TLOG 提升到 FULL,只要您:
- 恢復數據庫
- 創建一個新的數據庫
這將確保您擁有完整的備份並且沒有錯誤。