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

时间:2018-09-28 19:05:06

标签: database azure azure-sql-database

提前谢谢...

我创建了一个故障转移组,并想要测试故障转移。我通过“故障转移组”选项卡强行进行了故障转移,它说成功了,并且辅助数据库现在是主数据库。但是,当我尝试写它时,出现此错误:

错误:

  

[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]由于数据库是只读的,因此无法更新数据库“ PTextingDvlp”。

我的理解是,一旦辅助数据库成为主数据库,就可以对其进行读取/写入。

有人知道原因吗?

2 个答案:

答案 0 :(得分:1)

如上所述,当您进行故障转移时,主数据库将成为辅助数据库,并且也是只读的。故障转移的结果是,新主数据库的连接字符串发生了变化。

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

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

参考Active geo-replication and auto-failover groups

答案 1 :(得分:0)

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

因此,您需要使用正确的连接字符串,该字符串指向读/写侦听器端点

您可以在您的azure门户中找到它,网址为:

Dashboard > All resources > yourgeoname - Failover groups > yourgeoFailover

滚动到底部,您将看到读/写侦听器端点和只读侦听器端点。

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

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