Debian上部署SQL Server集群的可行性与步骤
SQL Server官方并未直接支持在Debian操作系统上运行,但通过非官方方式(如使用Docker容器、第三方工具或虚拟化技术)可实现集群部署。需注意,此类方案可能存在兼容性问题,无法完全利用SQL Server的所有高可用性功能,生产环境建议优先选择Windows Server或Ubuntu等官方支持的平台。
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg apt-transport-https
curl https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/debian/12/prod/ stable main" | sudo tee /etc/apt/sources.list.d/mssql-server.list
mssql-tools(包含sqlcmd命令行工具):sudo apt update
sudo apt install -y mssql-server mssql-tools
sudo /opt/mssql/bin/mssql-conf setup
确保所有节点(服务器)均完成上述前期准备,且满足以下条件:
chrony)。若需实现数据同步,需配置共享存储(如NFS、SAN),确保所有节点可访问同一存储路径。
在一台节点上使用sqlcmd创建可用性组(AG):
sqlcmd -S localhost -U SA -P YourPassword -Q "CREATE AVAILABILITY GROUP [YourAGName] WITH (ENCRYPTION ON, FAILURE_POLICY=AUTO, MAX_LOG_FILES=2, MAX_DATA_FILES=1024)"
其中,YourAGName为可用性组名称,FAILURE_POLICY=AUTO表示自动故障转移。
将需高可用的数据库加入AG:
sqlcmd -S localhost -U SA -P YourPassword -Q "ALTER AVAILABILITY GROUP [YourAGName] ADD DATABASE [YourDatabaseName]"
添加辅助节点到AG,并设置为自动故障转移模式:
sqlcmd -S localhost -U SA -P YourPassword -Q "ALTER AVAILABILITY GROUP [YourAGName] ADD REPLICA ON 'SecondaryServerIP' WITH (ENDPOINT_URL='TCP://SecondaryServerIP:5022', FAILOVER_MODE=AUTO, AVAILABILITY_MODE=SYNCHRONOUS_COMMIT)"
测试故障转移(手动触发,验证自动故障转移是否生效):
sqlcmd -S SecondaryServerIP -U SA -P YourPassword -Q "ALTER AVAILABILITY GROUP [YourAGName] FAILOVER"
若无法满足原生集群需求,可选择以下方案:
sqlcmd查询AG健康状态),及时处理故障;