Skip to content

SQLServer Failover Cluster Instance 安装 ​

FCI 概述 ​

SQLServer Failover Cluster Instance (FCI) 是一种高可用性解决方案,将SQLServer实例安装在Windows Server故障转移集群上。FCI提供了实例级别的故障转移,当一个节点出现故障时,SQLServer实例会自动转移到另一个健康节点,确保业务连续性。

安装前准备 ​

1. 硬件要求 ​

组件最低要求推荐配置
节点数量2个节点2-4个节点
CPU4核处理器8核或更多
内存16 GB32 GB 或更多
存储共享存储(iSCSI、FC或SMB 3.0)企业级SAN或NAS
网络1 Gbps 网卡10 Gbps 网卡

2. 软件要求 ​

  • Windows Server 2016 或更高版本(Datacenter或Standard)
  • .NET Framework 4.7.2 或更高版本
  • Windows故障转移集群功能
  • 共享存储(iSCSI、FC或SMB 3.0)

3. 网络准备 ​

  • 为每个节点配置至少两个网络适配器:
    • 公共网络:用于客户端连接
    • 私有网络:用于节点间通信
  • 配置静态IP地址
  • 确保所有节点加入同一个域

4. 存储准备 ​

  • 配置共享存储:
    • 至少准备3个LUN:数据文件、日志文件和TempDB
    • 格式化LUN为NTFS或ReFS文件系统
    • 为每个LUN分配驱动器号
    • 确保所有节点可以访问共享存储

5. 域准备 ​

  • 创建域账户用于SQLServer服务:
    • SQLServer服务账户
    • SQL Server代理服务账户
    • 这些账户需要具有适当的权限

安装步骤 ​

1. 配置Windows故障转移集群 ​

在所有节点上安装故障转移集群功能 ​

powershell
# 在所有节点上运行
Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools

验证集群配置 ​

powershell
# 在其中一个节点上运行
Test-Cluster -Node Node1, Node2 -Include "Storage", "Network", "System Configuration"

创建故障转移集群 ​

powershell
# 在其中一个节点上运行
New-Cluster -Name ClusterName -Node Node1, Node2 -StaticAddress 192.168.1.100

2. 安装SQLServer FCI ​

启动SQLServer安装向导 ​

  1. 在第一个节点上运行SQLServer安装介质
  2. 选择 安装 选项卡
  3. 选择 全新SQL Server独立安装或向现有安装添加功能

产品密钥和许可条款 ​

  • 输入产品密钥
  • 接受许可条款

功能选择 ​

  • 选择 数据库引擎服务
  • 根据需要选择其他功能

实例配置 ​

  • 选择实例类型:默认实例或命名实例
  • 输入实例ID

服务器配置 ​

  • 服务账户:
    • 为SQLServer服务和SQL Server代理服务指定域账户
    • 设置启动类型为自动
  • 排序规则:建议使用默认排序规则 Chinese_PRC_CI_AS

数据库引擎配置 ​

  • 身份验证模式:
    • 选择混合模式
    • 设置sa密码
    • 添加域管理员组作为SQLServer管理员

集群资源组配置 ​

  • 输入SQLServer网络名称(用于客户端连接)
  • 输入SQLServer实例的IP地址

数据目录配置 ​

  • 将数据文件、日志文件和TempDB配置到共享存储上
  • 确保所有节点可以访问这些路径

完成第一个节点安装 ​

  • 检查安装配置摘要
  • 点击 安装 开始安装
  • 等待安装完成

在其他节点上添加节点 ​

  1. 在第二个节点上运行SQLServer安装介质
  2. 选择 安装 选项卡
  3. 选择 向SQL Server故障转移集群添加节点
  4. 按照向导完成安装
  5. 对所有剩余节点重复此过程

3. 验证FCI安装 ​

检查集群资源 ​

powershell
# 查看集群资源状态
Get-ClusterResource -Cluster ClusterName

# 查看SQLServer资源组
Get-ClusterGroup -Cluster ClusterName | Where-Object {$_.Name -like "*SQL*"}

测试故障转移 ​

  1. 打开故障转移集群管理器
  2. 选择SQLServer资源组
  3. 右键点击,选择 移动 > 选择节点
  4. 选择目标节点,点击 确定
  5. 观察资源组转移过程
  6. 验证SQLServer实例在新节点上正常运行

连接到SQLServer FCI ​

使用SQL Server Management Studio (SSMS) 连接到SQLServer FCI:

  • 服务器名称:SQLServer网络名称\实例名(如果是命名实例)
  • 身份验证:Windows身份验证或SQL Server身份验证

