2017-07-16

[PowerShell] Get-ClusterLog: Generate Windows cluster log for troubleshooting (產生 Cluster.log 進行錯誤排除)


對 容錯移轉叢集 執行錯誤排除時,將需要分析 Windows cluster log (Cluster.log)。

可以使用 PowerShell 的 Get-ClusterLog 來產生 全部 或是 指定 節點伺服器的系統記錄檔。

本文以 [SQL Server] AlwaysOn, Error 41131, failover failed,容錯移轉 失敗 為例

逐步帶領各位使用 PowerShell 的 Get-ClusterLog 來產生 Cluster.log,執行 錯誤排除 [NT AUTHORITY\SYSTEM] 帳戶權限不足 的問題。



目的:產生 Failover Cluster log

作業系統:Windows 2008 R2/2012/2012 R2/2016 Cluster

請使用 「系統管理員身分」來啟動 「Windows PowerShell ISE」

提醒:請到各個 Node Server 去檢視  log。


-- 為每個 Node Server 產生 Failover Cluster log,
-- 並存放於預設的本機路徑:C:\Windows\Cluster\Reports
-- -UseLocalTime:採用 LocalTime,若未指定此參數,將使用 Greenwich Mean Time (GMT)。

Get-ClusterLog -Destination . -UseLocalTime

-- 010_執行Get-ClusterLog



-- 011_檢視產生的 Failover_Cluster_log





[PowerShell] Get-ClusterLog: Generate Windows cluster log for troubleshooting


工作01. 使用 [PowerShell] Get-ClusterLog: 產生 Windows cluster log


-- 語法
Get-ClusterLog –Node [SQL Server node name] –TimeSpan 15



-- 範例
Get-ClusterLog –Node AGN02 –TimeSpan 15


-TimeSpan
指定要產生 Cluster.log 的時間間距,以分鐘為單位。
例如:–TimeSpan 15,是指產生最近 15 分鐘內的 Cluster.log。
- Node  指定需要產生 Cluster.log 節點伺服器。
-UseLocalTime採用 LocalTime,若未指定此參數,將使用 Greenwich Mean Time (GMT)

Cluster.log
系統紀錄 Cluster.log 預設是存放在 %WINDIR%\cluster\reports。
例如:C:\Windows\Cluster\Reports。


-- 01_01_PowerShell 產生 Windows cluster log



工作02. 分析 Windows cluster log(Cluster.log)

分析 Cluster.log

搜尋以下文字:
Failed to run diagnostics command.
The user does not have permission to perform this action.

-- 02_檢視Cluster_Log



-- 03_查詢到相關聯的錯誤_The user does not have permission to perform this action.



分析
在 Cluster.log 報告中,可以看到系統紀錄了 權限不足 的問題。
這是因為  [NT AUTHORITY\SYSTEM] 帳戶的權限不足,無法執行 「健全狀況」的偵測,也無法執行 「容錯移轉(Failover) 」。

解決方案

賦予 [NT AUTHORITY\SYSTEM] 帳戶以下權限來解決問題:
  1. Alter Any Availability Group
  2. Connect SQL
  3. View server state
參考



 補充資訊

-- 10_Error_41131



-- 30_SQL_Log



-- 31_發出Failover



-- 32_Error_Reported_02_TO_01




-- 33_RESOLVING_PENDING_FAILOVER



-- 34_state_change



-- 35_Rollback_Failover



-- 36_state_change__SECONDARY_NORMAL



-- 50_SQL_Log



-- 51_發出 Failover





參考文件

[SQL Server] AlwaysOn, Error 41131, failover failed,容錯移轉 失敗
http://sharedderrick.blogspot.tw/2017/07/sql-server-alwayson-error-41131.html

Cannot create a high-availability group in Microsoft SQL Server 2012
https://support.microsoft.com/en-us/help/2847723/cannot-create-a-high-availability-group-in-microsoft-sql-server-2012

Windows Server 2008 R2: Troubleshooting Failover Clusters
https://technet.microsoft.com/en-us/library/hh272674.aspx

Microsoft.FailoverClusters.PowerShell
https://technet.microsoft.com/en-us/library/ee461009.aspx

Get-ClusterLog
https://technet.microsoft.com/itpro/powershell/windows/failoverclusters/get-clusterlog

沒有留言:

張貼留言