Sql-Server

在 NORECOVERY 模式下確定數據庫的 LSN

  • May 12, 2016

我正在將事務日誌恢復到數據庫,但需要一種方法來知道我應該從哪個事務日誌開始。通常我會看到這樣的東西:

此備份集中的日誌在 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

引用自:https://serverfault.com/questions/276330