Azure SQL DB:故障转移辅助数据库是只读的



提前谢谢你...

我创建了一个故障转移组,并希望测试故障转移。我通过故障转移组选项卡强制故障转移,它说它已成功,辅助数据库现在是主数据库。但是,当我尝试写入它时,出现此错误:

错误:

[Microsoft][ODBC SQL Server Driver][SQL Server]无法更新数据库"PTextingDvlp",因为数据库是只读的。

我的理解是,一旦辅助数据库成为主数据库,它就是读/写的。

有谁知道原因吗?

选择对Azure SQL使用故障转移时,可能不会注意到连接字符串发生了更改。

因此,需要使用正确的连接字符串,即指向读/写侦听器终结点的连接字符串。

可以在 Azure 门户中找到此信息,网址为:

Dashboard > All resources > yourgeoname - Failover groups > yourgeoFailover

滚动到底部,你将看到读/写侦听器终结点和只读侦听器终结点。

更改连接字符串以使用其中之一,如果要写入,请选择读/写。无论使用哪种故障转移,这将始终指向活动数据库。

此外,如果只需要读取数据,则可以使用只读连接字符串作为负载平衡。从而减少读/写数据库的负载。

如前所述,故障转移时,主数据库将变为辅助数据库和只读数据库。由于故障转移,新主数据库的连接字符串会发生变化。

更有可能的是,您的连接字符串仍然指向现在为只读的原始数据库。

解决方案:请检查是否已更新连接字符串以指向新的主数据库,以便能够进行更新。

参考:活动异地复制和自动故障转移组

最新更新