SQL Server AG集群启动不起来的临时自救大招
SQL Server AG集群启动不起来的临时自救大招
背景
前晚一朋友遇到AG集群发生来回切换不稳定的情况,情急之下,朋友在命令行使用命令重启WSFC集群
结果重启WSFC集群之后,非但没有好转,导致整个AG无法启动,主副本和辅助副本都处于正在解析的状态
于是这位朋友打电话向我求救,询问了一下情况和环境
环境
系统:Windows2012R2
数据库:SQL Server2014 SP2
三台机器,一个域控,两个数据库节点
过程
于是我查看了一下WSFC日志和SQL Server日志并没有找到有用信息,眼看停机时间越来越长,只好先恢复业务,但是有AG处于正在解析状态
无法做任何操作,包括:备份数据库,分离数据库,删除AG等
继续询问朋友数据库备份的情况,数据库是每天一个完备,每个小时一个日备,当时的情况是距离最后一个日备已经过了40分钟
如果还原数据库来恢复业务,那么就会造成40分钟的数据丢失
当时急中生智,可能直接拷贝mdf文件和ldf文件并附加能够恢复数据库,于是把两个数据库节点的SQL Server服务都停掉,然后直接把所有数据库的mdf文件和
ldf文件拷贝出来,搬迁到另一台SQL Server服务器上,这个SQL Server服务器是单机数据库,并没有做任何高可用集群
待所有数据库搬迁完毕之后,逐个数据库进行附加操作,想不到的是居然能附加成功!
所有数据库附加完毕后,创建登录帐户,修改程序连接,验证连接,验证数据,重新开启业务,业务恢复,整个过程大概用了2个小时
后记
一天之后,AG集群修复好了,怎麽重新把当前的业务库从单机SQL Server的机器上重新加入到AG集群呢?
一般人会用各种办法把业务库从单机SQL Server搬迁回去AG的节点,然后重做AG
今天走起君做了一个实验,实验环境跟朋友的环境一模一样,发现,只需要把单机SQL Server上的所有业务库进行分离,
然后将AG中的所有节点的SQL Server服务停掉,然后拷贝mdf文件和ldf文件回去所有AG节点覆盖原来的数据库文件(注意做好备份)
然后启动AG中的各个节点的SQL Server服务,AG没有报错,一切回复正常,当然这种方法停机时间会比一般方法长
注意点:
1、拷贝数据库文件到单机SQL Server的时候,要选择在主副本拷贝或者同步模式的辅助副本
2、从单机SQL Server拷贝数据库文件到AG节点的时候,要拷贝到AG的所有节点
总结
SQL Server应该没有对数据库进行验证,也就是说,对数据库是否已经集群化没有进行验证,所以这一做法才得以成功
从SQL Server2012开始刚推出AlwaysOn开始,AlwaysOn这个数据库集群技术就需要依赖操作系统的WSFC来做故障转移,一直到SQL Server2017也是如此
对于WSFC的问题,即使是经验丰富的SQL Server DBA也未必能搞定,因为牵涉到Windows深层次的原理,有些问题还要发dump文件给微软分析让微软解决,
总觉得微软的技术太封闭,不管怎样,有临时解决方法总比没有好
如有不对的地方,欢迎大家拍砖o(∩_∩)o
本文版权归作者所有,未经作者同意不得转载。
SQL Server AG集群启动不起来的临时自救大招的更多相关文章
- (转载) SQL Server AG集群启动不起来的临时自救大招
背景 前晚一朋友遇到AG集群发生来回切换不稳定的情况,情急之下,朋友在命令行使用命令重启WSFC集群 结果重启WSFC集群之后,非但没有好转,导致整个AG无法启动,主副本和辅助副本都处于正在解析的状态 ...
- 搭建SQL server AwaysOn集群
1.环境 系统:windows server 2012 R2 数据库版本:SQL server 2012 三台服务器,IP分别是:10.10.10.111,10.10.10.112,10.10.10. ...
- 阿里云重磅发布RDS for SQL Server AlwaysOn集群版
2018年双十一刚过,阿里云数据库发布RDS for SQL Server AlwaysOn集群版,这是业界除微软云SQL Database外,首家云计算公司基于SQL Server最新AlwaysO ...
- Sql Server 2012 集群配置
基于Windows Server 2008 R2的WSFC实现SQL Server 2012高可用性组(AlwaysOn Group) 2012年5月 微软新一代数据库产品SQL Server 201 ...
- 图文详解在Windows server 2008 R2上安装SQL Server 2012集群
1.准备: 4台服务器(1台AD.2台SQL服务器.1台iSCSI存储服务器) 9个IP(1个AD的IP.2个SQL服务器的IP.2个心跳IP.1个iSCSI存储服务器的IP.1个集群IP.1个DTC ...
- 创建SQL Server数据库集群的经历
自己尝试安装SQL Server集群和配置AlwaysOn可用性组,服务器系统是Windows Server 2012 R2,SQL Server是2014企业版,我的环境是一台服务器,然后用Hype ...
- Windows Server 2008 + SQL Server 2005集群
一. 基础环境 1. 服务器规划 2. 网络拓扑 二. 相关说明 1.为了节约服务器资源,AD服务器可以和iSCSI设备服务器同为一台服务器.由于iSCSI软件需要,目前微软只开发了基于Windows ...
- SQL Server AlwaysOn 集群 关于主Server IP与Listener IP调换的详细测试
1. 背景 SQL Server 搭建AlwaysOn后,我们就希望程序连接时使用虚拟的侦听IP(Listener IP),而不再是主Server 的IP.如果我们有采用中间件,则可以在配置中,直接用 ...
- VMware Workstation 11 搭建windows server 2012 之sql server 2012集群常见问题整理
1.windows server 2012内置支持iSCSI发起程序无需额外安装,iSCSI Software Target 可作为“文件和存储服务”角色下的内置功能使用 2.拷贝虚拟机的文件加入域时 ...
随机推荐
- VS2015下OpenGL库的配置
写在前面: 最近要用到OpenGL,光是在VS2015下配置就费了很大的劲,现在将我的成果直接贡献给大家,希望能为需要在VS2015下配置OpenGL的读者省去一些麻烦. 正文: 资源地址1:http ...
- java swing组件的一些基本属性
JLabel get/setText(): 获取/设置标签的文本. get/seticon(): 获取/设置标签的图片. get/setHorizontalAlignment(): 获取/设置文本的水 ...
- ios系统判断某些适配 __IPHONE_OS_VERSION_MAX_ALLOWED
由于app的最新设计字体是ios9之后的平方字体,但app最低支持ios7,so...想在常量配置文件类里统一适配下字体,如下: //适配字体,ios9及以上系统使用新字体--平方字体 #if __I ...
- 通过chrome inspect 来调试手机hybird APP
hybird APP 虽然显示效果和编译前的前端页面大致相同,但是其中操作可能会调用一些浏览器中没有的接口,从而产生一些意料之外的问题,因此了解和掌握如何调试就变得尤为重要. 本文简要介绍了如何利用c ...
- <CentOS7>如何设置hostname
在CentOS/RHEL 7中,有个叫hostnamectl的命令行工具,它允许你查看或修改与主机名相关的配置: ceph@client-node ~]$ hostnamectlstatus Stat ...
- Printk与sched_clock_init的一点分析
在分析Linu内核启动的过程中,发现一段"不平常"的日志,感觉产生这段日志的代码肯定是"不可思议"的.因此就大致分析了一下: 日志如下: [ 0.000000] ...
- [ext4]04 磁盘布局 - Meta Block Groups
Meta Block Groups,可以翻译为元块组集. 如果不采用Meta Block Groups特性,在每个冗余备份的超级块的后面是一个完整的(包含所有块组描述符的)块组描述符表的备份.如前所述 ...
- Servlet追忆篇:那些年一起学习的Servlet
title: servlet notebook: javaWEB tags:servlet --- Servlet是什么? Servlet是JavaWeb的三大组件之一. 作用类似银行前台接待: 接收 ...
- 使用OpenOffice实现各种文档转pdf或者html文档
---恢复内容开始--- 最近在做项目时需要写一个功能,将doc,ppt,xsl等文档做在线预览.网上查了很多资料,开始适用poi将文档转成pdf没成功,后来使用了OpenOffice4 + jodc ...
- 山东省第八届ACM省赛游记
Day 1: 凌晨,来了几分兴致,和队友在VJudge上开了一把zoj月赛,WA一发闷一口拿铁,一瓶拿铁 不一会就被喝完了!好气啊!遂开始愉快地打游戏,打着打着,woc,居然3点半了,小睡片 刻,咬上 ...