共用方式為


疑難排解 SQL Server 公用程式

針對 SQL Server 公用程式問題進行疑難排解可能包括解決失敗的作業,以向 UCP 註冊 SQL Server 的實例、針對失敗的資料收集進行疑難排解,導致 UCP 上受控實例清單檢視中的灰色圖示、降低效能瓶頸,或解決資源健康情況問題。 如需降低 SQL Server UCP 所識別之資源健康情況問題的詳細資訊,請參閱針對 SQL Server 資源健康情況進行疑難排解 (SQL Server 公用程式)

SQL Server 執行個體向 SQL Server 公用程式註冊的作業失敗

如果您連線到 SQL Server 實例以使用 SQL Server 驗證進行註冊,而且您指定屬於與 UCP 所在網域不同的 Active Directory 網域的 Proxy 帳戶,實例驗證會成功,但註冊作業會失敗,並出現下列錯誤訊息:

執行 Transact-SQL 陳述式或批次時發生例外狀況。 (Microsoft.SqlServer.ConnectionInfo)

其他資訊:無法取得 Windows NT 群組/使用者 ' < DomainName\AccountName > ' 的相關資訊,錯誤碼0x5。 (Microsoft SQL Server,錯誤:15404)

這個問題可能會在下列範例狀況中發生:

  1. UCP 為 "Domain_1" 的成員。

  2. 目前使用的是單向網域信任關係:換言之,"Domain_1" 並不受到 "Domain_2" 信任,但是 "Domain_2" 已受到 "Domain_1" 信任。

  3. 要註冊到 SQL Server 公用程式的 SQL Server 實例也是「Domain_1」的成員。

  4. 在註冊作業期間,連線到 SQL Server 實例,以使用 「sa」 進行註冊。 指定 "Domain_2" 的 Proxy 帳戶。

  5. 驗證會成功,但是註冊會失敗。

此問題的因應措施是使用上述範例連線到 SQL Server 的實例,以使用 「sa」 註冊到 SQL Server 公用程式,並提供來自 「Domain_1」 的 Proxy 帳戶。

WMI 驗證失敗

如果 SQL Server 實例上未正確設定 WMI,則建立 UCP 和註冊受控實例作業會顯示警告,但不會封鎖作業。 此外,如果您變更 SQL Server Agent 帳戶設定,讓 SQL Server Agent 沒有必要 WMI 類別的許可權,則受影響受控 SQL Server 實例上的資料收集無法上傳至 UCP。 如此會造成 UCP 中顯示灰色圖示。

