SQL Server如何查看AlwaysOn的Failover記錄信息
2025-01-10 11:11 瀟湘隱者 閱讀(182) 評論(1) 收藏 舉報SQL Server AlwaysOn發生了故障轉移(Failover)后,我們如何查看AlwaysOn在什么時間點發生故障轉移呢?下面簡單的總結了一些資料。
PowerShell腳本查看
Windows事件日志系統中的事件ID=1641,表示群集角色已從一個節點移動到另一個節點。所以我們可以使用PowerShell腳本獲取 /過濾這類事件ID。
Get-WinEvent -filterHashTable @{logname ='Microsoft-Windows-FailoverClustering/Operational'; id=1641}| sort TimeCreated | ft -AutoSize

--下面是案例
PS C:\Windows\system32> Get-WinEvent -filterHashTable @{logname ='Microsoft-Windows-FailoverClustering/Operational'; id=1641}| sort TimeCreated | ft -AutoSize
ProviderName: Microsoft-Windows-FailoverClustering
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
12/27/2024 2:06:36 PM 1641 Information Clustered role '*******UAT' is moving from cluster node '***dbu04' to cluster node '***dbu05'.
12/27/2024 2:08:07 PM 1641 Information Clustered role '*******UAT' is moving from cluster node '***dbu05' to cluster node '***dbu04'.
12/30/2024 9:20:35 AM 1641 Information Clustered role '*******UAT' is moving from cluster node '***dbu04' to cluster node '***dbu06'.
12/30/2024 9:21:35 AM 1641 Information Clustered role '*******UAT' is moving from cluster node '***dbu06' to cluster node '***dbu04'.
12/30/2024 9:45:35 AM 1641 Information Clustered role '*******UAT' is moving from cluster node '***dbu04' to cluster node '***dbu06'.
12/30/2024 10:08:55 AM 1641 Information Clustered role '*******UAT' is moving from cluster node '***dbu06' to cluster node '***dbu04'.
12/30/2024 10:11:21 AM 1641 Information Clustered role '*******UAT' is moving from cluster node '***dbu04' to cluster node '***dbu06'.
PS C:\Windows\system32>
SQL腳本查詢日志
WITH CTE_AG_XEL AS (
SELECT object_name
, CONVERT(XML, event_data) AS data
FROM sys.fn_xe_file_target_read_file('AlwaysOn*.xel', null, null, null)
WHERE object_name = 'error_reported'
),
MSG_DTL AS
(
SELECT data.value('(/event/@timestamp)[1]','datetime') AS [event_timestamp],
data.value('(/event/data[@name=''error_number''])[1]','int') AS [error_number],
data.value('(/event/data[@name=''message''])[1]','varchar(max)') AS [message]
FROM CTE_AG_XEL
WHERE data.value('(/event/data[@name=''error_number''])[1]','int') = 1480
)
SELECT DATEADD(HOUR, DATEDIFF(HOUR, GETUTCDATE(), GETDATE()), event_timestamp) AS event_timestamp
, [error_number]
, [message]
FROM MSG_DTL
ORDER BY event_timestamp DESC;

掃描上面二維碼關注我
如果你真心覺得文章寫得不錯,而且對你有所幫助,那就不妨幫忙“推薦"一下,您的“推薦”和”打賞“將是我最大的寫作動力!
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接.
浙公網安備 33010602011771號