做爲故障轉移資源,在SQL Server和windows故障轉移集羣服務的資源DLL(hadrres.dll)之間有額外的內部交流,DLL沒法被SQL Server監控。WSFC log,CLUSTER.LOG能夠診斷WSFC集羣或者SQL Server Resource DLL的問題。web
如下演示了SQL Server和windows集羣管理的關係。windows集羣管理用來初始化AG資源建立,釋放或者狀態修改。shell
有2個方式生產集羣日誌:
1.在命令行使用cluster /log /g命令。集羣日誌會生成在\windows\cluster\reports目錄的每一個WSFC節點下。這個方法的有點是你能夠指定生成日誌詳細程度的級別,經過/level選項。壞處是不能指定生成什麼目錄下面,具體能夠看: How to create the cluster.log in Windows Server 2008 Failover Clustering.
2.使用Get-ClusterLog powershell命令,好處是能夠指定全部節點生產到什麼目錄上。好處是不能指定日誌的詳細級別。windows
如下Powershell命令生產最近15分鐘的cluster log,並放入到當前日誌文件。運行這個命令須要管理員權限
Import-Modeul FailoverClusters
Get-ClusterLog –TimeSpan 15 –Destination .app
能夠經過如下操做,設置CLUSTER.LOG的冗餘程度:
1.啓動故障轉移集羣管理器
2.展開集羣和服務和應用節點,點擊AG名
3.右擊AG資源點擊屬性
4.點擊屬性tab
5.修改VerboseLogging屬性,默認爲0,取值從0到2.
6.點擊肯定
7.右擊AG資源點擊,Take this resource offline
8. 右擊AG資源點擊,Bring this resource onlinethis
表以下能夠顯示CLUSTER.LOG下的關於AG資源的不一樣事件,更多關於 Resource Hosting Subsystem (RHS) 和 Resource Control Monitor (RCM) in WSFC的信息查看:Resource Hosting Subsystem (RHS) In Windows Server 2008 Failover Clusters.spa
Identifier命令行 |
Source調試 |
Example from CLUSTER.LOG日誌 |
Messages prefixed with RES and '[hadrag]'orm |
hadrres.dll (AlwaysOn Resource DLL) |
00002cc4.00001264::2011/08/05-13:47:42.543 INFO [RES] SQL Server Availability Group <ag>: [hadrag] Offline request. 00002cc4.00003384::2011/08/05-13:47:42.558 ERR [RES] SQL Server Availability Group <ag>: [hadrag] Lease Thread terminated 00002cc4.00003384::2011/08/05-13:47:42.605 INFO [RES] SQL Server Availability Group <ag>: [hadrag] Free SQL statement 00002cc4.00003384::2011/08/05-13:47:42.902 INFO [RES] SQL Server Availability Group <ag>: [hadrag] Disconnect from SQL Server |
Messages prefixed with [RHS] |
RHS.EXE (Resource Hosting Subsystem, host process of hadrres.dll) |
00000c40.00000a34::2011/08/10-18:42:29.498 INFO [RHS] Resource ag has come offline. RHS is about to report resource status to RCM. |
Messages prefixed with [RCM] |
Resource Control Monitor (Cluster Service) |
000011d0.00000f80::2011/08/05-13:47:42.480 INFO [RCM] rcm::RcmGroup::Move: Bringing group 'ag' offline first... 000011d0.00000f80::2011/08/05-13:47:42.496 INFO [RCM] TransitionToState(ag) Online-->OfflineCallIssued. |
RcmApi/ClusAPI |
An API call, which mostly means SQL Server is requesting the action |
000011d0.00000f80::2011/08/05-13:47:42.465 INFO [RCM] rcm::RcmApi::MoveGroup: (ag, 2) |
最好的調試配置是,集羣獨立的使用AlwaysOn資源DLL(hadrres.dll)。默認WSFC集羣全部的資源DLL在獨立的實例rhs.exe上運行。全部集羣裏的資源會共享給通一個rhs.exe實例。當你試圖使用調試器調試hadrres.dll使用定點暫停可能會致使其餘共享了rhs.exe.的實例也中斷了。當你在集羣中使用多個AG組,當你在調試器定點調試,同樣的配置會致使全部的AG都會中斷。
爲了隔離其餘資源DLL,包括其餘AG,在獨立的rhs.exe使用如下步驟:
1.打開註冊表,找到HKEY_LOCAL_MACHINE\Cluster\Resources。這個key包含了全部資源的key,每一個都有不一樣的GUID。
2.找到一個key包含了AG名的。
3.修改SeparateMonitor=1 4.重啓集羣服務。