AlwaysOn是一种集合了高可用和灾难恢复两种功能的技术,它支持一个或多个数据库整体的发生故障转移,它实现了一定程度上的负载均衡,减轻了主服务器的压力,是目前最好的一种选择。那么当极端情况发生时,集群大多数节点都挂掉了,数据库所在的主节点Server也挂掉了。即当Windows 集群 Fail 时,如何快速从尚且存活的少数节点中,挑选一个来承接数据库服务。

1:测试目的

Windows Failover Cluster若因故障server节点太多, 会使整个Cluster fail, 此时其他残存server节点上的DB数据库都会变成Recovery Pending状态, 无法使用。下面的测试就是顽强还活着的节点中,挑一个使数据库快速恢复可用状态。

2:测试环境

Node1 Node1 Node1 ClusterIP ListenerIP
172.XXX.XXX.112 172.XXX.XXX.113 172.XXX.XXX.114 172.XXX.XXX.115 172.XXX.XXX.117
ALWAYSONTEST01

ALWAYSONTEST02

ALWAYSONTEST03    
Primary;Synchronous Commit

Secondary;Synchronous Commit

Secondary;Asynchronous Commit    

登录 此时的主节点,查看如下:

各节点运行正常。

3:测试步骤

Step 1:关闭2个节点(XXX.112;XXX.113)使 Windows Cluster Fail,Ping Cluster IP 显示超时。

----剩余172.XXX.XXX.114 保留非同步的副本。

Step 2:登入唯一的存活的节点172.XXX XXX.114,SQL 显示错误如下:

Step 3:刷新DB,查询可用性组和DB的状态已分别处于Resolving 和Recovery Pending,数据库不可用。

此时Listener IP 也不可用

Step 4: 查看对应的Cluster 服务对应的Service Name

(Server ManageràLocal ServeràServices)

或(Server ManageràToolsàComponent ServicesàServices)

Step5:手动停止群集服务

---- net.exe stop Cluster_Name(实为Service name)

成功关闭后172.XXX.XXX.115无法Ping 通

Step6:在单一节点上使用强制仲裁,藉以启动WSFC群集

---- net.exestart Cluster_Name/forcequorum

成功启动后Cluster IP 可以Ping 通;Listener IP 无法Ping 通

通过FailOver Cluster Manger 查看节点和AG的状态如下:

下图为各节点状态;

下图为高可用性组的状态

Step 7:重启SQL Serveice 服务

----(个别情况下:首先,Disable后restart,然后再Enable后restart)

Step 8:执行可用性群组的强制性手动容错转移

---- ALTER AVAILABILITY GROUP group_name FORCE_FAILOVER_ALLOW_DATA_LOSS (其中 group_name 是可用性组的名称)

Step 9:可用性组的状态变为Primary状态,DB显示同步,listener IP也为可用

步骤概况总结

Windows Failover Cluster若因故障server太多, 会使整个cluster fail, 此时在其他残存server的DB, 会在Recovery Pending状态, 无法使用, 采用以下可使DB恢复使用.

停止群集服务 --> 强制仲裁以启动WSFC群集 --> 重启SQL Serveice服务 --> 执行可用性群组的强制性手动容错转移.

4:补充说明

此时Restart测试过程中关闭的节点(XXX.112;XXX.113),部署其上的DB显示Not Synchronizing。

 

本文版权归作者所有,未经作者同意不得转载,谢谢配合!!!

