普料飕 发表于 2025-6-11 10:23:09

从DNS配置到Pacemaker部署:一步步教你在Linux平台上实现AlwaysOn集群

从DNS配置到Pacemaker部署:一步步教你在Linux平台上实现AlwaysOn集群

 

AlwaysOn集群是SQL Server里唯一推荐的高可用性架构,
在AlwaysOn高可用性架构中,有非常多的高级功能,

[*]可读辅助副本上的快照隔离级别会自动开启,这一机制旨在避免在数据库重做日志处理过程中发生阻塞,通过确保用户在辅助副本上能够执行数据的读取操作,从而避免因阻塞redo线程而影响数据的恢复效率。
[*]AlwaysOn技术还支持自动修复损坏的数据页,不论是主要副本还是任何辅助副本,一旦发现数据页损坏,系统会自动进行修复,确保数据的完整性和可用性。
[*]跨平台仅读取缩放可用性组,支持Windows和Linux平台混合部署
[*]要提交的所需已同步辅助副本,指定多少个辅助副本回应主要副本才能提交事务。
本篇文章带你如何在Linux平台搭建AlwaysOn集群,在Linux平台上增加了仅配置可用性模式等诸多功能,体验更加强大的AlwaysOn集群功能。
 
下面介绍基于Pacemaker集群的AlwaysOn可用性组部署的详细步骤, 集群各个节点的部署信息和域名信息如表1和表2所示, 为了方便起见,在集群搭建的过程中所有节点的防火墙服务都已经关闭,
表1:集群各个节点的信息如下:
节点名称IP用途操作系统数据库版本DNS192.168.22.112DNS服务CentOS 9.2 wwwmssql122192.168.22.122主要副本(同步提交)CentOS 9.2SQL Server 2019wwwmssql124192.168.22.124辅助副本(同步提交)CentOS 9.2SQL Server 2019wwwmssql128192.168.22.128辅助副本(同步提交)CentOS 9.2SQL Server 2019yahaha_listener192.168.22.160AlwaysOn侦听器   
表2:各个节点的域名信息和可用性组信息如下:
节点名称域名信息IPwwwmssql122wwwmssql122.mssqlag.com192.168.22.122wwwmssql124wwwmssql124.mssqlag.com192.168.22.124wwwmssql128wwwmssql128.mssqlag.com192.168.22.128yahaha_listeneryahaha_listener.mssqlag.com192.168.22.160yahaha_agAlwaysOn可用性组名称  
在Linux服务器上搭建AlwaysOn集群之前需要安装好所有需要用到的软件包,然后开启数据库实例的AlwaysOn功能,下面的代码会启用AlwaysOn可用性组功能并安装SQL Server高可用性支持包,然后安装Pacemaker相关的软件包,安装完Pacemaker软件包之后会自动创建一个系统账号hacluster,在每个数据库节点上执行以下命令:
yum clean all
yum makecache
yum config-manager --set-enabled highavailability
yum install -y pacemaker pcs fence-agents-all resource-agents corosync
yum install -y mssql-server-ha 

#打开AlwaysOn可用性组功能
/opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
systemctl restart mssql-server 
安装好上面的软件包之后,我们正式进入集群部署流程,下面开始部署DNS服务。
部署DNS服务

实际上可以不用搭建DNS服务,在每台机器节点上通过修改/etc/hosts文件添加机器名和IP地址的映射也能实现,但是实际生产环境还是建议搭建DNS服务,这样做更加正规。 部署DNS服务器实际上是注册节点wwwmssql122、wwwmssql124、wwwmssql128以及侦听器yahaha_listener到DNS服务,为AlwaysOn集群提供域名解析服务。
我们使用下面步骤进行搭建DNS服务,下面的所有操作都在192.168.22.112这台机器上执行:

[*]安装BIND软件包和相关工具,执行下面命令:
yum install -y bind 
yum install -y bind-utils
[*]修改 /etc/named.conf文件,执行下面命令:
sed -i.bak \
-e 's/listen-on port 53 { 127.0.0.1; }/listen-on port 53 { 192.168.22.112; }/' \
-e 's/allow-query     { localhost; }/allow-query     { any; }/' \
-e '/include "\/etc\/crypto-policies\/back-ends\/bind.config";/a\       check-names master warn;' /etc/named.conf
[*]在/etc/named.rfc1912.zones文件的末尾追加文本,执行下面的命令:
cat <<EOF >> /etc/named.rfc1912.zones

#正向查找区域
zone "mssqlag.com" IN {
    type master;
    file "mssqlag.com.zone";
    allow-update { none; };
};

#反向查找区域
zone "22.168.192.in-addr.arpa" IN {
    type master;
    file "22.168.192.zone";
    allow-update { none; };
};
EOF
[*]配置正向解析配置文件和反向解析配置文件,复制一份正向解析配置文件模板,复制出来的模版文件的文件名和第三步添加的【正向查找区域】名称一样。同理,对于反向向解析配置文件也是做同样的操作,执行下面的命令:
cp -p /var/named/named.localhost  /var/named/mssqlag.com.zonecp -p  /var/named/named.loopback   /var/named/22.168.192.zone#配置正向解析cat 
页: [1]
查看完整版本: 从DNS配置到Pacemaker部署:一步步教你在Linux平台上实现AlwaysOn集群