「AlwaysOn」は常に「Always On」ではありませんか?


8

Windowsフェールオーバークラスターを作成し、SQL Serverの2つのインスタンスをSQL Serverフェールオーバークラスターのノードとして追加しました。

SQL構成マネージャーで「AlwaysOn可用性グループ」を使用するようにサーバーを設定します。

フェイルオーバーをテストするために、長いクエリをロードして実行し、次にFailover Cluster Managerを使用してアクティブノードを停止し、アクティブノードのクラスターサービスを停止しました。

クエリは接続なしで壊れ、ノードがドレインされて新しいノードが引き継ぐ前に、サーバーは約20秒間使用不可と表示されました。

私はこれを間違っていましたか?接続がほとんどまたはまったく失われないように、これをどのように構成する必要がありますか?

AlwaysOnは常にオンではありませんか?

回答:


19

ここにはさまざまな質問がたくさんあります。

Q:「常時接続」とは何ですか?

Microsoftはそのブランド名(2016年までにスペースなしで書かれた)を使用して、2つの異なる機能を説明しています。

  • フェイルオーバークラスターインスタンス(FCI)-おじいちゃんがアクティブ/パッシブクラスターと呼んでいたもの
  • 可用性グループ(AG)-データベースミラーリングと似ていますが、場合によってはデータベースのグループで機能します(システムデータベースでは機能しません)。

それらの用語を使用して、使用している特定のAlways On機能を説明します。

Q:フェイルオーバーでは、常にオンになりますか?

FCIもAGも常にオンになっているわけではありません。フェイルオーバー中、実行中のトランザクションは失敗し、接続の再試行は5〜60秒(またはそれ以上)失敗する可能性があります。アプリケーションに適切な再試行ロジックを組み込むか、Stack Overflowのような機能低下ツールを組み込むかは、お客様次第です。

Q:Always Onを構成するにはどうすればよいですか?

それは以下に基づいて劇的に変化します:

  • 使用しているAO機能(FCIまたはAG)
  • クラスター内のノードの数
  • クォーラムの処理方法(投票)
  • リスナー経由の自動フェイルオーバーを使用しているか、仮想コンピューター名を使用しているか

これらは、多くのアーキテクチャ作業を伴う大きな決定です。詳細については、上記の詳細を含めてください。構成方法について詳しく説明します。

Q:[常にオン]のチェックボックスをオンにするだけのことではありませんか?

いいえ。


3

"Always ON" AG(可用性グループ)とFCI(フェールオーバークラスターインスタンス)を混同している可能性があります。どちらもWSFC(Windowsサーバーフェールオーバークラスター)に依存しています。

[常にオン]をクリックしても、AG構成になっているとは限りません。非同期、同期、読み取り専用/フェイルオーバーレプリカを設定し、優先度を設定し、アプリがこの構成をサポートするかなど、他の考慮事項を行う必要があります。たとえば、アプリがクロスデータベースMSDTCトランザクションを使用する場合があります。これはサポートされておらず、バックアップの復元を必要とする回復不可能な破損を引き起こす可能性があります。

現在、発生しているのはFCIフェイルオーバーです。これは正常です。これにより、一方のノードでサービスが停止し、もう一方のノードでサービスが開始されます。これはINSTANCEレベルで機能します。AGソリューションはデータベースごとにセットアップされ、サービスは両方のノードで実行されています。SQLはWSFC APIを使用してレプリカ上のデータの同期を維持し、データベースはそのレプリカにフェイルオーバーします。インスタンスではないことに注意してください。

本番環境にデプロイする前に、これについて多くのテストを行うことをお勧めします。


1

AGでフェイルオーバーをテストするための私の好ましい方法は、単に現在のプライマリを切断することです。切断して、コンソールから電源を切り、ネットワークをヤンクし、SQLサービスを銀の弾で殺します。GUIのようなものの中からテストするべきではありません。それはカオスが機能しない方法だからです。


会計年度の終わりの直前に行うのが最善です。多くの人がセカンダリーをそのようにテストするのを手伝ってくれる傾向があります。真剣に、あなたは正しいですが、これは少なくともシステムが生産される前に最初に行われるべきです。最良のシナリオでは、システムをアップグレードするたびに「プライマリ」から「セカンダリ」に切り替えて、両方のシステムが定期的に使用されるようにします(ただし、ハードウェア、帯域幅などを確認する必要があります)同程度の)。
RDFozz 2017

0

コミュニティWikiの回答

これは、クラスタの通常の予想される動作です。

切断を適切に処理するのはアプリケーションの責任です。コミットされたトランザクションのみがサーバー間で複製されるため、処理中のトランザクションは失われます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.