在CentOS上搭建SQL Server集群,通常指的是配置SQL Server Always On Availability Groups,這是一個高可用性和災難恢復解決方案。以下是在CentOS上搭建SQL Server集群的基本步驟:
首先,在所有節點上安裝SQL Server。你可以從Microsoft官方網站下載適用于Linux的SQL Server安裝程序。
wget -qO- https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
sudo yum remove mssql-server
sudo yum install -y mssql-server
按照安裝向導完成安裝,并設置SQL Server服務啟動。
在每個節點上配置SQL Server實例,確保它們使用相同的實例名稱和端口號。
sudo /opt/mssql/bin/sqlservr --accept-eula --instance-name <InstanceName> --tcp-port 1433
在主節點上配置Always On Availability Groups。
-- 連接到SQL Server實例
sqlcmd -S localhost -U sa -P <YourPassword>
-- 創建可用性組
CREATE AVAILABILITY GROUP [MyAG]
FOR DATABASE [YourDatabase]
REPLICA ON
'Node1' WITH (
ENDPOINT_URL = 'TCP://Node1:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SECONDARY_ROLE (ALLOW_CONNECTIONS = ALL)
),
'Node2' WITH (
ENDPOINT_URL = 'TCP://Node2:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SECONDARY_ROLE (ALLOW_CONNECTIONS = ALL)
);
-- 將數據庫添加到可用性組
ALTER AVAILABILITY GROUP [MyAG] ADD DATABASE [YourDatabase];
在主節點上配置可用性組監聽器。
-- 創建監聽器
CREATE AVAILABILITY GROUP LISTENER 'MyAGListener' (
WITH IP ((N'192.168.1.100', N'255.255.255.0')),
PORT = 1433,
FAILOVER_MODE = MANUAL
);
-- 將監聽器添加到可用性組
ALTER AVAILABILITY GROUP [MyAG] ADD LISTENER 'MyAGListener' (
WITH IP ((N'192.168.1.100', N'255.255.255.0')),
PORT = 1433
);
確保在所有節點上打開必要的端口。
sudo firewall-cmd --permanent --zone=public --add-port=1433/tcp
sudo firewall-cmd --permanent --zone=public --add-port=5022/tcp
sudo firewall-cmd --reload
在所有節點上驗證SQL Server服務和可用性組的狀態。
sudo systemctl status mssql-server
在SQL Server Management Studio (SSMS) 或使用 sqlcmd 連接到主節點,檢查可用性組的狀態。
SELECT ag.name, ar.replica_server_name, ars.role_desc, ars.synchronization_health_desc
FROM sys.availability_groups ag
JOIN sys.availability_replicas ar ON ag.group_id = ar.group_id
JOIN sys.dm_hadr_availability_replica_states ars ON ar.replica_id = ars.replica_id;
通過以上步驟,你應該能夠在CentOS上成功搭建SQL Server集群。如果在過程中遇到問題,請參考Microsoft官方文檔或尋求社區支持。