本文涵蓋鏡像 Azure SQL 資料庫的疑難排解步驟。
關於 Fabric SQL 資料庫自動設定鏡像的故障排除,請參見 Fabric SQL 資料庫的鏡像故障排除。
Fabric 容量或工作區的變更
Fabric 系統容量或工作區的變更可能會影響資料同步。 如需更多資訊,請檢閱 [變更] 對布建容量的鏡像效應。
Azure SQL 資料庫疑難排解
| 原因 | Result | 建議的解決方法 |
|---|---|---|
| 已刪除工作區 | 鏡像會自動停止,並停用 Azure SQL 資料庫中的變更饋送 | 如果 Azure SQL 資料庫上的鏡像仍在作用中,請在 Azure SQL 資料庫上執行下列預存程式: exec sp_change_feed_disable_db;。 |
| 持續性錯誤 | 受影響的資料庫已停用鏡像功能 | 為了確保您的運算資源不受影響並保護來源 Azure SQL 資料庫,當遇到任何持續性錯誤時將停用鏡像。 在重新啟用資料庫鏡像前,先檢視 sys.dm_change_feed_errors 並解決底層錯誤。 |
| 「使用者可以使用 Fabric 外部的應用程式存取儲存在 OneLake 中的資料」設定已停用 | 「複寫器 - 資料表無法達到複寫狀態」 | 啟用租用戶設定 使用者可以使用 Fabric 外部的應用程式存取儲存在 OneLake 中的資料。 |
如需其他疑難排解案例,請參閱 疑難排解 Fabric 鏡像資料庫 - Microsoft Fabric。
用於疑難排解的 T-SQL 查詢
如果您遇到鏡像問題,請使用動態管理檢視 (DMV) 和預存程序來執行下列資料庫層級檢查,以驗證設定。
執行下列查詢,以檢查變更是否正確流動:
SELECT * FROM sys.dm_change_feed_log_scan_sessions;如果 DMV 未顯示處理累加式變更的任何進度,請
sys.dm_change_feed_log_scan_sessions執行下列 T-SQL 查詢,以檢查是否有任何報告的問題:SELECT * FROM sys.dm_change_feed_errors;如果未報告任何問題,請執行下列預存程式,以檢閱鏡像 Azure SQL 資料庫的目前設定。 確認它已正確啟用。
EXEC sp_help_change_feed;在這裡尋找的關鍵欄是
table_name和state。 此外4的任何值都表示潛在問題。如果複製仍然無法運作,請確認正確的 管理身份 物件是否擁有權限。
- 在 Fabric 入口網站中,選取鏡像資料庫項目的「...」省略號選項。
- 選取 [管理許可權 ] 選項。
- 確認受管理身份名稱是否以讀寫權限顯示。
- 確保顯示的 AppID 與你 Azure SQL 資料庫邏輯伺服器的管理身份 ID 相符。
如果需要疑難排解,請聯絡支援人員。
受管理的識別
Azure SQL 邏輯伺服器的系統指派管理身份(SAMI)或使用者指派管理身份(UAMI)必須啟用,且其中一個必須是主要身份。
備註
使用者指派管理身份(UAMI)的支援目前處於預覽階段。
請使用以下 Transact-SQL 查詢來驗證正確的主要身份:
SELECT * FROM sys.dm_server_managed_identities;
如需詳細資訊,請參閱 建立 Azure SQL 資料庫伺服器。
受管理身份的權限
Azure SQL 邏輯伺服器的系統指派管理身份(SAMI)與使用者指派管理身份(UAMI)都必須對 Microsoft Fabric 中的鏡像資料庫項目擁有讀寫權限。
當您從 Fabric 入口網站建立鏡像資料庫時,會自動授與權限。 如果您在設定過程中遇到錯誤 Unable to grant required permission to the source server. User does not have permission to reshare ,請確定您在工作區中具有足夠權限的成員或管理員角色。 當你使用 API 或 CI/CD 建立鏡像資料庫時,務必明確授予權限。
不要移除 Fabric 鏡像資料庫項目上的 SAMI 和/或 UAMI 讀取和寫入權限。 如果你不小心移除了權限,Azure SQL Database 的鏡像功能就不會如預期般運作。 無法從來源資料庫同步任何新資料。
如果你移除了 Azure SQL 資料庫的 SAMI 和/或 UAMI 權限,或權限設定不正確,請參考教學部分的步驟來設定。
與 Microsoft Entra 登入相關的失效許可權錯誤
使用 Microsoft Entra ID 驗證之前,請先檢閱 Microsoft Entra 伺服器主體的限制。
使用 Microsoft Entra 登入建立的資料庫使用者在被賦予角色和權限時可能會遇到延遲。 這可能會導致 Fabric 入口網站中出現下列錯誤:
"The database cannot be mirrored to Fabric due to below error: Unable to retrieve SQL Server managed identities. A database operation failed with the following error: 'VIEW SERVER SECURITY STATE permission was denied on object 'server', database 'master'. The user does not have permission to perform this action.' VIEW SERVER SECURITY STATE permission was denied on object 'server', database 'master'. The user does not have permission to perform this action. SqlErrorNumber=300,Class=14,State=1, Activity ID: ..."
在目前的預覽期間,應該使用下列命令來解決這些問題。
- 從使用者資料庫中刪除使用者。
- 執行
DBCC FREESYSTEMCACHE('TokenAndPermUserStore')以清除資料庫的安全性快取。 - 執行
DBCC FLUSHAUTHCACHE以清除聯合驗證內容快取。 - 在使用者資料庫中,根據登入重新 建立使用者 。
交易記錄使用情況
已啟用鏡像的資料庫的交易記錄使用量可能會持續增加,並阻礙記錄截斷。 一旦交易記錄大小達到定義的最大限制,寫入資料庫就會失敗。 為了避免這種情況,當使用的日誌空間超過已配置日誌空間總計的臨界值時,鏡映會觸發整個資料庫的自動重新植入。 若要診斷此問題並瞭解自動重新栽種,請參閱 Azure SQL 資料庫的 Fabric 鏡像資料庫自動重新栽種。
重新播種已自動開始
Azure SQL 資料庫的結構鏡像可以在特定條件下自動重新設定,無論是在個別資料表層級或整個資料庫。 若要深入瞭解,請 從 Azure SQL 資料庫自動重新植入 Fabric 鏡像資料庫。