AlwaysON SQL Server 2014应用程序异常:更新数据库失败,因为数据库是只读的



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

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

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

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

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

最新更新