(转载) 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文件给微软分析让微软解决,
总觉得微软的技术太封闭,不管怎样,有临时解决方法总比没有好
(转载) SQL Server AG集群启动不起来的临时自救大招的更多相关文章
- SQL Server AG集群启动不起来的临时自救大招
SQL Server AG集群启动不起来的临时自救大招 背景 前晚一朋友遇到AG集群发生来回切换不稳定的情况,情急之下,朋友在命令行使用命令重启WSFC集群 结果重启WSFC集群之后,非但没有好转,导 ...
- 搭建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 ...
- 转载:oracle RAC集群启动和关闭
http://www.cnblogs.com/yhfssp/p/8184761.html oracle 11G RAC集群启动和关闭: 1.停止数据库 $srvctl stop database –d ...
- 图文详解在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 ...
- SQL Server AlwaysOn 集群 关于主Server IP与Listener IP调换的详细测试
1. 背景 SQL Server 搭建AlwaysOn后,我们就希望程序连接时使用虚拟的侦听IP(Listener IP),而不再是主Server 的IP.如果我们有采用中间件,则可以在配置中,直接用 ...
- Windows Server 2008 + SQL Server 2005集群
一. 基础环境 1. 服务器规划 2. 网络拓扑 二. 相关说明 1.为了节约服务器资源,AD服务器可以和iSCSI设备服务器同为一台服务器.由于iSCSI软件需要,目前微软只开发了基于Windows ...
随机推荐
- iOS核心动画(专用图层篇)
之前的文章我们了解了Core Animation中图层的一些基础知识.没有看过的传送门在此: iOS核心动画基础篇 那么在了解了这些基础知识之后,接下来进入专用图层的了解 苹果为了方便和性能,封装了几 ...
- vscode 连接远程服务器 sftp
1.在vscode 应用商店搜索 sftp 下载安装 2.ctrl+shift+p 搜索sftp:config 生成sftp.json 3.配置你的服务器信息{ "name": & ...
- 日志之slf4j和logback日志系统(二)
这篇文章我们讲一下,如何使用slf4j和logback组合来搭建一套日志系统. 介绍 如果我们的系统是新系统,也就是之前没有引入其他的日志工具,那么只需要引入,如果之前已经用了common-loggi ...
- 一张图看懂SharpImage
通过下面的图片,可以瞬间看懂整个类库的脉络.图片比较大,如果看不清,可
- Java Web 深入分析(12) JVM(2) 垃圾收集与内存分配
前言 java的内存分配和垃圾回收往往是影响系统性能和并发能力的主要因素,虚拟机提供许多的参数就是为了根据不同环境和请教下进行调优,没有最好的调优也没有固定的调优.需要我们深入的去了解jvm的各个垃圾 ...
- ubuntu安装mysql数据库方法
ubuntu基于linux的免费开源桌面PC操作系统,十分契合英特尔的超极本定位,支持x86.64位和ppc架构.一个比较流行的Linux操作系统,不仅简单易用,而且和Windows相容性非常好.那么 ...
- Jwt Token 令牌
/* 采用JWT的生成TOKEN,及APP登录Token的生成和解析 */ public class JwtTokenUtil { /** * token秘钥 */ public static fin ...
- jar包下载网站
https://mvnrepository.com/ https://www.kumapai.com/open/query/?querytype=title&querykey=cglib ht ...
- JavaScript: 自动类型转换
我们都知道,JavaScript是类型松散型语言,在声明一个变量时,我们是无法明确声明其类型的,变量的类型是根据其实际值来决定的,而且在运行期间,我们可以随时改变这个变量的值和类型,另外,变量在运行期 ...
- Linux下 启动tomcat 时候同时日志命令
./startup.sh && tail -f ../logs/catalina.out