【问题标题】:AlwaysON SQL Server 2014 Application exception: Failed to update database because database is readonlyAlwaysON SQL Server 2014 应用程序异常:无法更新数据库,因为数据库是只读的
【发布时间】:2015-10-09 09:18:20
【问题描述】:

我们有两个节点可用性组。这两个节点是 SQL cluster1- node1SQL cluster 2- node2 以及一个可用性组侦听器。 Java 应用程序正在连接到此侦听器,最初一切正常,即应用程序能够对数据库执行读/写操作,直到我们进行故障转移。

连接器字符串是driverURL=jdbc:jtds:sqlserver://[Listerner DNS Name]:[Port]/[Database]

假设最初 node1 是主要的,node2 是次要的。 故障转移后,node1 成为辅助节点,node2 成为主节点。现在应用程序仍然能够连接到数据库,但只能对数据库执行读取。如果我们尝试在该 DB 上进行插入,应用程序会抛出异常(在标题中提到)。

基本上,我需要的是应用程序能够始终执行读/写,而不管哪个节点是主节点。有什么想法吗?

【问题讨论】:

    标签: sql-server jdbc alwayson


    【解决方案1】:

    当连接字符串指向侦听器时,您应该没有理由获得只读数据库。这就是avail grp 监听器的重点——将流引导到读/写(主)数据库。 Ping DNS 名称并检查它是否解析到侦听器(在 AG 故障转移之前和之后)。不幸的是,我不使用 Java,因此无法进一步帮助您。干杯,马克。

    【讨论】:

      猜你喜欢
      • 2011-08-08
      • 2014-06-09
      • 1970-01-01
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多