Sql-Server

刪除或恢復數據庫時,每小時事務日誌作業失敗

  • November 23, 2021

每當我們刪除數據庫或備份並恢復數據庫時,我們都會收到電子郵件提醒我們的每小時事務日誌已失敗(每 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,只要您:

  1. 恢復數據庫
  2. 創建一個新的數據庫

這將確保您擁有完整的備份並且沒有錯誤。

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