DAT-300-4 SQL Server Failover Cluster 多子网支持和新的故障检测机制 何民 项目经理 微软中国
目标 : SQL Server Failover Clustering 的背景知识与概念介绍 介绍 SQL Server 多子网故障转移集群 (failover clustering) 介绍 SQL Server 的故障检测机制 您将学会 怎样部署 SQL Server 多子网故障转移集群 怎样配置和使用新的 SQL Server 故障检测
SQL Server 故障转移集群概述 多子网集群 SQL Server 故障检测机制
SQL Server Failover Clustering Instance 也称作 SQL Cluster WSFC Node Windows Server Failover Clustering 节点, 组成 WSFC 的物理机戒虚拟机 Resource Group 不同 resource 的组合, 如 SQL Server, network name, IP address, disk VNN(Virtual network name) 也称作 client access point(cap), network name. 对一个 SQL Server Instance, VNN 用亍 client 连接访问 LooksAlive Resource DLL 为 WSFC 提供的回调函数入口, 一般用亍轻量级检查 IsAlive Resource DLL 为 WSFC 提供的回调函数入口, 用亍 resource 检查
Cluster service 通过心跳检测节点故障 检测 缺省 5 次心跳判定故障, 可配置 Cluster service 知道 resource group 目前属亍哪个节点 WSFC 决定 Quorum 仲裁 节点数为偶数时, 通过 witness resource( 磁盘戒 file share) 防止 split brain 情 况 在线 WSFC 根据 failover 策略, 决定新的 resource group owner
基于 Windows Server Failover Clustering (WSFC) 故障转移依赖于共享存储, 如 SAN 共享磁盘 通过 resource DLL 和 WSFC 交互, 在故障发生时停止和重新启动 SQL Server service
clussvc.exe (Cluster Service) rhs.exe (Failover resource host subsystem) sqsrvres.dll (SQL Server resource dll) rhs.exe sqagtres.dll (SQL Server Agent resource dll) rhs.exe sqsrvres.dll sqlservr.exe clussvc.exe rhs.exe sqagtres.dll Service Control Manager rhs.exe sqlagent.exe
SQL Server 故障转移集群概述 多子网集群 SQL Server 故障检测机制
SQL Server 2008 R2 IP: 10.10.10.10 V-LAN Network Name: SqlClus subnet 1 subnet 2 site 1 SAN Replication site 2
SQL Denali Corpnet Network Name: SqlClus OR IP1: 10.10.10.10 IP2: 172.10.11.10 subnet 1 subnet 2 site 1 SAN Replication site 2
演示 多子网 Failover Cluster
SQL 安装 自动检测子网 : 决定 AND 戒 OR 升级 : 保持原有的 IP dependency 命令行 : 接受多个 IP 地址参数 SQL Engine 启动时只绑定在线的 IP 地址 无法绑定的 IP 地址会记录在 ERRORLOG 中
SQL 版本 : ENT, DC, DEV, and EVAL 操作系统版本 : Windows Server 2008 R2 ONLY
Quorum Mode Node and File Share Majority SAN Replication Sync vs. Async 网络延迟 10ms 数据丢失 Network Name TTL 30 60 秒 A A A A A A
SQL Server 故障转移集群概述 多子网集群 SQL Server 故障检测机制
SQL Server 2008 R2
SQL Denali
语法 sp_server_diagnostics [[ @repeat_interval = ] repeat_interval_in_seconds ] 诊断多个内部组件健康状况 : 组件 Query Processing Resource System IO Subsystem Events 说明 Worker thread 耗尽, 无法解开的死锁 Resource pool 内存耗尽, 长时间无法恢复 SQL Server 内部错误, 如 spinlocks 错误, 内存地址错误, 连续出现 dump 磁盘 IO 信息 系统事件
稳定可靠, 即使下列功能故障也可照常工作 Query Processing Storage Engine( 内存分配 文件访问, 事务处理 ) Database-level locking. IO subsystem Access to the page structures.
性能影响 根据内部 benchmark 测试, 即使在非常忙碌的系统上运行, 性能影响不超过 0.1% 用户也可直接调用, 需要 VIEW SERVER STATE 权限
HealthCheckTimeout 新的 private property, 缺省值 60000ms (60 秒 ), 最小值 15000ms (15 秒 ) 定义了 Resource DLL 在没有信息返回时, 最大等待时间 HealthCheckTimeout/3 = @repeat_interval FailureConditionLevel 新的 private property Default level: 3
5 任何内部错误, 触发 Failover / restart 4 中等内部错误, 触发 Failover / restart 3 严重内部错误, 触发 Failover / restart 2 Server 不响应时, 触发 Failover /restart 1 SQL Service 停止时触发 Failover /restart Query Processing 错误 Resource 错误 System 错误 sp_server_diagnostics 无法返回信息 Service 停止运行 0 维护模式, 不触发 Failover / restart
演示 SQL Server 故障检测机制
目标 : SQL Server Failover Clustering 的背景知识与概念介绍 介绍 SQL Server 多子网故障转移集群 (failover clustering) 介绍 SQL Server 的故障检测机制 您将学会 怎样部署 SQL Server 多子网故障转移集群 怎样配置和使用新的 SQL Server 故障检测
疑问和解答
SSIS 焦点小组讨论会 主题 :Troubleshooting ( 故障排除 ) 第二场 : 12 月 3 日 11:30 13:30 ( 供午餐 ) 地点 : Room 305 为了感谢您参与焦点讨论小组会议, 会后我们会提供一份优厚的报酬
感谢您参与此会场! 您的意见与建议对我们非常重要 请您填写反馈表
2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.