首页主机资讯SQL Server在CentOS上的集群配置指南

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

时间2025-10-01 09:28:03发布访客分类主机资讯浏览1453
导读:SQL Server在CentOS上的集群配置指南(以AlwaysOn可用性组为例) 一、基础准备工作 1. 系统与网络要求 操作系统:选择CentOS 7.9及以上版本(需兼容SQL Server版本,如SQL Server 2019/...

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  # 从节点1
    192.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-server
    sudo systemctl enable mssql-server
    

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

1. 启用AlwaysOn特性

  • 开启HADR功能:修改SQL Server配置,启用AlwaysOn可用性组:
    sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
    sudo 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_Cert
    WITH SUBJECT = 'Node00 SQL Server Certificate',
    EXPIRY_DATE = '2026-12-31';
        
    BACKUP CERTIFICATE Node00_Cert
    TO FILE = '/var/opt/mssql/certs/Node00_Cert.cer';
        
    
  • 创建端点:配置AlwaysOn端点(所有节点需执行,替换证书路径):
    CREATE ENDPOINT Hadr_endpoint
    STATE = STARTED
    AS 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 pcsd
    sudo systemctl enable pcsd
    sudo pcs cluster auth centos00 centos01 centos02 -u hacluster -p YourClusterPassw0rd
    sudo pcs cluster setup --name SQLCluster centos00 centos01 centos02
    sudo pcs cluster start --all
    sudo 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=30s
    sudo pcs resource create SQLListener ocf:mssql:listener listener_name=SQLListener port=1433 ag_name=SQLAG
    sudo pcs constraint colocation add SQLListener with SQLAG INFINITY
    sudo 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官方文档或咨询专业数据库管理员。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: SQL Server在CentOS上的集群配置指南
本文地址: https://pptw.com/jishu/715532.html
CentOS中SQL Server的权限管理如何操作 CentOS HDFS最佳实践总结

游客 回复需填写必要信息