2017-08-09 18 views
0

我尝试了很多事情并分析了很多文档,但尚未找到解决方案。Alwayson Groups的次要副本中的数据库是只读错误

我有三个名为VmWare的虚拟机(DC,SQLServer01,SQLServer02)。所有SQL Server都是域的成员。(DC)我为SQLServer01和SQLServer02安装了故障转移群集。我在SQLServer01中做了必要的配置。然后我为两台服务器安装了SQL Server 2014。现在,我创建了一个alwaysOn组。 SQLServer01是主要的,其他是次要的。当我切断SQLServer01的连接时,一切都很好(Secondary成为主)。其他条件可以接受。

但是,当所有服务器都在线时,除辅助副本中的读取操作外,我无法执行任何操作(插入,更新,删除,更改等)。我总是看到“数据库只读”错误。在Alwayson组的属性中,主副本都具有所有连接,次可读为“YES”。

即使所有服务器都在线,我也想进行CRUD操作。 (我的意思是,一切也适用于二级复制品。)

那么,你有什么建议或想法吗?

感谢您的时间和考虑。

+0

如果你想要“可修改”副本,你应该使用复制,而不是镜像/总是在 – sepupic

回答

0

发生该错误的原因是写入到sql server中的辅助副本是不可能的。只有主副本可以承载读写数据库,并且可用性组只能有一个主副本。 Secondary replicas can host read-only databases only。当两个副本都可用时,这两个副本中只有一个可以成为主副本,因此支持读写。当只有单个副本可用时,该副本将成为主副本,因为没有其他副本,并且可以对该副本执行读写操作。

您需要配置的是复制。

在SQL Server中,merge replication允许您在多个节点上进行写入,并使用定期同步来解决冲突并将更改推送到所有副本。

对等复制是另一种解决方案。应用程序层不允许冲突(在多个节点上更新同一行),但速度要快得多。

相关问题