安装后配置 ​

1. 配置SQLServer选项 ​

sql
-- 设置最大内存
EXEC sp_configure 'max server memory (MB)', 24576;
RECONFIGURE;

-- 配置TempDB
-- 建议为每个CPU核心创建一个TempDB文件,最多8个
ALTER DATABASE tempdb ADD FILE (NAME = N'tempdev2', FILENAME = N'F:\tempdb\tempdev2.ndf', SIZE = 256MB, FILEGROWTH = 128MB);
-- 重复添加更多文件,根据CPU核心数

2. 配置数据库邮件 ​

用于发送告警和通知:

sql
-- 启用数据库邮件功能
EXEC sp_configure 'Database Mail XPs', 1;
RECONFIGURE;

-- 配置数据库邮件(具体步骤略)

3. 配置SQL Server代理 ​

确保SQL Server代理服务在所有节点上都设置为自动启动:

powershell
# 在所有节点上运行
Set-Service -Name SQLSERVERAGENT -StartupType Automatic
Start-Service -Name SQLSERVERAGENT

4. 配置监控 ​

  • 配置SQLServer性能监控
  • 配置集群健康监控
  • 配置告警机制

最佳实践 ​

1. 存储配置 ​

  • 分离数据和日志文件:将数据文件和日志文件存储在不同的LUN上
  • 使用适当的RAID级别:
    • 数据文件:RAID 5或RAID 10
    • 日志文件:RAID 10
    • TempDB:RAID 10
  • 配置适当的文件大小:避免频繁的自动增长

2. 网络配置 ​

  • 为公共网络和私有网络使用不同的网络适配器
  • 为私有网络使用专用交换机
  • 配置网络优先级:私有网络优先级高于公共网络

3. 安全配置 ​

  • 使用域账户管理SQLServer服务
  • 定期更改服务账户密码
  • 限制SQLServer网络访问
  • 启用TLS加密

4. 高可用性考虑 ​

  • 定期测试故障转移
  • 确保所有节点的硬件配置一致
  • 保持所有节点的Windows和SQLServer补丁级别一致
  • 配置自动故障转移

5. 备份策略 ​

  • 实施完整的备份策略
  • 将备份文件存储在非共享存储上
  • 定期测试备份恢复

常见问题与解决方案 ​

1. 安装过程中提示无法访问共享存储 ​

解决方案:

  • 检查共享存储连接
  • 验证所有节点可以访问共享存储
  • 检查LUN权限设置
  • 确保存储驱动程序已正确安装

2. 故障转移测试失败 ​

排查步骤:

  1. 检查集群事件日志
  2. 检查SQLServer错误日志
  3. 验证所有集群资源状态
  4. 检查网络连接
  5. 检查存储访问权限

3. 无法连接到SQLServer FCI ​

排查步骤:

  1. 检查SQLServer服务状态
  2. 检查集群资源状态
  3. 检查防火墙设置
  4. 验证SQLServer网络名称解析
  5. 检查客户端连接字符串

4. 节点添加失败 ​

解决方案:

  • 确保所有节点的Windows和SQLServer版本一致
  • 确保所有节点已安装相同的SQLServer功能
  • 检查域账户权限
  • 检查网络连接

卸载SQLServer FCI ​

1. 从所有节点移除SQLServer ​

  1. 在最后添加的节点上运行SQLServer安装介质
  2. 选择 维护 选项卡
  3. 选择 从SQL Server故障转移集群移除节点
  4. 按照向导完成卸载
  5. 对所有剩余节点重复此过程,除了第一个节点

2. 卸载第一个节点 ​

  1. 在第一个节点上运行SQLServer安装介质
  2. 选择 维护 选项卡
  3. 选择 卸载SQL Server功能
  4. 按照向导完成卸载

3. 销毁故障转移集群 ​

powershell
# 销毁集群
Remove-Cluster -Cluster ClusterName -Force

# 在所有节点上卸载故障转移集群功能
Uninstall-WindowsFeature -Name Failover-Clustering -IncludeManagementTools

总结 ​

SQLServer Failover Cluster Instance (FCI) 是一种可靠的高可用性解决方案,提供了实例级别的故障转移保护。正确的安装和配置是确保FCI正常运行的关键。DBA需要根据业务需求和系统资源,合理规划集群架构,遵循最佳实践,确保FCI的高可用性和性能。定期测试故障转移和维护集群健康状态是确保FCI长期稳定运行的重要措施。