提前谢谢你...
我创建了一个故障转移组,并希望测试故障转移。我通过故障转移组选项卡强制故障转移,它说它已成功,辅助数据库现在是主数据库。但是,当我尝试写入它时,出现此错误:
错误:
[Microsoft][ODBC SQL Server Driver][SQL Server]无法更新数据库"PTextingDvlp",因为数据库是只读的。
我的理解是,一旦辅助数据库成为主数据库,它就是读/写的。
有谁知道原因吗?
选择对Azure SQL使用故障转移时,可能不会注意到连接字符串发生了更改。
因此,需要使用正确的连接字符串,即指向读/写侦听器终结点的连接字符串。
可以在 Azure 门户中找到此信息,网址为:
Dashboard > All resources > yourgeoname - Failover groups > yourgeoFailover
滚动到底部,你将看到读/写侦听器终结点和只读侦听器终结点。
更改连接字符串以使用其中之一,如果要写入,请选择读/写。无论使用哪种故障转移,这将始终指向活动数据库。
此外,如果只需要读取数据,则可以使用只读连接字符串作为负载平衡。从而减少读/写数据库的负载。
如前所述,故障转移时,主数据库将变为辅助数据库和只读数据库。由于故障转移,新主数据库的连接字符串会发生变化。
更有可能的是,您的连接字符串仍然指向现在为只读的原始数据库。
解决方案:请检查是否已更新连接字符串以指向新的主数据库,以便能够进行更新。
参考:活动异地复制和自动故障转移组