如何部署SQL Server高可用性方案,确保CentOS数据库在CentOS系统上稳定运行?
- 内容介绍
- 文章标签
- 相关推荐
数据库宕机往往像一道闪电划破夜空——突然所有业务线都被迫停摆。特别是当你使用的是 SQL Server 并且跑在 CentOS 上时任何一个细小的失误都可能导致整条业务链条的崩溃。 说起来... 今天 我想把我多年的经验与心血浓缩成一篇文章,告诉你如何在 CentOS 环境下搭建一套真正稳如泰山、让业务无缝跳转的 SQL Server 高可用方案。
为什么要在 CentOS 上部署高可用?
何必呢? CentOS 已经从 RHEL 的衍生品走向了更开放、更灵活的平台。相比 Windows, CentOS 在性能、资源占用以及平安性上都有显著优势,但这也意味着我们不能直接套用 Windows 上的 WSFC思路。若你不想因一次意外停机而造成数小时甚至数天的数据不可恢复,那么就必须为 SQL Server 配置一个可靠的高可用架构。
常见高可用方案对比
1. 数据库镜像
镜像是最早出现的一种高可用技术, 只支持主副本和单个镜像副本,数据同步方式为异步或同步。 一言难尽。 它配置相对简单,但无法实现读写分离,也不支持多副本。
2. AlwaysOn 可用性组
作为微软推出的现代化方案, AG 支持多副本、同步/异步提交、读写分离,并能通过虚拟监听器实现客户端透明切换。它是目前企业级环境中最常见、最推荐的高可用方式。
| 特性 | 数据库镜像 | AlwaysOn AG |
|---|---|---|
| 副本数量 | 1+1 | ≥1 主 + 多个从 |
| 读写分离 | 不支持 | 支持 |
| 故障转移方式 | 需要见证服务器手动或自动转移 | 自动转移 + 见证服务器保证脑裂防护 |
| 网络依赖 | PACER 协议 + TCP/IP 端口 5022/5025 等已知端口开放即可 | PACER 与 TLS/证书认证, 需要额外端口与平安设置 |
如果你正在考虑是否升级到 AG,那就先问自己:我愿意接受多少额外的配置成本和学习曲线?如果答案是肯定的, 你猜怎么着? 那么下面这套基于 Pacemaker+Corosync 的完整部署流程将会给你带来前所未有的稳定体验。
准备工作:硬件与网络规划
三台机器——主、 副、见证;每台机器至少两块网卡;所有节点位于同一子网或跨子网需配置路由;防火墙开启必要端口;Linux 系统均为同一版本且已更新至最新平安补丁。
- #1 主节点:负责处理所有写请求;IP:10.0.0.101 / SSH 22 / MSSQL 默认端口 1433 / PACE 心跳端口 5025 / TLS 隧道端口 50000+.
- #2 副节点:实时接收同步日志;IP:10.0.0.102 / 同样开放上述端口.
- #3 见证节点:仅用于投票决策, 无数据存储;IP:10.0.0.103 / 必须能访问主、副节点上的同一套服务.
- 网络层面务必确认
/etc/sysconfig/network-scripts/ifcfg‑eth*`ipaddr` 与 `netmask` 设置正确,并且 `route` 能通向其它两台机器。 - 关闭 SELinux 或者设置为 Permissive 模式,以免后续权限问题干扰集群管理。
- 安装 EPEL 并确保 `yum update` 完成,以便后面安装 Pacemaker 时没有缺失依赖。
- 备份关键数据——在正式启动之前请务必完成一次完整备份,否则即使 HA 成功也难以恢复到最近状态。
- 监控与日志——建议安装 Promeus + Grafana 或者使用 Zabbix 对 Pacemaker 和 MSSQL 状态进行监控,以便及时发现异常。
- 'sudo yum install -y epel-release' 是必不可少的一步,不然后面的 pacemaker 包会找不到依赖! 如遇到错误请先检查 repository 是否正常工作。 一旦基础设施完善,就可以进入下一步啦! 注意: * 每台机器要安装相同版本的 MSSQL。 * 确保 `/var/opt/mssql/data` 均挂载到了共享存储或者独立磁盘。 * 在 CentOS7/8 中,你可能需要,比方说增加文件句柄上限。 **** “系统部署不是一次性的任务,而是一场持续进化的旅程。” 只要你把握住这些关键点, 你就能在 CentOS 上构建一个可靠、高效且易维护的 SQL Server 高可用环境。祝你在未来的运维道路上一路顺风 🚀
数据库宕机往往像一道闪电划破夜空——突然所有业务线都被迫停摆。特别是当你使用的是 SQL Server 并且跑在 CentOS 上时任何一个细小的失误都可能导致整条业务链条的崩溃。 说起来... 今天 我想把我多年的经验与心血浓缩成一篇文章,告诉你如何在 CentOS 环境下搭建一套真正稳如泰山、让业务无缝跳转的 SQL Server 高可用方案。
为什么要在 CentOS 上部署高可用?
何必呢? CentOS 已经从 RHEL 的衍生品走向了更开放、更灵活的平台。相比 Windows, CentOS 在性能、资源占用以及平安性上都有显著优势,但这也意味着我们不能直接套用 Windows 上的 WSFC思路。若你不想因一次意外停机而造成数小时甚至数天的数据不可恢复,那么就必须为 SQL Server 配置一个可靠的高可用架构。
常见高可用方案对比
1. 数据库镜像
镜像是最早出现的一种高可用技术, 只支持主副本和单个镜像副本,数据同步方式为异步或同步。 一言难尽。 它配置相对简单,但无法实现读写分离,也不支持多副本。
2. AlwaysOn 可用性组
作为微软推出的现代化方案, AG 支持多副本、同步/异步提交、读写分离,并能通过虚拟监听器实现客户端透明切换。它是目前企业级环境中最常见、最推荐的高可用方式。
| 特性 | 数据库镜像 | AlwaysOn AG |
|---|---|---|
| 副本数量 | 1+1 | ≥1 主 + 多个从 |
| 读写分离 | 不支持 | 支持 |
| 故障转移方式 | 需要见证服务器手动或自动转移 | 自动转移 + 见证服务器保证脑裂防护 |
| 网络依赖 | PACER 协议 + TCP/IP 端口 5022/5025 等已知端口开放即可 | PACER 与 TLS/证书认证, 需要额外端口与平安设置 |
如果你正在考虑是否升级到 AG,那就先问自己:我愿意接受多少额外的配置成本和学习曲线?如果答案是肯定的, 你猜怎么着? 那么下面这套基于 Pacemaker+Corosync 的完整部署流程将会给你带来前所未有的稳定体验。
准备工作:硬件与网络规划
三台机器——主、 副、见证;每台机器至少两块网卡;所有节点位于同一子网或跨子网需配置路由;防火墙开启必要端口;Linux 系统均为同一版本且已更新至最新平安补丁。
- #1 主节点:负责处理所有写请求;IP:10.0.0.101 / SSH 22 / MSSQL 默认端口 1433 / PACE 心跳端口 5025 / TLS 隧道端口 50000+.
- #2 副节点:实时接收同步日志;IP:10.0.0.102 / 同样开放上述端口.
- #3 见证节点:仅用于投票决策, 无数据存储;IP:10.0.0.103 / 必须能访问主、副节点上的同一套服务.
- 网络层面务必确认
/etc/sysconfig/network-scripts/ifcfg‑eth*`ipaddr` 与 `netmask` 设置正确,并且 `route` 能通向其它两台机器。 - 关闭 SELinux 或者设置为 Permissive 模式,以免后续权限问题干扰集群管理。
- 安装 EPEL 并确保 `yum update` 完成,以便后面安装 Pacemaker 时没有缺失依赖。
- 备份关键数据——在正式启动之前请务必完成一次完整备份,否则即使 HA 成功也难以恢复到最近状态。
- 监控与日志——建议安装 Promeus + Grafana 或者使用 Zabbix 对 Pacemaker 和 MSSQL 状态进行监控,以便及时发现异常。
- 'sudo yum install -y epel-release' 是必不可少的一步,不然后面的 pacemaker 包会找不到依赖! 如遇到错误请先检查 repository 是否正常工作。 一旦基础设施完善,就可以进入下一步啦! 注意: * 每台机器要安装相同版本的 MSSQL。 * 确保 `/var/opt/mssql/data` 均挂载到了共享存储或者独立磁盘。 * 在 CentOS7/8 中,你可能需要,比方说增加文件句柄上限。 **** “系统部署不是一次性的任务,而是一场持续进化的旅程。” 只要你把握住这些关键点, 你就能在 CentOS 上构建一个可靠、高效且易维护的 SQL Server 高可用环境。祝你在未来的运维道路上一路顺风 🚀

