天天看點

[AlwaysOn Availability Groups]CLUSTER.LOG(AG)CLUSTER.LOG(AG) 2.備援AlwaysOn日志 3.AG Resource事件 3. 隔離的調試AlwaysOn資源DLL

作為故障轉移資源,在SQL Server和windows故障轉移叢集服務的資源DLL(hadrres.dll)之間有額外的内部交流,DLL無法被SQL Server監控。WSFC log,CLUSTER.LOG可以診斷WSFC叢集或者SQL Server Resource DLL的問題。

以下示範了SQL Server和windows叢集管理的關系。windows叢集管理用來初始化AG資源建立,釋放或者狀态修改。

有2個方式生産叢集日志:

2.使用Get-ClusterLog

powershell指令,好處是可以指定所有節點生産到什麼目錄上。好處是不能指定日志的詳細級别。

以下Powershell指令生産最近15分鐘的cluster log,并放入到目前日志檔案。運作這個指令需要管理者權限

Import-Modeul FailoverClusters

Get-ClusterLog

–TimeSpan 15 –Destination .

可以通過以下操作,設定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 online

表如下可以顯示CLUSTER.LOG下的關于AG資源的不同僚件,更多關于 Resource Hosting Subsystem (RHS) 和 Resource Control

Identifier

Source

Example from CLUSTER.LOG

Messages prefixed with RES and '[hadrag]'

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.重新開機叢集服務。