Sqlserver 2014 alwayson架构主节点执行alter table导致从节点的阻塞问题
来源:这里教程网
时间:2026-03-02 11:15:26
作者:
sqlserver 2014 alwayson架构
1个主节点
1个standby节点
6个只读节点
问题展现:
一台只读节点出现阻塞,主节点无法同步数据到这个只读节点。
问题原因:
在主节点执行了一个DDL语句,对一个表的字段类型进行了修改。
ALTER TABLE table1 ALTER COLUMN [Name] [NVARCHAR] (MAX)
此时正好只读库有一个关于table1表的长事务查询。
这个table1表的长事务查询阻塞了主节点执行ALTER TABLE table1 ALTER COLUMN [Name] [NVARCHAR] (MAX)对只读库的同步。
导致在只读节点上的table1表无法执行alter table操作。
这样导致所有的主节点的日志都无法从主节点同步到这个只读节点上。
而只读节点上所有后面对table1表的查询都被阻塞了。
查询主从同步脚本:
SELECT availability_mode_desc ,
role_desc ,
replica_server_name ,
last_redone_time ,
GETDATE() now ,
DATEDIFF(ms, last_redone_time, GETDATE()) diffMS
FROM ( ( sys.availability_groups AS ag
JOIN sys.availability_replicas AS ar ON ag.group_id = ar.group_id
)
JOIN sys.dm_hadr_availability_replica_states AS ar_state ON ar.replica_id = ar_state.replica_id
)
JOIN sys.dm_hadr_database_replica_states dr_state ON ag.group_id = dr_state.group_id
AND dr_state.replica_id = ar_state.replica_id;
解决办法:
为了尽快解决此问题,最快的办法是杀掉那个只读节点上的长事务查询的session
让主节点的这个alter table的DDL操作可以同步到只读节点上,阻塞解决,同步也恢复正常。
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 出现操作系统错误 1330(此帐户的密码已过期。)
出现操作系统错误 1330(此帐户的密码已过期。)
26-03-02 - SQL Server Report Service网页页面显示英文问题
SQL Server Report Service网页页面显示英文问题
26-03-02 - 通过链接服务器把一台服务器的数据insert到另一台服务器上
通过链接服务器把一台服务器的数据insert到另一台服务器上
26-03-02 - 【SQLServer】SQLServer使数据库脱机offline
【SQLServer】SQLServer使数据库脱机offline
26-03-02 - 信息中心机房,空气调节系统的设计
信息中心机房,空气调节系统的设计
26-03-02 - sqlserver 无法启动,报错误 26024,严重性 16,状态 1
sqlserver 无法启动,报错误 26024,严重性 16,状态 1
26-03-02 - 把txt文本导入sqlserver表内
把txt文本导入sqlserver表内
26-03-02 - Ubuntu部署测试全流程指南(手把手教你完成Ubuntu系统验证)
Ubuntu部署测试全流程指南(手把手教你完成Ubuntu系统验证)
26-03-02 - Sqlserver delete表部分数据释放数据文件空间
Sqlserver delete表部分数据释放数据文件空间
26-03-02 - Sqlserver报错:该伙伴事务管理器已经禁止了它对远程/网络事务的支持
