在Ubuntu上实现SQL Server高可用性,可采用以下方案,需注意SQL Server官方对Linux的支持限制及部分方案的技术限制:
适用场景:企业级高可用性需求,支持跨节点数据同步与自动故障转移。
步骤:
ALTER SERVER CONFIGURATION SET HADR CLUSTERCONTEXT='wsfc_cluster';
sudo systemctl restart mssql-server
CREATE AVAILABILITY GROUP [AG_Name]
WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY)
FOR REPLICA ON
'Node1' WITH (ENDPOINT_URL = 'TCP://Node1:5022', AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, FAILOVER_MODE = AUTOMATIC),
'Node2' WITH (ENDPOINT_URL = 'TCP://Node2:5022', AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, FAILOVER_MODE = AUTOMATIC);
ALTER AVAILABILITY GROUP [AG_Name] JOIN
加入集群。ALTER AVAILABILITY GROUP [AG_Name] ADD LISTENER 'AG-Listener' (WITH IP = ('192.168.1.100', '255.255.255.0'), PORT = 1433);
SELECT * FROM sys.availability_groups
。适用场景:需实例级高可用性,依赖共享存储。
注意:FCI需依赖Windows Server故障转移群集(WSFC),在Ubuntu上需通过虚拟机模拟Windows环境或使用第三方工具(如Pacemaker+Corosync)模拟集群逻辑,但非官方支持,复杂度较高。
参考来源: