SQL Server在CentOS上的集群配置指南

SQL Server在CentOS上的集群配置指南(以AlwaysOn可用性组为例)一、基础准备工作1. 系统与网络要求操作系统:选择CentOS 7.9及以上版本(需兼容SQL Server版本,如SQL Server 2019/2022);节点数量:至少3台(1主+2从,满足多数场景的高可用需求);网络配置:所有节点处于同一局域网,配置静态IP地址,关闭防火墙或开放必要端口(如SQL

SQL Server在CentOS上的集群配置指南(以AlwaysOn可用性组为例)

一、基础准备工作

1. 系统与网络要求

  • 操作系统:选择CentOS 7.9及以上版本(需兼容SQL Server版本,如SQL Server 2019/2022);
  • 节点数量:至少3台(1主+2从,满足多数场景的高可用需求);
  • 网络配置:所有节点处于同一局域网,配置静态IP地址,关闭防火墙或开放必要端口(如SQL Server默认端口1433、AlwaysOn端点端口5022);
  • 主机名解析:通过/etc/hosts文件实现节点间名称解析(避免依赖DNS),格式如下:
    192.168.1.10 centos00  # 主节点192.168.1.11 centos01  # 从节点1192.168.1.12 centos02  # 从节点2

2. 依赖包与存储库

  • 安装依赖包:确保系统已安装yum-utilscurlwget等基础工具;
  • 添加Microsoft YUM存储库:下载并配置SQL Server官方YUM存储库(以SQL Server 2019为例):
    sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo

3. 安装SQL Server

  • 安装SQL Server引擎:使用YUM命令安装SQL Server:
    sudo yum install -y mssql-server
  • 初始化配置:运行配置脚本设置管理员密码(如YourStrongPassw0rd)和版本(选择“Evaluation”或“Developer”版本用于测试):
    sudo /opt/mssql/bin/mssql-conf setup
  • 启动服务:启动SQL Server并设置开机自启:
    sudo systemctl start mssql-serversudo systemctl enable mssql-server

二、配置AlwaysOn可用性组(AAG)

1. 启用AlwaysOn特性

  • 开启HADR功能:修改SQL Server配置,启用AlwaysOn可用性组:
    sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1sudo systemctl restart mssql-server
  • 验证状态:通过SQL命令检查HADR管理器状态(需返回1表示运行正常):
    SELECT serverproperty('HadrManagerStatus');

2. 配置端点与证书

  • 开启扩展事件:用于监控AlwaysOn状态(可选但推荐):
    ALTER EVENT SESSION AlwaysOn_health ON SERVER WITH (STARTUP_STATE=ON);
  • 创建数据库主密钥:加密证书和端点凭证:
    USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MasterKey123!';
  • 创建证书:生成用于端点认证的证书(以master数据库为例):
    CREATE CERTIFICATE Node00_CertWITH SUBJECT = 'Node00 SQL Server Certificate',EXPIRY_DATE = '2026-12-31';BACKUP CERTIFICATE Node00_CertTO FILE = '/var/opt/mssql/certs/Node00_Cert.cer';
  • 创建端点:配置AlwaysOn端点(所有节点需执行,替换证书路径):
    CREATE ENDPOINT Hadr_endpointSTATE = STARTEDAS TCP (LISTENER_PORT = 5022)FOR DATA_MIRRORING (  ROLE = ALL,  AUTHENTICATION = CERTIFICATE Node00_Cert,  ENCRYPTION = REQUIRED ALGORITHM AES);GRANT CONNECT ON ENDPOINT::Hadr_endpoint TO [sqlserviceaccount];  -- 替换为SQL Server服务账户

3. 配置集群管理器(Pacemaker)

  • 安装Pacemaker与Corosync
    sudo yum install -y pacemaker corosync pcs
  • 配置集群通信:设置节点间无密码SSH登录(简化集群通信):
    ssh-keygen -t rsa  # 在主节点生成密钥ssh-copy-id centos01  # 复制到从节点ssh-copy-id centos02
  • 启动集群服务
    sudo systemctl start pcsdsudo systemctl enable pcsdsudo pcs cluster auth centos00 centos01 centos02 -u hacluster -p YourClusterPassw0rdsudo pcs cluster setup --name SQLCluster centos00 centos01 centos02sudo pcs cluster start --allsudo pcs cluster enable --all

4. 创建可用性组

  • 创建AG:在主节点(centos00)上执行,指定同步副本(SYNCHRONOUS_COMMIT)和自动故障转移(EXTERNAL):
    CREATE AVAILABILITY GROUP [SQLAG]WITH (CLUSTER_TYPE = EXTERNAL, DB_FAILOVER = ON)FOR REPLICA ON  N'centos00' WITH (    ENDPOINT_URL = N'TCP://centos00:5022',    AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,    FAILOVER_MODE = EXTERNAL,    SEEDING_MODE = AUTOMATIC  ),  N'centos01' WITH (    ENDPOINT_URL = N'TCP://centos01:5022',    AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,    FAILOVER_MODE = EXTERNAL,    SEEDING_MODE = AUTOMATIC  );
  • 授权创建数据库:允许AG自动创建成员数据库:
    ALTER AVAILABILITY GROUP [SQLAG] GRANT CREATE ANY DATABASE;

5. 将AG添加到Pacemaker

  • 创建Pacemaker资源:定义AG资源并关联集群:
    sudo pcs resource create SQLAG ocf:mssql:ag ag_name=SQLAG meta failure-timeout=30ssudo pcs resource create SQLListener ocf:mssql:listener listener_name=SQLListener port=1433 ag_name=SQLAGsudo pcs constraint colocation add SQLListener with SQLAG INFINITYsudo pcs constraint order promote SQLAG then start SQLListener

6. 验证配置

  • 手动故障转移测试:模拟主节点故障,验证从节点是否自动提升为主节点:
    sudo pcs cluster standby centos00  # 将主节点设为备用sudo pcs status  # 检查主节点是否切换至从节点
  • 客户端连接测试:使用SQL Server Management Studio(SSMS)连接AG监听器(SQLListener,端口1433),验证读写操作是否正常。

三、注意事项

  • 版本兼容性:确保SQL Server版本与CentOS版本匹配(如SQL Server 2022需CentOS 8及以上);
  • 数据安全性:定期备份AG中的数据库,建议开启备份压缩(BACKUP COMPRESSION DEFAULT);
  • 监控与维护:使用Pacemaker的crm_mon命令监控集群状态,设置日志轮转避免磁盘空间耗尽;
  • 性能优化:根据节点硬件配置调整SQL Server内存限制(memory.memorylimitmb)和并行度(max degree of parallelism)。

通过以上步骤,可在CentOS上搭建SQL Server AlwaysOn可用性组集群,实现数据库的高可用性与故障自动转移。如需更复杂的配置(如跨数据中心部署),建议参考Microsoft官方文档或咨询专业数据库管理员。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1420011.html

(0)
派派
上一篇 2025-09-24
下一篇 2025-09-24

发表回复

登录后才能评论