Windows Cluster失败后,AlwaysOn在残存Server节点上快速恢复DB的详细步骤的更多相关文章

  1. 教训 Mac下装windows系统 失败后 磁盘空间丢失

    本来Mac上装的是win10 最近老提示快过期了 想到月底就要停止免费更新了 决定装一下win8 然后升级到win10 因为之前有过装win10的经验 所以很轻松 进入Mac 先到bootcamp 取 ...

  2. 删除Windows中隐藏的物理网卡和网络虚拟化失败后的虚拟网卡

    Windows环境下,在更换硬件服务器主板和网卡等硬件.恢复操作系统或者网络虚拟化失败后,可能会出现网卡方面的问题.例如,设备管理器中多了不应该存在的网卡:因命名冲突无法重命名当前网络连接:IP地址冲 ...

  3. 宣布正式发布 Windows Azure Notification Hub,新增 SQL Server AlwaysOn 可用性组侦听器支持

    今天,我们非常高兴地宣布,针对使用 Windows Azure 的移动和企业开发人员推出一些新功能.这些新功能可以减少构建移动应用程序的开发时间和成本,并能帮助企业开发人员实现高可用性和全球业务连续性 ...

  4. Windows 8.1升级至Windows 10后,启动VisualSVN Server Manager报错:提供程序无法执行所尝试的操作 (0x80041024)的解决

    1.1.Windows 8.1升级至Windows 10后,启动VisualSVN Server Manager报错:提供程序无法执行所尝试的操作 (0x80041024),VisualSVN Ser ...

  5. Windows Service 之 安装失败后的删除

    一个windows服务在卸载之后并不会马上从服务列表中消失掉,而是在服务列表中会显示服务被禁用:这样在你需要再次安装同名服务时,就装不了了,会被提示同名的服务已经存在.如果是在本地安装,这种情况很容易 ...

  6. SQL Server 2008 R2中配置作业失败后邮件发送通知

    SQL Server日常维护中难免会遇到作业失败的情况.失败后自然需要知道它失败了,除了例行检查可以发现出错以外,有一个较实时的监控还是很有必要的.比较专业的监控系统比如SCOM虽然可以监控作业执行情 ...

  7. windows server服务器上mysql远程连接失败的坑

    windows server服务器上mysql远程连接失败的坑 背景:趁这阿里云活动,和朋友合伙买了个服务器,最坑的是没想到他买的是windows Server的,反正便宜,将就着用吧,自己装好了wa ...

  8. Configure Red Hat Enterprise Linux shared disk cluster for SQL Server——RHEL上的“类”SQL Server Cluster功能

    下面一步一步介绍一下如何在Red Hat Enterprise Linux系统上为SQL Server配置共享磁盘集群(Shared Disk Cluster)及其相关使用(仅供测试学习之用,基础篇) ...

  9. 记一次 windows server 2012R2 上安装 MSSQL2005 及网站发布

    背景: 原因是因为没有购买新的数据库授权.由于之前服务器是windows 2003 由于后绪网站的版本可能会升到.net4.5 据说 2003上安装不起 所有由另一同事到客户安装一个window se ...

随机推荐

  1. git命令教程

    git教程笔记 Git是什么? Git是一个分布式版本控制系统 版本控制方式 集中式版本控制:从版本库中先取得最新的版本,改完之后再上传到版本库中,需要联网 分布式版本控制:每个合作者电脑上都有一个版 ...

  2. ES6变量的解构赋值(一)数组的解构赋值

    let[a,...arr]=[1,2,3,4];//a==>1 arr==>[2,3,4] let [x, y, ...z] = ['a'];//a==>'a' y==>und ...

  3. 父子间的通信,以及ref

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  4. iOS----------如何给github的README添加图片

    1.在你的项目中建一个文件夹,专门存放图片.如果想简单操作的话,可以截个图直接拉到项目中. 2.将建好的文件夹上传到github进行同步 3.在github上找到图片的URL地址 4.按照如下格式   ...

  5. Pycharm界面的子窗口不见了,怎么办?

    pycharm程序界面一般有很多子窗口,如图1所示. 图1  Pycharm子窗口 如果你发现某些子窗口不见了,图2是最过分的情形,无须担心. 图2  Pycharm界面的子窗口不见了 打开项目视图子 ...

  6. linux内核的冷热页分配器

    先说说cpu的cache,和cpu的cache比起来访问主内存是非常慢的,为了加快速度根据本地性原则,cpu在访问主内存的时候会把附近的一块数据都加载到cpu的cache里,之后读写这块数据都是在ca ...

  7. Linux:搭建samba服务器

    samba服务器的搭建 修改防火墙设置 firewall-cmd --permanent --add-service=samba //设置防火墙 firewall-cmd --reload //重新加 ...

  8. 使用vue-cli搭建spa项目

    1. 什么是vue-cli? vue-cli是vue.js的脚手架,用于自动生成vue.js+webpack的项目模板,创建命令如下: vue init webpack xxx 注1:xxx 为自己创 ...

  9. 操作系统|VirtualBox for Mac(虚拟机软件)

    VirtualBox是德国一家软件公司InnoTek所开发的虚拟系统软件,它不仅具有丰富的特色,而且性能也很优异,更是开源的,成为了一个发布在GPL许可之下的自由软件.VirtualBox 可以在 L ...

  10. vue项目中引入特殊字体

    特殊字体指的是默认电脑中没有的 1.下载字体 2.新建文件夹font,把字体放进去 3.新建font.css 4.使用@font-face设置字体 @font-face { font-family: ...