web-dev-qa-db-ja.com

既存のデータベースミラーリングから可用性グループに移行する方法に関するアドバイスが必要

データベースミラーリングからAOAGへの移行に関する実用的/一般的なガイダンスが必要

現在のセットアップ-データベースミラーリングが非同期として構成されている2台のスタンドアロンサーバー。

  1. サーバーA:Windows 2016、SQL Server 2017を実行、クラスターなし、シンプルなスタンドアロンサーバーをプライマリとして
  2. サーバーB:SQL Server 2017を実行するWindows 2016、クラスターなし、ミラーとしてのシンプルなスタンドアロンサーバー
  3. ファイル共有サーバーは別のDCで提供されます

サーバー間の距離は約150マイルです。

上記のセットアップでは主にDRソリューションであるため、ボーナスとしてHAを提供するには、上記のサーバーのみを使用し、データベースミラーリングを自動フェールオーバーオプションを備えたAGに変換する必要があります。

  1. Clusterless AGが見つかりましたが、自動フェイルオーバーが機能しない可能性があるため、HAを利用できないようです。ここで何か不足していますか、それとも可能ですか?

  2. 必要に応じて、最大8時間の停止により、dbミラーリングをAGに変換できます。

どのように計画すべきか、またはこれを行うために利用できるリソースがあるかどうか。たくさんの記事を検索してみましたが、見つかりませんでした。提案してください。

1
BeginnerDBA

原則として、この移行は単純でなければなりません。 AGはデータベースミラーリングフレームワークとエンドポイントを使用してログブロックを送信するため、移行は非常に簡単です。

注意すべきことの1つは、現在ミラーasyncを実行しているが、AGsyncを実行したいということです。 HAを提供します。これは問題にはなりませんが、サーバー間の遅延を確認して、書き込みパフォーマンスを妨げるボトルネックが発生していないことを確認する必要があります。

同期コミットAGでは、すべてのトランザクションをプライマリでコミットする前にセカンダリのログに強化する必要があるため、サーバー間の150マイルを超える待ち時間が長すぎると、パフォーマンスに大きな問題が発生する可能性があります。

Clusterless AGが見つかりましたが、自動フェイルオーバーが機能しない可能性があるため、HAを利用できないようです。ここで何か不足していますか、それとも可能ですか?

いいえ、あなたは正しいです。クラスターレスAG、または読み取りスケールの可用性グループは、HAオプションではありません。読み取りスケールの可用性グループには自動フェイルオーバーはありません。これを参照してください ここにリンク は、

これは高可用性設定ではありません。障害検出と自動フェイルオーバーを監視および調整するインフラストラクチャはありません。クラスターがないと、SQL Serverは、自動化された高可用性ソリューションが提供する目標復旧時間(RTO)を提供できません。高可用性機能が必要な場合は、クラスターマネージャー(Windows上のWindows ServerフェールオーバークラスターまたはLinux上のPacemaker)を使用します。

読み取りスケールの可用性グループは、災害復旧機能を提供できます。読み取り専用レプリカが同期コミットモードの場合、ゼロの目標復旧時点(RPO)が提供されます。

あなたの第二のポイントへ

必要に応じて、最大8時間の停止により、dbミラーリングをAGに変換できます。

次のことができます。

  1. サーバーAとサーバーBでクラスタリングを有効にします。
  2. サーバーAとサーバーBの両方のSQLインスタンスをレプリカとして可用性グループを構成する
  3. 両方のサーバーでログのバックアップを停止する
  4. サーバーA/BのDBからミラーリングを削除する
  5. サーバーAのAGにデータベースを追加する
  6. サーバーBのAGにデータベースを参加させる-ミラーリングが無効になっているため、サーバーBのDBが復旧するはずなので、これはかなりシームレスになるはずです。ログバックアップが発生していない限り、バックアップ/復元またはシードなしでAGのDBを同期できるはずです。
  7. リスナー名を使用するようにアプリ接続を更新します。

これらの手順の一部では、サーバーまたはSQL Serverインスタンスを再起動する必要があるため、複数の停止が発生しますが、それぞれが許可されている8時間よりも短くなります。

これは非常に単純な概要であり、本番環境で実行する前に、プロセスをテストし、問題を特定して解決する必要があります。非実稼働環境がある場合は、そこから開始し、すべてのステップをスクリプト化して、実稼働でのアクションを正確に再現できるようにします。

非運用環境がない場合は、システム管理者に、変更を実施できる分離されたネットワークでサーバーのクローンを作成するよう依頼してください。物理サーバーを実行している場合、非運用環境なしでのテストは困難になりますが、AzureまたはAWSで同様の環境を構築してプロセスをドライランできます。

これは、AGのクラスターの構成に関する 便利なリンク です。少し古いですが、情報はまだ有効です。このプロセスに自信がない場合、特に非本番環境を利用できない場合は、これを計画して実行できるサードパーティの請負業者/コンサルタント/エキスパートに依頼することをお勧めします。

4
HandyD