Sql-Server
在 NORECOVERY 模式下確定數據庫的 LSN
我正在將事務日誌恢復到數據庫,但需要一種方法來知道我應該從哪個事務日誌開始。通常我會看到這樣的東西:
此備份集中的日誌在 LSN 103000001633300001 處終止,這對於應用到數據庫還為時過早。可以恢復包含 LSN 103000002524300001 的更新日誌備份。
那麼如何以程式方式獲取 LSN 103000002524300001?數據庫處於 NORECOVERY 模式,因此 DBCC LOG 不起作用。我自己有事務日誌的記錄,所以我知道他們的第一個和最後一個 LSN 是什麼。我只是不知道數據庫本身目前所在的位置。
一些 lsn 列位於伺服器級別的sys.master_files中
“redo_start_lsn”列可能只是一張票。
順便說一句,我還沒有嘗試過…
您可以通過以下查詢獲取此資訊:
SELECT TOP 1 b.type, b.first_lsn, b.last_lsn, b.checkpoint_lsn, b.database_backup_lsn FROM msdb..restorehistory a INNER JOIN msdb..backupset b ON a.backup_set_id = b.backup_set_id WHERE a.destination_database_name = 'AV_PROD' ORDER BY restore_date DESC