Sql-Server
將(日誌備份)LSN 應用到可用性組的輔助節點
由於主節點的重新啟動和文件共享一起下降,我今天有一個配置為永遠線上的測試實例。我遇到了一堆問題才能再次獲得輔助功能,在此期間我必須將其從 AG 中刪除並再次添加。在此期間(直到現在為止),日誌備份正在主伺服器上執行,當我嘗試將這些備份應用到輔助伺服器時,出現以下錯誤:
無法應用此備份集,因為它位於與數據庫不一致的恢復路徑上。恢復路徑是將數據庫帶到特定恢復點的數據和日誌備份序列。查找要還原的兼容備份,或還原數據庫的其餘部分以匹配此備份集中的恢復點,這會將數據庫還原到不同的時間點。有關恢復路徑的詳細資訊,請參閱 SQL Server 聯機叢書。
當我看著
sys.dm_hadr_database_replica_states
:
last_hardened_lsn
: 43000043815500001當我查看
msdb.dbo.backupset
(備份時間)時:
- 備份時間:上午 9:50
first_lsn
: 43000043783000001last_lsn
: 43000043887200001我的問題是,是否有任何方法可以從 LSN 43000043815500001開始應用此日誌備份?
我可以恢復所有內容然後連接我的 AG,因為這是一個非常小的實例,我只想知道是否有更簡單的方法,而不是從頭開始做所有事情。我在網上查了一下,確實看到了 stopbeforemark 或 stopatmark 的選項,但我正在尋找類似 stopaftermark 的東西。
您有 2 個選項:
簡單的- 因為這是測試實例及其次要實例。
- 停止主節點上的日誌備份。
- 從 AG 中刪除 db/s。
- 如果數據庫很小,請進行差異備份或完整備份。
- 然後使用 norecovery 在輔助設備上恢復。
- 在主節點上進行額外的日誌備份。
- 使用 norecovery 恢復在輔助節點上進行的附加日誌備份。
- 將 dbs 加入 AG。
稍微難一點——
- 在主伺服器上安裝sp_restoregene。
- 從 AG 中刪除 db/s。
- 為有問題的 db/s 執行它,它將生成完整和日誌備份序列
with stopat
。- 在輔助上恢復序列。
- 重新加入AG。
(我在上面說的有點困難,因為如果您沒有進行時間點恢復並且您是第一次這樣做,請先對其進行測試以使其舒適)。
您的 AG 應配置為自動故障轉移,以防主伺服器出現故障。它會變魔術;沒有必要做任何你將來必須做的事情。
您還需要將備份首選項配置為僅在主伺服器上執行。