这篇文章主要为大家展示了“数据库中删除alwayson主节点一个表的统计信息导致一个辅助节点的同步延迟”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“数据库中删除alwayson主节点一个表的统计信息导致一个辅助节点的同步延迟”这篇文章吧。
环境:
sqlserver2014 alwayson架构
一个辅助节点丢失统计信息。
用户在客户端通过链接服务器查询一个辅助节点的表的信息。
select * from [10.0.0.100].[hr].table1
报错:
查询到辅助节点10.0.0.100上面的这个table1表的统计信息_WA_Sys_00000091_28B9D11F里面的信息丢失。
处理办法:
去主节点drop这个表的统计信息。
drop statistics dbo.table1._WA_Sys_00000091_28B9D11F
drop完成后,再在客户端通过链接服务器查询这个辅助节点上这个表table1就正常了。
但是却导致另外一个辅助节点在查询这个表的SQL出现了LCK_M_SCH_S的wait_type
这句SQL也是在查询table1表。
另外也导致一个事务在这个辅助节点一直没有完成。
而alwayson的同步也出现了问题:
从时间点来看:
进行drop主节点那个表的统计信息、发生SQL的LCK_M_SCH_S的wait_type、事务一直没有释放、alwayson同步不正常。
在这期间table1表产生了很多的阻塞。
导致问题是,在出现同步问题的这个辅助节点的查询数据和主节点出现不一致问题。
最后没有采取什么办法,到了15点后,那个事务自己释放后同步自动恢复了。
因为这个时间table1表有很多的死锁,判断是deadlock的发生释放了这个事务,恢复了同步。
以上是“数据库中删除alwayson主节点一个表的统计信息导致一个辅助节点的同步延迟”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!