在Ubuntu上实现SQL Server的高可用性,通常涉及到使用Pacemaker和Corosync来创建一个高可用性集群(HA Cluster),并结合SQL Server的Always On Availability Groups (AGs) 来提供数据库的高可用性。以下是详细的步骤和配置指南:
安装Pacemaker和Corosync
在所有节点上安装Pacemaker和Corosync:
sudo apt-get update
sudo apt-get install pacemaker corosync pcsd
配置Pacemaker和Corosync
初始化Pacemaker和Corosync:
sudo pcs cluster init
启动并启用Pacemaker和Corosync服务:
sudo systemctl enable pcsd
sudo systemctl start pcsd
sudo systemctl enable pacemaker
sudo systemctl start pacemaker
创建集群
在所有节点上授权并设置集群属性:
sudo pcs cluster auth centos00 centos01 centos02 -u hacluster -p your_password
sudo pcs cluster setup --name crmcluster centos00 centos01 centos02
sudo pcs cluster start --all
sudo pcs cluster enable --all
安装及配置SQL Server
在所有节点上安装SQL Server,并确保它们可以互相通信。
创建AG
在所有节点上开启Always On Availability Group功能并重启SQL Server服务:
sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
sudo systemctl restart mssql-server
创建AG
在SQL Server上执行SQL命令来创建AG:
CREATE AVAILABILITY GROUP [YourAGName]
WITH (
LOGIN_CREDENTIALS = (
NAME = [YourLoginName],
PASSWORD = [YourPassword]
),
REPLICA ON 'centos00'
WITH (
PASSWORD = [Password],
END_POINT = 'TCP:192.168.1.100,1433',
RANGE_MINUTES = 0
),
REPLICA ON 'centos01'
WITH (
PASSWORD = [Password],
END_POINT = 'TCP:192.168.1.101,1433',
RANGE_MINUTES = 0
)
)
在Primary节点上创建证书并复制到Secondary节点:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'YourMasterKeyPassword'
CREATE CERTIFICATE dbm_certificate
WITH SUBJECT = 'YourSubjectName'
BACKUP CERTIFICATE dbm_certificate
TO FILE = '/var/opt/mssql/data/dbm_certificate.cer'
WITH PRIVATE KEY (
FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
ENCRYPTION BY PASSWORD = 'YourPrivateKeyPassword'
)
将证书备份复制到所有Secondary节点,并在每个节点上创建证书。
请注意,上述步骤可能需要根据实际的Ubuntu版本和SQL Server版本进行调整。此外,还需要确保网络配置正确,以便节点之间可以互相通信。