在无域控环境下部署SQL Server故障转移群集(FCI)是一种特殊但可行的方案,适用于边缘计算、安全隔离或小型企业环境。以下是关键步骤和注意事项:
一、环境准备
1. 网络配置
- 静态IP:所有节点使用静态IP,避免DHCP依赖。
- 专用心跳网络:建议配置独立的心跳网络(如192.168.10.x/24),禁用NetBIOS和文件共享。
2. 存储配置
- 共享存储:使用iSCSI SAN、FC SAN或Windows Storage Spaces Direct (S2D)。
- 见证磁盘:配置共享见证磁盘或云见证(需外网访问)。
3. 系统要求
- 操作系统:Windows Server 2016/2019/2022(所有节点版本一致)。
- SQL Server版本:企业版或开发版(支持FCI)。
二、创建工作组群集
1. 配置计算机名称和工作组
确保所有节点属于同一工作组(如WORKGROUP),计算机名唯一(如SQLNODE1、SQLNODE2)。
2. 启用故障转移群集功能
# 在所有节点执行
Install-WindowsFeature Failover-Clustering -IncludeManagementTools
3. 创建群集(无域模式)
# 在任一节点执行,替换IP和计算机名
New-Cluster -Name SQLCluster -Node "SQLNODE1","SQLNODE2" -StaticAddress "192.168.1.100" -NoStorage -AdministrativeAccessPoint ActiveDirectoryLess
4. 验证群集
Test-Cluster -Node "SQLNODE1","SQLNODE2" -Include "Inventory", "Network", "Storage"
三、SQL Server安装前准备
1. 配置本地管理员账户
- 在所有节点创建相同的本地管理员账户(如
SQLAdmin
),密码需复杂且一致。 - 将该账户添加到所有节点的
Administrators
组。
2. 配置服务账户
- 在所有节点创建相同的本地账户(如
SQLSvc
)作为SQL Server服务账户。 - 授予该账户以下权限:
- 作为服务登录(本地策略)。
- 对共享存储的完全控制权限。
四、安装SQL Server故障转移群集
1. 安装首个节点
- 运行SQL Server安装程序,选择"安装" > "新建SQL Server故障转移群集安装"。
- 身份验证模式:选择"混合模式",设置SA密码。
- 服务账户:使用本地账户
SQLSvc
。 - 网络配置:指定群集IP地址(如192.168.1.101)。
2. 添加第二个节点
- 运行SQL Server安装程序,选择"安装" > "向SQL Server故障转移群集添加节点"。
- 使用相同的服务账户
SQLSvc
。
五、配置见证(关键步骤)
1. 配置文件共享见证
# 在群集任一节点执行
Set-ClusterQuorum -FileShareWitness "\\SQLNODE1\QuorumShare"
2. 配置云见证(推荐)
# 在Azure门户创建存储账户
# 在群集节点执行
Set-ClusterQuorum -CloudWitness -AccountName "YourStorageAccount" -AccessKey "YourAccessKey"
六、验证群集和SQL FCI
1. 检查群集状态
Get-ClusterNode
Get-ClusterResource
2. 测试故障转移
# 手动故障转移SQL Server资源组
Move-ClusterGroup -Name "SQL Server (MSSQLSERVER)" -Node "SQLNODE2"
七、连接和管理
- 客户端连接:使用群集IP地址(如192.168.1.101)或虚拟网络名称(VNN)。
- SSMS连接:需使用本地管理员账户(如
WORKGROUP\SQLAdmin
)登录。
八、注意事项
- 安全性限制:
- 无域环境下,Kerberos身份验证不可用,需使用NTLM。
- 需定期同步本地账户密码。
- 备份与恢复:
- 配置共享备份位置(如网络共享)。
- 使用本地管理员账户执行备份任务。
- 维护建议:
- 定期检查群集日志(事件查看器 > 应用程序和服务日志 > Microsoft > Windows > FailoverClustering)。
- 监控共享存储健康状态。
九、替代方案(若条件允许)
- 工作组信任模式:使用Windows Server 2016+的工作组信任功能,简化账户管理。
- 创建小型AD环境:部署只读域控制器(RODC),提供有限的AD功能。
通过以上步骤,可在无域控环境下成功部署SQL Server故障转移群集,但需注意安全性和管理复杂度的权衡。建议在生产环境前进行充分测试。