sys.dm_change_feed_errors(Transact-SQL)

適用於: SQL Server 2022 (16.x) 及以後版本 Azure SQL 資料庫Azure SQL 受控執行個體Azure Synapse Analytics鏡像資料庫 在 Microsoft Fabric中 SQL 資料庫在 Microsoft Fabric

從變更摘要、快照集或累加變更發佈程式傳回最近的錯誤。

使用此動態管理視圖用於:

此視圖僅在前述功能設定完畢且記錄錯誤時回傳列。 否則,視野一片空白。

欄位名稱 資料類型 說明
session_id int 日誌 session_id 讀取器的歷史快取會維護。
source_task tinyint 內部變更摘要工作識別碼。
0 = 未定義
1 = 定時器
2 = 吃子
3 = 發佈
4 = 提交
5 = 快照
table_id int object_id相關資料表的 。
table_group_id uniqueidentifier 數據表群組的唯一標識碼。 它是由設定流程產生的 GUID。
capture_phase_number int 日誌讀取器掃描階段。 如果擷取工作完成,但發佈或提交工作仍在進行中,階段號碼會維持在最後一次掃描(批次處理階段 7)。 如需詳細資訊,請參閱 batch_processing_phase sys.dm_change_feed_log_scan_sessions 本欄不適用於快照。
entry_time datetime 錯誤記錄的日期和時間。 此值會對應至 SQL 錯誤記錄檔中的時間戳。 在 SQL Server 中,這個時間是以當地時間報告。 在 Azure SQL 資料庫 中,時區為 UTC。
error_number int 錯誤訊息的識別碼。
error_severity int 訊息的嚴重性層級,介於 1 到 25 之間。
error_state int 錯誤的狀態編號。
error_message nvarchar(1024) 錯誤的訊息正文。
batch_start_lsn nvarchar(23) 啟動發生錯誤時所處理之數據列的 LSN 值。

0 = 錯誤未在記錄掃描工作階段內發生。
batch_end_lsn nvarchar(23) 發生錯誤時,正在處理之數據列的結束 LSN 值。

0 = 錯誤未在記錄掃描工作階段內發生。
tran_begin_lsn nvarchar(23) Begin_lsn 失敗交易的 。 它是用來處理 NULL 快照錯誤的。
tran_commit_lsn nvarchar(23) 針對發生失敗之變更數據列集中的變更數據列認可 LSN。 它是用來處理 NULL 快照錯誤的。
sequence_value nvarchar(23) 發生錯誤時所處理之數據列的 LSN 值。

0 = 錯誤未在記錄掃描工作階段內發生。
command_id int 無法發佈之變更數據列的命令標識碼。 它是用來處理 NULL 快照錯誤的。

備註

這個DMV顯示在最近64個錯誤紀錄中。 DMV 可能在每個日誌掃描會話中包含多項錯誤,例如對著陸區失敗(寫入變更串流發布變更的暫存儲存失敗)的重試嘗試。 此 DMV 也會顯示快照及增量變更發佈過程中發生的錯誤。

錯誤清單會自動旋轉。 較新的錯誤會推擠較早的條目。 停止發生的錯誤會持續存在,直到有新的錯誤將它們排除或清單完全清除。 錯誤清單會儲存在 SQL 記憶體中,因此像是 SQL 引擎重新啟動或停用變更串流等事件會清除它。

許可

要查詢 sys.dm_change_feed_errors 動態管理檢視,你需要 VIEWDATABASE STATEVIEWDATABASE PERFORMANCE STATE 權限。 如需動態管理檢視許可權的詳細資訊,請參閱 動態管理檢視和函式

在 Fabric SQL 資料庫中,使用者必須在資料庫中獲得 VIEWDATABASE STATE 才能查詢此 DMV。 或者,Fabric 工作區中任何角色的成員都可以查詢此 DMV。

Examples

使用 sys.dm_change_feed_errors 來檢查是否有任何最近的錯誤。

SELECT * 
FROM sys.dm_change_feed_errors 
ORDER BY entry_time DESC;