Sql-Server
如果 Always On 高可用性節點具有不同的連接預設語言會怎樣?
我一直在研究 Always On 高可用性組中的數據庫 - 由於我不明白的原因 - 應用程序在主節點和輔助節點上的登錄具有不同的預設語言。
我目前的特殊情況是這樣的:
- 應用程序期望的語言是英式英語。它沒有指定連接時使用的語言;它使用登錄的預設語言。該應用程序的文件說預設語言應該是英國英語,大概是因為它沒有在連接時指定語言。
- 應用程序連接到偵聽器,而不是直接連接到任何一個節點。
- 應用程序通常會將日期保存為字元串(例如
UPDATE FooTable SET BarColumn = '01\02\2020' WHERE IdColumn = 42
)。數據將保存在日期或日期時間列中。- 數據庫偵聽器上登錄的預設語言是英式英語。
- 主節點登錄的預設語言是英式英語。
- 輔助節點登錄預設語言為美式英語
我不是 DBA,當然也不是 Always On 高可用性方面的專家。使用此配置可能存在/曾經存在什麼危險?是否交換主節點和輔助節點上的語言是否重要?
如果應用程序在登錄時設置會話的語言,則預設語言無關緊要。如果它沒有在會話中專門設置語言,那麼日期字元串可能會被錯誤地轉換,並且日期會以美式英語格式而不是英式英語格式返回。
除非有一些未說明的原因,否則我建議只需更改輔助伺服器上登錄的預設語言以匹配主伺服器。