已知問題和對 SQL Server IaaS 代理程式延伸模組進行疑難排解
本文可協助您解決已知問題,並在使用 SQL Server IaaS 代理程式延伸模組時針對錯誤進行疑難排解。
如需延伸模組常見問題的解答,請參閱常見問題。
檢查先決條件
若要避免因不支援的選項或限制而發生錯誤,請確認延伸模組的必要條件。
如果您修復或重新安裝 SQL IaaS 代理程式延伸模組,將不會保留您的設定,而不是授權變更。 如果您已修復或重新安裝延伸模組,則必須重新設定自動備份、自動修補,以及修復或重新安裝之前設定的任何其他服務。
檢查延伸模組的健康情況
您可以在 Azure 入口網站中 SQL 虛擬機器資源的 [概觀] 頁面上的 [延伸模組健全狀態] 下檢查延伸模組的健康情況。
注意
您也可以使用 PowerShell 指令碼來檢查虛擬機器上的延伸模組健全狀態。 您可以在 GitHub 上找到完整指令碼,請參閱<使用 Az PowerShell 取得 SQL IaaS 代理程式延伸模組健全狀態>。
SQL IaaS 代理程式延伸模組的狀態可以是:
- 良好:一切都如預期般運作。
- 失敗:主要 SQL IaaS 代理程式服務未在 SQL Server VM 上未執行。
- 狀況不良:一個或多個子服務發生問題。
如果 SQL IaaS 代理程式延伸模組的狀態為 [狀況不良] 或 [失敗],請檢查 [概觀] 頁面上的 [通知] 以了解更多詳細資料。
修復延伸模組
您的 SQL IaaS 代理程式延伸模組可能會處於失敗狀態。 使用 Azure 入口網站來修復 SQL IaaS 代理程式延伸模組。
若要使用 Azure 入口網站修復延伸模組:
登入 Azure 入口網站。
移至 SQL 虛擬機器資源。
從清單中選取 SQL Server VM。 如果您的 SQL Server VM 未列於其中,代表該 VM 可能尚未向 SQL IaaS 代理程式延伸模組註冊。
選取 [說明] 下的 [SQL IaaS 代理程式延伸模組設定]。
如果您的佈建狀態顯示為 [失敗],請選擇 [修復] 來修復延伸模組。 如果您的狀態為 [成功],您可以勾選 [強制修復] 旁的方塊,以修復延伸模組 (不論狀態為何)。
主要延伸模組服務未執行
SQL IaaS 代理程式延伸模組的主要服務 (Microsoft SQL Server IaaS 代理程式) 處於已停止狀態。 由於此錯誤,SQL IaaS 代理程式延伸模組狀態為失敗。
若要解決此問題條件,請修復此延伸模組。
延伸模組查詢服務未執行
SQL IaaS 代理程式延伸模組使用查詢服務 (Microsoft SQL Server IaaS 查詢服務) 與 SQL Server 通訊。 如果查詢服務處於已停止狀態,依賴與 SQL Server 通訊的功能將無法運作。 由於此錯誤,SQL IaaS 代理程式延伸模組狀態為狀況不良。
若要解決此問題條件,請修復此延伸模組。
SQL Server 並未執行。
SQL Server 服務已停止。 由於此錯誤,SQL IaaS 代理程式延伸模組狀態為狀況不良。
進一步調查,然後重新啟動服務。
延伸模組沒有正確的權限
SQL IaaS 代理程式延伸模組查詢服務 (Microsoft SQL Server IaaS 查詢服務) 使用 NT Service\SQLIaaSExtensionQuery
帳戶查詢 SQL Server 執行個體。 如果從 SQL Server 移除此登入,或者使用者或網域原則變更登入的權限,您會看到延伸模組沒有正確權限的錯誤。 由於此錯誤,SQL IaaS 代理程式延伸模組狀態為狀況不良。
針對使用「最低權限」權限模型的 SQL Server VM,請檢查以確定 NT Service\SQLIaaSExtensionQuery
帳戶具有與每個啟用功能關聯的適當權限。 如果未啟用任何功能,則若 NT Service\SQLIaaSExtensionQuery
登入不存在於 SQL Server 內,或 Microsoft SQL Server IaaS 查詢服務以與 NT Service\SQLIaaSExtensionQuery
不同的使用者名稱執行,您會看到錯誤。
在 2022 年 10 月之前部署的部分 SQL Server VM 可能仍會使用較舊的系統管理員權限模型。 針對這些較舊的 VM,如果 NT Service\SQLIaaSExtensionQuery
不存在,或 SQL Server 內沒有系統管理員權限,或者 Microsoft SQL Server IaaS 查詢服務以與 NT Service\SQLIaaSExtensionQuery
不同的使用者名稱執行,您會看到權限錯誤。
若要解決此錯誤狀況,請確認 SQL Server 中存在該登入,並根據您啟用的功能,該登入具有正確的權限。 您可能需要重新建立登入,以及/或指派正確的權限。 此外,驗證 Microsoft SQL Server IaaS 查詢服務以使用者名稱 NT Service\SQLIaaSExtensionQuery
執行。
錯誤「不支援映像」
下列不受支援的 Azure Marketplace 映像會封鎖 SQL IaaS 代理程式延伸模組註冊:
- Power BI 虛擬機器
- SQL Server Analysis Services
管理的不有效狀態
如果您看到下列錯誤訊息,請修復延伸模組:
The SQL virtual machines resource is not in a valid state for management
基礎虛擬機器無效
如果您看到下列錯誤訊息:
SQL management operations are disabled because the state of underlying virtual machine is invalid
請考慮下列事項:
- SQL VM 可能會停止、解除配置、處於失敗狀態或無法找到。 驗證基礎虛擬機器正在執行。
- 您的 SQL IaaS 代理程式延伸模組可能處於失敗狀態。 修復延伸模組。
從 SQL Server VM 刪除延伸項目,然後如果您執行下列任一動作,請再次向延伸項目註冊 SQL VM:
- 將您的 VM 從一個訂用帳戶移轉至另一個訂用帳戶。
- 變更 SQL Server 的地區設定或定序。
- 變更 SQL Server 執行個體的版本。
- 變更 SQL Server 執行個體的發行版本。
佈建失敗
如果 SQL IaaS 代理程式延伸模組狀態在 Azure 入口網站中顯示為佈建失敗,請修復延伸模組。
如果在 SQL Server 組態管理員中或在虛擬機器層級停用了 TCP/IP,則 SQL IaaS 代理程式擴充功能可能會無法安裝。
入口網站中無法使用 SQL VM 資源
如果已安裝 SQL IaaS 代理程式延伸模組,且 VM 已上線,但Azure 入口網站無法使用 SQL VM 資源,請確認您的 SQL Server 和 SQL Browser 服務已在 VM 內啟動。 如果這無法解決問題,請修復延伸模組。
功能呈現灰色
如果您在 Azure 入口網站中瀏覽至 SQL VM 資源,而有呈現灰色的功能,請確認 SQL VM 是否正在執行,而且您有最新版的 SQL IaaS 代理程式延伸模組。
已變更的服務帳戶
變更與延伸模組相關聯之兩個服務之一的服務帳戶,可能會導致延伸模組失敗或無法預測行為。
這兩個服務應該在下列帳戶下執行:
- Microsoft SQL Server IaaS 代理程式是 SQL IaaS 代理程式延伸模組的主要服務,應該在本機系統帳戶下執行。
- Microsoft SQL Server IaaS 查詢服務是協助程式服務,可協助延伸模組在 SQL Server 內執行查詢,應該在 NT 服務帳戶
NT Service\SqlIaaSExtensionQuery
下執行。
自動註冊失敗
如果您有一些無法自動註冊的 SQL Server VM,請在無法註冊的 VM 上檢查 SQL Server 版本。 當 CEIP 服務偵測到 SQL Server 2016 或更新版本的 Azure VM 時,預設會使用 SQL IaaS 代理程式延伸模組自動註冊 Azure VM。 SQL Server 版本早於 2016 年的 VM 必須個別或批量註冊。
高資源耗用量
如果您注意到 SQL IaaS 代理程式延伸模組耗用非預期的大量 CPU 或記憶體,請確認延伸模組是否為最新版本。 如果是最新版本,請從 services.msc
重新開機 Microsoft SQL Server IaaS 代理程式。
無法擴充磁碟
在下列情況中,無法從 SQL VM 資源的儲存體組態頁面擴充磁碟:
- 如果您解除安裝再重新安裝 SQL IaaS 延伸模組。
- 如果您解除安裝並重新安裝 SQL Server 執行個體。
- 如果您在從 Azure Marketplace 部署 SQL Server 映像時,使用磁碟/存放集區名稱的自訂命名慣例。
- 如果您使用進階 SSDv2 部署 SQL Server VM。
- 如果在 SQL Server 組態管理員中或在虛擬機器層級停用了 TCP/IP。
部署期間磁碟設定呈現灰色
如果您使用非受控磁碟建立 SQL Server VM,則磁碟組態會依照設計呈現灰色。
自動備份停用
如果您的 SQL VM 資源顯示目前已停用自動備份,請檢查您的 SQL Server 執行個體是否已啟用受控備份。 若要使用來自 Azure 入口網站的自動備份,請在 SQL Server 中停用受控備份。
延伸模組在轉換中停滯
SQL IaaS 代理程式延伸模組可能會在下列情節中於轉換狀態中停滯:
- 您已從 SQL Server 登入和/或本機系統管理員群組中移除
NT service\SQLIaaSExtension
服務。 - 這兩個服務中的其中一項會在 services.msc 中停止
- Microsoft SQL Server IaaS 代理程式
- Microsoft SQL Server IaaS 查詢服務
無法在網域控制站上安裝
不支援使用 SQL IaaS 代理程式延伸模組註冊您的網域控制站 SQL Server 執行個體。 向延伸模組註冊會建立使用者 NT Service\SQLIaaSExtension
,由於無法在網域控制站上建立此使用者,因此不支援向 SQL IaaS 代理程式註冊此 VM。
TCP/IP 已停用
SQL IaaS 代理程式擴充功能必須在 SQL Server 組態管理員中啟用 TCP/IP,也必須同時在虛擬機器層級啟用 TCP/IP。 停用 TCP/IP 可能會導致無法預期的行為,例如無法安裝,或某些功能無法如預期般運作。
找不到要設為目標的 SQL 執行個體
錯誤:Unable to find SQL instance to target. Skipping 'NT Service\\SQLIaaSExtensionQuery' removal from SQL logins
是可以放心忽略的警告訊息。
如果您的訂用帳戶已自動註冊,但 Azure 虛擬機器未安裝 SQL Server,則您可能會在 Windows 事件檢視器中看到此訊息,在此情況下,可以放心地忽略這條訊息。
在電腦上找不到服務 MSSQLSERVER
錯誤: SQL Server IaaS Agent: PreReq failure: ErrorCode: NotRetryableUnexpectedError, Message: Service MSSQLSERVER was not found on computer '.'.;The specified service does not exist as an installed service
SQL IaaS 代理程式延伸模組僅適用於一個預設執行個體或一個具名執行個體。 如需詳細資訊,請檢閱多個執行個體支援。
名稱為「MSSQLSERVER」的服務未執行
錯誤: Service with name 'MSSQLSERVER' is not running. Please make sure service 'MSSQLSERVER' is running and retry this operation
檢查 SQL Server 服務是否有預設執行個體正在 VM 內執行,否則修復 IaaS 擴充功能。 如果您有多個 SQL Server 執行個體,SQL IaaS 代理程式擴充功能將無法運作,因為目前不支援多個執行個體。 如需詳細資訊,請檢閱多個執行個體支援。
擴充功能停滯在轉換或佈建失敗狀態
修復 SQL IaaS 代理程式延伸模組。 請確定您只有一個預設執行個體或一個具名執行個體。 如需詳細資訊,請檢閱多個執行個體支援。
拒絕存取 ExtensionLog_0.log
錯誤: EventID:56067 denied access to 'C:\WindowsAzure\Logs\Plugins\Microsoft.SqlServer.Management.SqlIaaSAgent\2.0.x.x\ExtensionLog_0.log'
將 [NT Service\SQLIaaSExtensionQuery]
的權限新增至錯誤中列出的路徑。
無法建立 SQL VM 資源
在下列案例中,將不會建立 SQL 虛擬機器資源:
- 複製虛擬機器
- 使用 Azure Site Recovery
- 從一個訂用帳戶、資源群組或區域移轉至另一個訂用帳戶、資源群組或區域
重新安裝 SQL IaaS 代理程式擴充功能來解決此錯誤。
因客體代理程式/VM 代理程式狀態「未就緒」而失敗
安裝 VM 代理程式擴充功能來解決錯誤。
擴充功能不適用於多個執行個體
這是預期行為。 如需詳細資訊,請檢閱多個執行個體支援。
擴充功能服務耗用更多記憶體/CPU
如果看到此訊息,移除並重新安裝擴充功能以確保 SQL IaaS 代理程式擴充功能是最新版本,或者從 services.msc 重新啟動 SQL IaaS 代理程式擴充功能。
擴充功能不適用於 SQL FCI
這是預期行為。 目前,已註冊 SQL IaaS 代理程式延伸模組之 Azure 虛擬機器上的 SQL Server 容錯移轉叢集執行個體僅支援透過基本註冊提供的數量有限的功能。
相關內容
- 檢閱 SQL IaaS 代理程式延伸模組所提供的權益。
- 手動登錄單一 VM
- 自動註冊訂用帳戶中的所有 VM。
- 檢閱 SQL IaaS 代理程式延伸模組隱私權聲明。
- 檢閱最佳做法檢查清單,以針對效能和安全性進行最佳化。
若要深入了解,請檢閱下列文章: