Sql-Server

為什麼我無法使用 fn_dump_dblog 讀取我的事務日誌備份文件?

  • January 20, 2016

我正在使用sqlskills.com 上的這個部落格作為練習在事務日誌備份中查找相關 LSN 以進行時間點恢復的指南。

備份事務日誌後,我嘗試使用以下命令讀取它:

SELECT COUNT(*) FROM fn_dump_dblog (
NULL, NULL, 'DISK', 1, 'D:\TEMP\test_tlog2.bak',
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT);

我收到以下錯誤:

消息 615,級別 21,狀態 1,第 1 行找不到數據庫 ID 0,名稱“0”。數據庫可能處於離線狀態。等待幾分鐘,然後重試。

數據庫 id 不是 0,它不是離線的,我沒有看到任何我失去的參數或對函式的更改。我可以查詢數據庫,我可以使用內容選項從 SSMS 備份中查看 tlog 備份文件,顯示正確的媒體集 1。

Microsoft SQL Server 2008 R2 (SP2) - 10.50.4263.0 (X64) 2012 年 8 月 23 日 15:56:56 版權所有 (c) Microsoft Corporation Enterprise Edition (64-bit) o​​n Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor) )

我錯過了一些基本的東西嗎?

@Alan 請通過禁用審計檢查一次。

該伺服器在數據庫上有一個 AUDIT。如果啟用了審核,您將收到該錯誤。如果您禁用審核,查詢將執行良好。

您可以嘗試此處說明的步驟。另一方面,有一個 SQL Server 審計工具ApexSQL Log可以幫助您通過 GUI 找到相關的 LSN,而無需使用 T-SQL

免責聲明:我在 ApexSQL 擔任產品支持工程師

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