如何从Python + SQL Alchemy连接高可用SQL Server

1 投票
1 回答
7068 浏览
提问于 2025-04-17 20:41

我们的基础设施团队让我们在所有应用程序的连接字符串中添加“MultiSubnetFailover=True”,这样我们就可以利用新的SQL Server高可用性设置,涉及到可用性组。

不过我遇到了一些困难,因为我们有一些Python程序是通过SQL Alchemy连接(读写)数据库的。我一直在寻找,但没有发现SQL Alchemy或其他Python驱动中有关于这个MultiSubnetFailover功能的选项。请问使用SQL Alchemy驱动,或者说用Python,能否连接到高可用性设置?如果可以的话,应该怎么做呢?

顺便提一下,我的基础设施同事给我指了一个链接,里面具体讲了.NET应用程序如何在连接字符串中使用“MultiSubnetFailover=True”设置等内容,链接在这里(http://msdn.microsoft.com/en-us/library/hh205662%28v=vs.110%29.aspx)。

1 个回答

2

http://docs.sqlalchemy.org/en/latest/dialects/mssql.html#dialect-mssql-pyodbc-connect

你可以参考文档最后部分的示例,像这样使用:

import urllib
from sqlalchemy import create_engine
connection_string = '127.0.0.1;Database=MyDatabase;MultiSubnetFailover=True'
engine_string = 'mssql+pyodbc:///?odbc_connect={}'.format(urllib.quote_plus(connection_string))
engine = create_engine(engine_string)

根据评论更新

对于较新版本的 Microsoft ODBC Driver for SQL Server,你可能需要使用 MultiSubnetFailover=Yes,而不是 True

撰写回答