web-dev-qa-db-ja.com

Always On高可用性ノードの接続のデフォルト言語が異なる場合はどうなりますか?

私は、Always On High Availabilityグループのデータベースに取り組んでいます。これは、理解できない理由により、プライマリノードとセカンダリノードでのアプリケーションのログインに異なるデフォルト言語が使用されています。

現在私が持っている特定の状況はこれです:

  • アプリケーションが期待する言語はイギリス英語です。接続時に使用する言語は指定しません。ログインにはデフォルトの言語が使用されます。アプリケーションのドキュメントには、おそらく接続時に言語を指定していないため、デフォルトの言語はイギリス英語である必要があると記載されています。
  • アプリケーションは、どちらのノードにも直接接続するのではなく、リスナーに接続します。
  • アプリケーションは日付を文字列として保存することがよくあります(例:UPDATE FooTable SET BarColumn = '01\02\2020' WHERE IdColumn = 42)。データは日付または日時列に保存されます。
  • データベースリスナーでのログインのデフォルト言語はイギリス英語です。
  • プライマリノードでのログインのデフォルト言語はイギリス英語です。
  • セカンダリノードでのログインのデフォルト言語はAmerican Englishです。

私はDBAでもなく、Always On High Availabilityの専門家でもありません。この構成を使用することで、どのような危険が発生する可能性がありますか?プライマリノードとセカンダリノードの言語を入れ替えても問題ありませんか?

3
Richard Ward

アプリケーションがログイン時にセッションの言語を設定している場合、デフォルトの言語は問題ではありません。セッションで言語を明確に設定していない場合、日付文字列が正しく変換されず、日付がイギリス英語ではなくアメリカ英語形式で返されるリスクがあります。

明記されていない理由がない限り、セカンダリのログインのデフォルト言語をプライマリと一致するように変更することをお勧めします。

7
Tony Hinkle