失敗的資料收集會導致 SQL Server 受影響受控實例的 UCP 清單檢視中的灰色狀態圖示。 SQL Server 受控實例上的作業歷程記錄顯示,在從 PowerShell 腳本收集) 的步驟 2 (階段資料時,sysutility_mi_collect_and_upload失敗。

簡化的錯誤訊息如下:

命令執行已停止因為 Shell 變數 "ErrorActionPreference" 已設定為 [停止: 拒絕存取]。

錯誤: < 日期時間 (MM/DD/YYYY HH:MM:SS) > :收集 cpu 屬性時攔截到例外狀況。 WMI 查詢可能已經失敗。 警告。

若要解決這個問題,請確認下列組態設定:

  • 在 Windows Server 2003 上,SQL Server Agent 服務必須是 SQL Server 受控實例上 Windows 效能監視群組的一部分。

  • 必須在 SQL Server 的受控實例上啟用及設定 WMI 服務。

  • WMI 存放庫可能會在 SQL Server 的受控實例上損毀。

  • SQL Server 受控實例上的效能程式庫可能遺失或損毀。

若要確認指定的 SQL Server 實例已正確設定為向 UCP 報告資料,請確認在指定的 SQL Server 實例上可以使用下列類別,以及 SQL Server Agent 服務帳戶可存取這些類別:

  • Win32_MountPoint

  • Win32_PerfRawData_PerfProc_Process

  • Win32_PerfRawData_PerfOS_Processor

  • Win32_Processor

  • Win32_Volume

  • Win32_LogicalDisk

您可以在每一個類別上使用 Get-WmiObject PowerShell 指令程式,藉此確認是可以存取每一個類別。 在 SQL Server 的受控實例上執行下列 Cmdlet:

Get-WmiObject Win32_MountPoint -ErrorAction Stop | Out-Null  
Get-WmiObject Win32_PerfRawData_PerfProc_Process -ErrorAction Stop| Out-Null  
Get-WmiObject Win32_PerfRawData_PerfOS_Processor -ErrorAction Stop | Out-Null  
Get-WmiObject Win32_Processor -ErrorAction Stop | Out-Null  
Get-WmiObject Win32_Volume -ErrorAction Stop | Out-Null  
Get-WmiObject Win32_LogicalDisk -ErrorAction Stop | Out-Null  

如需針對 WMI 進行疑難排解的詳細資訊,請參閱 針對 WMI 進行疑難排解。 請注意,這些 SQL Server 公用程式作業中的查詢會於本機執行,因此,無法適用 DCOM 與遠端疑難排解內容。

資料收集失敗

如果 SQL Server 公用程式資料收集事件失敗,請考慮下列可能性:

  • 請不要在 SQL Server 的受控執行個體上變更「公用程式資訊」收集組的任何屬性,也不要手動開啟/關閉資料收集,因為資料收集是由公用程式代理程式作業所控制。

  • WMI 驗證失敗或不受支援。 如需詳細資訊,請參閱本主題稍早的<WMI 驗證失敗>一節。

  • 重新整理受控實例清單檢視中的資料,因為 SQL Server 公用程式中的資料不會自動重新整理。 若要重新整理資料,請以滑鼠右鍵按一下[公用程式總管] 流覽窗格中的 [受控實例] 節點,然後選取 [重新整理],或以滑鼠右鍵按一下清單檢視中的 [SQL Server 實例名稱],然後選取 [重新整理]。 請注意,在已向 UCP 註冊 SQL Server 實例之後,最多可能需要 30 分鐘的時間,資料才會先出現在儀表板和 [公用程式總管] 內容窗格中的檢視點。

  • 使用 SQL Server 組態管理員來確認 SQL Server 的實例正在執行。

  • 如果資料收集或資料上傳因逾時問題而失敗,請更新 MSDB 資料庫中的 dbo.fn_sysutility_mi_get_collect_script() 函數。 特別是在 "Invoke-BulkCopyCommand()" 函數中加入下一行:

    $bulkCopy.BulkCopyTimeout=180  
    

    預設的逾時值是 30 秒。

  • 如果未叢集 SQL Server 實例,請確認 SQL Server Agent 服務正在執行,且服務已設定為在 UCP 和 SQL Server 的受控實例上自動啟動。

  • 確認正在使用有效的帳戶,在 SQL Server 的受控實例上執行資料收集。 例如,密碼可能已過期。 如果 Proxy 密碼已經過期,請在 SSMS 中更新密碼認證,如下所示:

    1. 在 SSMS 的 [物件總管]中,展開 [安全性] 節點,然後展開 [認證] 節點。

    2. 以滑鼠右鍵按一下UtilityAgentProxyCredential_ < GUID >,然後選取 [屬性]。

    3. 在 [認證屬性] 對話方塊中,視需要更新 UtilityAgentProxyCredential_ < GUID >認證的認證。

    4. 按一下 [確認] 以確認變更。

  • 應在 UCP 和 SQL Server 的受控實例上啟用 TCP/IP。 透過 SQL Server 組態管理員啟用 TCP/IP。

  • 您應該啟動 UCP 上的 SQL Server Browser 服務,並將它設定為自動啟動。 如果您的組織防止使用 SQL Server Browser 服務,請使用下列步驟來允許 SQL Server 的受控實例連線到 UCP:

    1. 在 SQL Server 受控實例上的 Windows 工作列上,按一下 [ 開始],然後按一下 [ 執行...]。

    2. 在提供的空間內輸入 "cliconfg.exe",然後按一下 [確定]

    3. 如果系統允許 SQL 用戶端組態公用程式 EXE 啟動,請按一下[繼續]

    4. 在 [ SQL Server 用戶端網路公用程式] 對話方塊中,選取 [ 別名] 索引卷 標,然後按一下 [ 新增...]。

    5. [加入網路程式庫組態] 對話方塊中:

    6. 從網路程式庫清單中指定 TCP/IP。

    7. [伺服器別名] 文字方塊中指定 UCP 的 ComputerName\InstanceName。

    8. [伺服器名稱] 文字方塊中指定 UCP 的 ComputerName。

    9. 取消核取 [動態決定通訊埠] 核取方塊。

    10. [通訊埠編號] 文字方塊中,指定 UCP 接聽的通訊埠編號。

    11. 按一下 [確定] 以儲存變更。

    12. 針對連線到未啟用 SQL Server Browser 服務的 UCP 的每個受控 SQL Server 實例重複這些步驟。

  • 確定 SQL Server 的受控實例已連線到網路。

  • 如果有資料庫具有相同名稱,但在 SQL Server 的受控實例上有不同的區分大小寫設定,則資料庫與其觀點之間的識別可能不正確,導致資料收集失敗。 例如,名為 "MYDATABASE" 的資料庫可能會顯示名為 "MyDatabase" 之資料庫的健全狀態。 在這種情況下,不會產生任何錯誤。 資料收集失敗也可能是因為 UCP 中顯示的其他物件出現大小寫不符的情況,例如資料庫檔案與檔案群組名稱。

  • 如果 SQL Server 的受控實例裝載于 Windows Server 2003 電腦上,則 SQL Server Agent 服務帳戶必須屬於效能監視器使用者安全性群組或本機 Administrators 群組。 否則,資料收集將會失敗,並產生拒絕存取錯誤。 若要將 SQL Server Agent 服務帳戶新增至效能監視器使用者安全性群組,請使用下列步驟:

    1. 開啟 [電腦管理],然後展開 [本機使用者和群組],再展開 [群組]

    2. 以滑鼠右鍵按一下 [效能監視器使用者] ,然後選取 [加入群組]

    3. 按一下 [新增] 。

    4. 輸入用來執行 SQL Server Agent 服務的帳戶,然後按一下 [確定]

    5. 如果在將使用者新增至此群組之前,已向 UCP 註冊 SQL Server 實例,請重新開機 SQL Server Agent 服務。

另請參閱

SQL Server 公用程式的功能與工作
疑難排解 SQL Server 資源健全情況 (SQL Server 公用程式)