对于连接字符串,在高可用性设置中,路由如何工作?

Posted

技术标签:

【中文标题】对于连接字符串,在高可用性设置中,路由如何工作?【英文标题】:For connection strings, in a High Availability setup, how does the routing work? 【发布时间】:2021-11-26 01:51:39 【问题描述】:

我相信部分答案是,它连接到一个侦听器服务器,该服务器重定向到一个真实的数据库。

比如说,一个连接字符串是

data source=SQLCL01;initial catalog=UserDatabase;user id=test-user;password=##pass##;MultipleActiveResultSets=True

SQLCL01 是一个监听器,我猜它会路由到该组中的一个真实数据库,但是如果 SQLCL01 死了会发生什么?连接不会中断吗?如果那里存在单点故障,这如何作为 HA 工作?

我知道有些数据库有 8 台服务器。他们是否担心 SQLCL01 的单个侦听器会宕机?还是我们设置多个监听器,可以在连接字符串中传入两个?

【问题讨论】:

这是给 dba.stackexchange.com 的 不认为 dba 是程序员,所以可能不知道?显然有些交叉? 这对 S.O. 中的其他用户没有用处。请阅读 Stack Overflow 的指南和教程。这与编程无关,即使使用“connectionString”也是如此。甚至,这与.net无关 【参考方案1】:

假设 HA 实施是可用性组,侦听器是作为 Windows 故障转移群集资源管理的 ANAME。在故障转移时,侦听器在重新计算仲裁并且正在进行故障转移时确实会暂时关闭。但它会出现在新的主节点上。

您的问题暗示了一个常见的误解——“高可用性”并不意味着“100% 正常运行时间”。它通常意味着这样描述的系统具有容错性,并且重新建立服务的时间比没有 HA 的情况要短得多。

【讨论】:

一个 ANAME 路由到单个 IP。由于所有 DNS 都使用 TTL 进行缓存,因此如果该单个 IP 出现故障,您的停机时间将平均为 0.5 * 您的 TTL。除非您运行的 TTL 非常低,否则这将如何帮助您减少停机时间? 几件事。首先,ANAME 不需要路由到单个 IP;搜索“多子网侦听器”。其次,如果两个节点在同一个子网上,新的主节点将承担集群资源的所有权,客户端将相应地重定向。第三,即使侦听器的 IP 由于故障转移而发生变化,Windows 集群也会将 ANAME 的 IP 更改为所需的任何值。

以上是关于对于连接字符串,在高可用性设置中,路由如何工作?的主要内容,如果未能解决你的问题,请参考以下文章

HSRP,STP配置

同一路由器连接的两台电脑设定完ip后ping不通为啥

电脑上显示连接不可用怎么办?

如何通过双wan口路由器实现远程连接到单位内网

NHibernate 和数据库连接故障转移?

路由器上如何配置IPSEC