SQL Server AlwaysOn AG主副副本TRUSTWORTHY属性不一致是否为Bug?
问题解析:AlwaysOn主副库TRUSTWORTHY属性不一致(SQL Server 2014)
原因分析
- SQL Server 2014的AlwaysOn可用性组不会自动同步TRUSTWORTHY数据库属性,该属性不在AG默认同步的核心配置项范围内。
- 副副本上
is_trustworthy_on为1的常见场景:- 数据库初始化到副副本时(如备份还原),该属性原本就是1,之后主副本手动修改为0,但变更未同步到副副本;
- 副副本曾临时作为主库(故障转移期间)被设置为TRUSTWORTHY ON,后续故障转移回原主库后,副副本的该属性未被覆盖。
是否属于Bug?
这不是Bug,而是SQL Server 2014的设计局限。微软在SQL Server 2016及后续版本中,已将TRUSTWORTHY属性纳入AG自动同步的属性列表,主库的属性变更会自动同步至所有副副本。
统一属性的解决方法
由于SQL Server 2014副副本默认处于可读状态,无法直接修改属性,可通过以下方式统一主副库配置:
- 故障转移后修改:将目标副副本切换为主副本,执行
ALTER DATABASE [你的数据库名] SET TRUSTWORTHY OFF;,再故障转移回原主库; - 移除后重新加入:若业务允许,将副副本从AG中移除,修改属性后重新加入AG;
- 备份还原同步:备份主库(确保TRUSTWORTHY为0),在副副本上以
WITH NORECOVERY还原,重新同步数据与属性。
内容的提问来源于stack exchange,提问作者D.C.
相关产品推荐
相关产品推荐

