Sql-Server

如果 Always On 高可用性節點具有不同的連接預設語言會怎樣?

  • February 27, 2020

我一直在研究 Always On 高可用性組中的數據庫 - 由於我不明白的原因 - 應用程序在主節點和輔助節點上的登錄具有不同的預設語言。

我目前的特殊情況是這樣的:

  • 應用程序期望的語言是英式英語。它沒有指定連接時使用的語言;它使用登錄的預設語言。該應用程序的文件說預設語言應該是英國英語,大概是因為它沒有在連接時指定語言。
  • 應用程序連接到偵聽器,而不是直接連接到任何一個節點。
  • 應用程序通常會將日期保存為字元串(例如UPDATE FooTable SET BarColumn = '01\02\2020' WHERE IdColumn = 42)。數據將保存在日期或日期時間列中。
  • 數據庫偵聽器上登錄的預設語言是英式英語。
  • 主節點登錄的預設語言是英式英語。
  • 輔助節點登錄預設語言為美式英語

我不是 DBA,當然也不是 Always On 高可用性方面的專家。使用此配置可​​能存在/曾經存在什麼危險?是否交換主節點和輔助節點上的語言是否重要?

如果應用程序在登錄時設置會話的語言,則預設語言無關緊要。如果它沒有在會話中專門設置語言,那麼日期字元串可能會被錯誤地轉換,並且日期會以美式英語格式而不是英式英語格式返回。

除非有一些未說明的原因,否則我建議只需更改輔助伺服器上登錄的預設語言以匹配主伺服器。

引用自:https://dba.stackexchange.com/questions/260719