CLUSTER.LOG(AG)
作为故障转移资源,在SQL Server和windows故障转移集群服务的资源DLL(hadrres.dll)之间有额外的内部交流,DLL无法被SQL Server监控。WSFC log,CLUSTER.LOG可以诊断WSFC集群或者SQL Server Resource DLL的问题。
以下演示了SQL Server和windows集群管理的关系。windows集群管理用来初始化AG资源创建,释放或者状态修改。
1.生产集群日志
有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命令,好处是可以指定所有节点生产到什么目录上。好处是不能指定日志的详细级别。
以下Powershell命令生产最近15分钟的cluster log,并放入到当前日志文件。运行这个命令需要管理员权限
Import-Modeul FailoverClusters
Get-ClusterLog
–TimeSpan 15 –Destination .
2.冗余AlwaysOn日志
可以通过以下操作,设置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
3.AG Resource事件
表如下可以显示CLUSTER.LOG下的关于AG资源的不同事件,更多关于 Resource Hosting Subsystem (RHS) 和 Resource Control Monitor (RCM) in WSFC的信息查看:Resource Hosting Subsystem (RHS) In Windows Server 2008 Failover Clusters.
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) |
3. 隔离的调试AlwaysOn资源DLL
最好的调试配置是,集群独立的使用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.重启集群服务。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2014-11-21 [20141121]无法通过powershell读取sql server性能计数器问题