azure - 带有专用终结点的主动故障转移的 Azure SQL 数据库连接字符串
问题描述
我们有一个 ASP.Net Web 应用程序作为连接到 Azure SQL Server 的 Azure 应用程序服务托管。我们有 2 个 Azure SQL Server,一个在北部,另一个在南部(用于故障转移)。我们为两个 sql 服务器创建了私有端点:-
NorthRegion-devxxxs-sql-server.database.windows.net
SouthRegion-devxxxs-sql-server.database.windows.net
以下是故障转移组中的读/写侦听器端点:-
XXXXX-devxxxxs-failovergroup.database.windows.net
North 是主要的,South 是次要的,它们被添加到故障转移组。AsP.Net Web 应用程序连接字符串使用专用端点连接到 North Region SQL Server,如下所示:-
<add name="xxxxxxxx" connectionString="Data Source=tcp:NorthRegion-devxxxs-sql-server.database.windows.net,1433;Initial Catalog=dtasbasename;Persist Security Info=False;User ID=Admin;Password=YYYYYY;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" providerName="System.Data.SqlClient" />
我们进行了故障转移测试,SQL Server 被切换为 South Primary 和 North Secondary,但我们怀疑由于 pvt 端点它仍然连接到 North region 数据库,因此为了测试我们删除了 North region 数据库并且我们得到了运行时异常。
然后我将连接字符串更改为使用 READ/WRITE Listner,这就是我的连接字符串的外观(相同的用户 ID 和密码),但仍然出现运行时异常:无法连接到数据库。以下是使用故障转移组中的侦听器端点修改后的连接字符串:-
<add name="xxxxxxxx" connectionString="Data Source=tcp:XXXXX-devxxxxs-failovergroup.database.windows.net,1433;Initial Catalog=dtasbasename;Persist Security Info=False;User ID=Admin;Password=YYYYYY;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" providerName="System.Data.SqlClient" />
TCPPING XXXXX-devxxxxs-failovergroup.database.windows.net:1433
来自应用程序服务(控制台)的 TCPPing 对故障转移组 FQDN 正常工作并返回已连接(基本上应用程序服务也能够 ping 故障转移组以及专用 SQL 端点)。
我的问题是,在这种情况下,连接字符串应该是什么样子,我在 2 个不同区域中拥有 2 个 SQL Server,具有专用端点和故障转移组。我不确定 web.config 连接字符串中的数据库服务器名称应该是什么,以便在主服务器出现故障时它可以自动连接到辅助服务器。
有什么帮助吗?
解决方案
推荐阅读
- c# - 在 C# 中保留转义字符
- android - Android Studio JNI 使用 cmake 构建错误
- php - 在 curl 中点击 sms api url 时如何解决连接被拒绝的问题
- json - 在 Groovy 上执行 HTTP POST 请求
- amazon-web-services - 在现有 EC2 实例上启动 ECS 任务
- android - 如何使用 Kotlin 延迟加载协程刷新 ViewModel 数据?
- c# - 当向 RichTextBox 添加更多文本并突出显示时,它会清除所有以前的突出显示
- algorithm - 无法找出解决阵列问题的方法
- javascript - 如何使用 javascript 检测可播放的音频类型?
- java - 打印范围内的非重复随机数