在CentOS上搭建SQL Server高可用性集群(例如SQL Server Always On Availability Groups)需要一些步骤。以下是一个基本的指南,帮助你在CentOS上设置SQL Server高可用性集群。
在所有节点上安装SQL Server。你可以使用SQL Server的安装程序(setup.exe)来完成这一步。
sudo yum install -y mssql-server
sudo systemctl start mssql-server
sudo systemctl enable mssql-server
在每个节点上配置SQL Server实例。
sudo /opt/mssql/bin/sqlservr --accept-eula
安装SQL Server命令行工具和PowerShell模块。
sudo yum install -y mssql-tools unixODBC-devel
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
source ~/.bash_profile
虽然WSFC是Windows功能,但你可以使用类似的技术,例如Pacemaker和Corosync来创建高可用性集群。
sudo yum install -y pcs pacemaker corosync
sudo systemctl start pcsd
sudo systemctl enable pcsd
编辑/etc/corosync/corosync.conf
文件,配置集群节点和网络设置。
totem {
version: 2
cluster_name: SQLCluster
transport: udpu
}
nodelist {
node {
ring0_addr: node1.example.com
nodeid: 1
}
node {
ring0_addr: node2.example.com
nodeid: 2
}
}
quorum {
provider: corosync_votequorum
}
logging {
to_logfile: yes
logfile: /var/log/corosync/corosync.log
to_syslog: yes
}
sudo systemctl start corosync
sudo systemctl enable corosync
sudo pcs cluster auth node1.example.com node2.example.com
sudo pcs cluster setup --name SQLCluster node1.example.com node2.example.com
sudo pcs cluster start --all
sudo pcs cluster enable --all
在每个节点上配置SQL Server Always On Availability Groups。
CREATE AVAILABILITY GROUP [MyAG]
FOR DATABASE [MyDatabase]
REPLICA ON
'node1.example.com' WITH (
ENDPOINT_URL = 'TCP://node1.example.com:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL
),
'node2.example.com' WITH (
ENDPOINT_URL = 'TCP://node2.example.com:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL
);
ALTER AVAILABILITY GROUP [MyAG]
ADD REPLICA ON
'node1.example.com' WITH (
ENDPOINT_URL = 'TCP://node1.example.com:5022'
)
WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, FAILOVER_MODE = MANUAL);
验证集群和可用性组的配置。
sudo pcs status
SELECT ag.name, ar.replica_server_name, ars.role_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高可用性集群。根据具体需求,可能需要进行更多的配置和优化。