如果 Always On High Availability 节点具有不同的连接默认语言,会发生什么情况?

Ric*_*ard 3 sql-server availability-groups logins sql-server-2017

我一直在 Always On High Availability 组中研究数据库,由于我不明白的原因,该组在主节点和辅助节点上对应用程序登录使用不同的默认语言。

我目前的特殊情况是这样的:

  • 应用程序期望的语言是英式英语。它没有指定连接时使用的语言;它使用登录的任何默认语言。该应用程序的文档说默认语言应该是英式英语,大概是因为它没有指定连接语言。
  • 应用程序连接到侦听器,而不是直接连接到任一节点。
  • 应用程序通常将日期保存为字符串(例如UPDATE FooTable SET BarColumn = '01\02\2020' WHERE IdColumn = 42)。数据将保存在日期或日期时间列中。
  • 数据库侦听器上登录的默认语言是英式英语。
  • 主节点登录的默认语言为英式英语。
  • 辅助节点登录默认语言为美式英语

我不是 DBA,当然也不是 Always On High Availability 方面的专家。使用此配置可​​能存在/已经存在哪些危险?如果交换主节点和辅助节点上的语言是否重要?

Ton*_*kle 7

如果应用程序在登录时设置会话的语言,则默认语言无关紧要。如果没有在会话中专门设置语言,则存在日期字符串被错误转换的风险,并且日期以美式英语格式而不是英式英语格式返回。

除非有一些未说明的原因,否则我建议简单地更改次要登录的默认语言以匹配主要。