SQL Server 2017 Always On AG on Linux(五)配置监听器测试故障转移

本文主要是介绍SQL Server 2017 Always On AG on Linux(五)配置监听器测试故障转移,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

久等了,还是把这次测试补充完整吧!

前面已经配置好了 AlwaysOn AG 和 Pacemaker ,但是还不能进行故障转移。为了设置高可用,需要添加侦听器,用侦听器去访问数据库。群集资源代理程序 mssql-server-ha 是 Pacemaker 和 SQL Server 之间的接口。现在将创建和配置SQL Server Always On Availability Group的过程,并将相应的侦听器作为群集资源。

 

选择任意一个节点来做配置:

1. 在Pacemaker上创建Always On Availability组资源

pcs resource create LINUX_SQLAG ocf:mssql:ag ag_name=LINUX_SQLAG master notify=true  

LINUX_SQLAG: Pacemaker 集群资源的名称(可不必与 AlwaysOn AG 的名称相同,此测试设置相同)
ocf:mssql:ag: 由mssql-server-ha提供的Open Cluster Framework(OCF)资源代理的名称
ag_name=LINUX_SQLAG:  AlwaysOn AG 的可用性组的名称
master:  将资源定义为 master/slave 克隆资源
notify=true: 

 

2. 为Always On Availability Group侦听器创建虚拟IP地址资源

pcs resource create AGListener_VIP ocf:heartbeat:IPaddr2 ip=192.168.2.119 cidr_netmask=24  

AGListener_VIP: 虚拟IP地址资源的名称
ocf:heartbeat:IPaddr2: 管理虚拟IPv4地址的Open Cluster Framework(OCF)资源代理的名称
ip=192.168.2.119: AlwaysOn AG 的可用性组的侦听器IP
cidr_netmask=24: AlwaysOn AG 的可用性组的侦听器子网掩码

 

3. 将Always On Availability Group资源配置为在与虚拟IP地址资源相同的计算机上运行

pcs constraint colocation add AGListener_VIP LINUX_SQLAG-master INFINITY with-rsc-role=Master  

AGListener_VIP:  虚拟IP地址资源的名称
LINUX_SQLAG-master:  AlwaysOn AG 资源的克隆别名
INFINITY:  分配给资源约束的分数;这意味着约束是必需的
with-rsc-role=Master: 约束的附加属性;这意味着此约束与主克隆(或Always On Availability Group主副本)相关联

 

由于Always On Availability Group侦听器名称只能将客户端应用程序重定向到主副本,因此可用性组和侦听器名称必须始终在同一群集节点中运行
 

4. 配置群集资源应该开始/停止的顺序

pcs constraint order promote LINUX_SQLAG-master then start AGListener_VIP

promote: 约束行为,将资源从slave 提升为 master 资源
LINUX_SQLAG-master: AlwaysOn AG 资源的克隆别名
start: 初步操作完成后下一步的动作
AGListener_VIP: 虚拟IP地址资源的名称
 

 

在WSFC中,事件序列如下:

停止当前主副本上的可用性组
在当前主副本上停止侦听器名称
在新的主副本上启动侦听器
在新主副本上启动可用性组


在侦听器名称上定义约束时,事件序列如下:

停止当前主副本上的虚拟IP地址资源
停止当前主副本上的可用性组
在新的主副本上启动虚拟IP地址资源
在新主副本上启动可用性组
 

5. 验证Always On可用性组配置是否正常

pcs status

SELECT @@SERVERNAME as replica_name, @@VERSION, host_platform, host_distribution, host_release
FROM sys.dm_os_host_info
GO  
SELECT a.name as AG_Name, a.cluster_type_desc,b.dns_name,c.ip_address, c.ip_subnet_mask
FROM sys.availability_groups a
INNER JOIN sys.availability_group_listeners b ON a.group_id=b.group_id
INNER JOIN sys.availability_group_listener_ip_addresses c ON b.listener_id=c.listener_id
GO

 

6. 自动故障转移测试

现在算是配置好了,可以模拟服务器宕机让其自动进行故障转移。现在主节点在 server112.kk.com 上,把这台服务器关机测试看看!!

 

将服务器关机:

shutdown now

同时查看侦听器的连接情况

可以看到侦听器中断了一会儿,主副本从 server112 自动切换到了 server111了!此时查看pcs状态,server112已经停止了,

# pcs statusCluster name: LINUXHACLUSTER
Stack: corosync
Current DC: server111.kk.com (version 1.1.19-8.el7_6.4-c3c624ea3d) - partition with quorum
Last updated: Sat Aug 10 13:06:59 2019
Last change: Sun Apr 28 23:47:28 2019 by root via cibadmin on server111.kk.com3 nodes configured
4 resources configuredOnline: [ server111.kk.com server113.kk.com ]
OFFLINE: [ server112.kk.com ]Full list of resources:Master/Slave Set: LINUX_SQLAG-master [LINUX_SQLAG]Masters: [ server111.kk.com ]Slaves: [ server113.kk.com ]Stopped: [ server112.kk.com ]AGListener_VIP	(ocf::heartbeat:IPaddr2):	Started server111.kk.comFailed Actions:
* LINUX_SQLAG_monitor_10000 on server111.kk.com 'not running' (7): call=28, status=complete, exitreason='',last-rc-change='Sat Aug 10 11:46:21 2019', queued=5654ms, exec=5493msDaemon Status:corosync: active/disabledpacemaker: active/disabledpcsd: active/enabled

 

现在重启 server112 这台服务器,起来后如下脚本启动 群集 server112,一会儿后 server112 在群集中将作为 salve,数据库中将作为 辅助副本。

pcs cluster start server112.kk.com

 

7. 手动故障转移测试

现在主副本在 server111 上面了,我将切回到 server112 上,在任意节点执行:

pcs resource move LINUX_SQLAG-master server112.kk.com --master

一会后,发现副本角色进行了切换。AlwaysOn AG 的切换是通过系统命令去切换的,SSMS 操作界面禁用了次此操作。SQL Server Always On AG on Linux 配置起来确实麻烦,还需要基于linux的群集,了解相关命令。对习惯用windows处理的人员来说,运维是比较麻烦的。不过一个公司用什么样的环境,还是需要有熟悉的人员去处理,不了解的话还是用windows更好。2019年秋季,SQL Server 2019 将出正式版本了,SQL Server On container 将是未来的一个研究方向了。

 

 

 

 

 

 

这篇关于SQL Server 2017 Always On AG on Linux(五)配置监听器测试故障转移的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/349936

相关文章

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分