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

前面已经配置好了 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(五)配置监听器测试故障转移相关推荐

  1. SQL Server 2017 正式发布

    SQL Server 2017 跨出了重要的一步,它力求通过将 SQL Server 的强大功能引入 Linux.基于 Linux 的 Docker 容器和 Windows,使用户可以在 SQL Se ...

  2. 当SQL Server爱上Linux:配置 SQL Server 2017 上的可用性组初体验

    作者 | 张乐奕:Oracle ACE 总监,ACOUG (中国 Oracle 用户组)联合发起人.Oracle 数据库高可用解决方案与  Exadata 一体机专家.长于数据库故障诊断,性能调优.作 ...

  3. linux配置conf_如何使用mssql-conf和其他可用工具在Linux上配置SQL Server 2017

    linux配置conf Configuration of any system plays a vital role in its working efficiently. However, conf ...

  4. SQL Server 2014 Win7 Win10 安装详解 SQL Server 2017 2019 Linux及SQL TSQL ETL实用案例

    SQL Server 2014安装图解与问题分析 简介 SQL Server2014 是Microsoft 公司推出的关系    型数据库管理系统.它用于大规模联机事务处理(OLTP).数据  仓库和 ...

  5. SQL Server 2017 2019 Linux(Centos、Unbuntu16.04、Unbuntu18.04、Unbuntu20.04)安装过程详解

    SQL Server 2017 2019 Linux安装手册 1简介 SQL Server是微软的数据库平台,而SQL Server 2017 linux是运行在linux服务器上的版本.本文的安装采 ...

  6. Linux Centos下SQL Server 2017安装和配置

    Linux Centos下SQL Server 2017安装和配置 原文:Linux Centos下SQL Server 2017安装和配置 我们知道在Linux下安装服务有很多方式,最为简单的也就是 ...

  7. SQL Server 2017 RC1 现已实现 Linux 功能扩展

    经过七个预览版本的迭代之后,Microsoft 宣告发布第一个 SQL Server 2017 候选版本.开发人员可以藉由该版本来探索一些扩展 SQL Server Linux 版能力的新改进. 在这 ...

  8. 在Linux上离线安装SQL Server 2017

    如果你的Linux无法访问在线Repo,你可以直接下载RPM包文件.这些包位于微软的资料库:https://packages.microsoft.com. CU9(2018年7月) SQL Serve ...

  9. sql2017 for linux,Installing SQL Server 2017 for Linux on Ubuntu 18.04 LTS

    Installing SQL Server 2017 for Linux on Ubuntu 18.04 LTS 08/29/2018 3 分钟可看完 本文内容 [UPDATE as of 2018/ ...

  10. sql2017 for linux,SQL Server 2017 for Linux

    自從生病以來,有好一陣子沒來iT邦發文了,最近微軟推出SQL Server 2017,也把SQL Server for Linux推進一個新的版次,長期關注Linux及開源趨勢,我注意到雖然SQL S ...

最新文章

  1. SpringBoot监听redis过期key
  2. 桌面打开图片时很慢,显示正在生成预览好几秒的解决办法
  3. jsp cookie 中文乱码 的解决方法
  4. indices should be one-based and in ascending order
  5. 一位嵌入式工程师,硬核单片机编程思想!
  6. oracle新建用户sql局域,oracle 新建数据库,及创建用户,表空间,sqlplus导入导出数据库...
  7. java - 菱形输出
  8. C++ 通讯录设计(一)
  9. 怎么样才能学好java_单人拉丁舞应该怎么样才能学好?初学者需要做到的4点要求...
  10. gvim 命令行粘贴_vim-如何在光标所在的行中粘贴?
  11. SCU 4437 Carries(二分乱搞)题解
  12. 马哥Linux命令大全
  13. 分享一个学习充电的电子书下载网站(目前可以免费下载电子书)
  14. 阿里云·天池大数据竞赛,快商通突破专业屏障,算法能力领跑全球
  15. 设计师必备的8大图库
  16. Jenkins与码云集成
  17. 蓝桥杯试题 算法提高 学霸的迷宫
  18. 将苹果手机数据导入苹果手机苹果?如何传输苹果手机数据
  19. 曲线积分于曲面积分(后篇 曲面积分-坐标曲面积分-高斯公式-斯托克斯公式)
  20. tableau:柱图的两种实现方式

热门文章

  1. 标准IO之fflush/fseek/rewin/gets/puts/fprintf/sprintf/fgetc/fputc
  2. Spring Boot整合事务管理
  3. 01.自动化交易综述
  4. java咬人的狗问题_狗咬人怎么办?该如何巧妙的应对狗的攻击,并进行反击!...
  5. 【程序源代码】情侣小窝小程序
  6. 隐藏jupyter notebook或jupyterlab运行代码后显示的红色警示框
  7. 使用python代码区分两个图片的差异
  8. druid中连接超时自动重试一次
  9. nginx配置详解、端口重定向和504
  10. 室内靶场建设的隐藏施工验收注意事项分享