Sql-Server

在 sql server 中恢復主伺服器上的輔助備份文件

  • February 22, 2022

我想在主副本伺服器上以還原模式在僅複製完整備份上還原日誌備份文件,這些備份是從輔助副本中獲取的。我只在輔助副本上進行了完整備份,然後在主副本上進行了 .trn 備份文件(它進行了完整備份)。來自一台伺服器的完整和 trn 文件備份,但是當伺服器處於輔助模式時進行了完整備份,而當伺服器處於主備份時進行了 trn 備份,我想在故障轉移後在輔助副本上以恢復模式恢復它們。我想用手在集群中添加數據庫,因為我們的數據庫很大

當它們在主伺服器上恢復時出錯,錯誤是

此備份集中的日誌從 LSN 38202000004450500001 開始,該日誌太新,無法應用於數據庫。可以還原包含 LSN 38167000000015500001 的早期日誌備份。

在您進行備份(完整和日誌)的伺服器上,您可以執行以下查詢以跟踪備份鏈。

database_backup_lsn是日誌備份所屬數據庫的lsn

First_lsn必須與last_lsn匹配。

如果您使用 SQL 進行備份,則在 physical_device_name 中您將找到備份文件的更新檔。也許你有額外的備份工作,你有兩個備份文件的位置。

SELECT   
  database_name
  ,name
  ,backup_size
  ,first_lsn
  ,last_lsn
  ,checkpoint_lsn
  ,database_backup_lsn
  ,backup_start_date
  ,backup_finish_date
  ,msdb.dbo.backupmediafamily.physical_device_name
FROM msdb.dbo.backupset
INNER JOIN msdb.dbo.backupmediafamily ON msdb.dbo.backupset.media_set_id = msdb.dbo.backupmediafamily.media_set_id

查看您收到的錯誤消息…

此備份集中的日誌從 LSN 38202000004450500001 開始,該日誌太新,無法應用於數據庫。可以還原包含 LSN 38167000000015500001 的早期日誌備份。

這表明在您嘗試還原的日誌備份之前進行了較早的日誌備份。SQL Server 需要 LSN 38167000000015500001。但是,您正在嘗試還原 38202000004450500001。此日誌備份包含的 LSN 比 SQL Server 預期的要高。日誌備份是連續的,您必須按照它們被備份的順序來恢復它們。如果您缺少集合中的任何日誌備份,那麼您能夠成功還原的最後一個連續日誌備份將成為您可以還原到的最新時間點。

此外,如果您在可用性組中的多個副本上進行日誌備份,請注意日誌備份鏈會在可用性組中的所有副本中保持不變。在這種情況下,您需要收集自完整備份以來在所有副本上進行的所有日誌備份,並以正確的順序恢復它們。

我在您的場景中看到的最常見問題是有人進行手動日誌備份以嘗試還原到輔助副本,但他們的日誌備份作業仍在執行。然後,該作業在他們手動進行的備份之前或之後進行日誌備份。

您可能遇到的另一個問題是您同時在多個副本上進行日誌備份。

只有您會知道您的所有日誌備份是在哪裡進行的,或者多久進行一次。在嘗試為輔助副本設定種子時,請嘗試禁用任何日誌備份作業。然後進行完整備份和日誌備份,看看是否遇到相同的錯誤。

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