Managed Instance のリンクの概要

適用対象:Azure SQL Managed Instance

この記事では、Managed Instance のリンク機能の概要について説明します。この機能を使うと、ほぼリアルタイムで SQL Server と Azure SQL Managed Instance 間でデータをレプリケーションできます。 このリンクはハイブリッドの柔軟性とデータベースの可用性を備えています。これにより、読み取り専用のワークロードのスケーリング、分析とレポートの Azure へのオフロード、Azure への移行など、複数のシナリオが可能になります。 また、SQL Server 2022 のリンクでは、SQL Server (現在プレビュー段階) へのフェールバックによるオンライン ディザスター リカバリーと、SQL Managed Instance から SQL Server 2022 (プレビュー段階) へのリンクの構成が可能になります。

概要

Managed Instance リンクでは、分散型可用性グループを使用して、安全かつ安全な方法でデータ資産を拡張し、任意の場所でホストされている SQL Server から Azure SQL Managed Instance に、または Azure SQL Managed Instance から任意の場所でホストされている SQL Server 2022 にデータをほぼリアルタイムでレプリケートします。

リンクは、単一のノードおよび複数のノードの SQL Server インスタンスをサポートしています (既存の可用性グループの有無を問わず)。 このリンクを通じて、SQL Server データ資産をクラウドに移行することなく、Azure のベネフィットを利用できます。

リンクではリンクごとに 1 つのデータベースのレプリケーションがサポートされていますが、複数のリンクを構成することで、SQL Server の単一インスタンスから単一または複数の SQL マネージド インスタンスに複数のデータベースをレプリケーションしたり、複数の SQL マネージド インスタンスに同一のデータベースをレプリケーションしたりすることができます。それぞれのデータベースからマネージド インスタンスのペアには、1 つのリンクを使用します。

リンク機能では現在、次の機能が提供されます。

  • SQL Server バージョン 2016 と 2019 からの一方向レプリケーション: リンク機能を使用し、SQL インスタンスから Azure SQL Managed Instance への一方向でデータをレプリケーションします。 障害の発生時にマネージド インスタンスに手動でフェールオーバーすることはできますが、そうするとリンクは解除されます。また、フェールバックはサポートされていません。
  • ディザスター リカバリー (SQL Server 2022): リンク機能を使用して SQL Server 2022 インスタンスと SQL Managed Instance 間でデータをレプリケーションし、障害の発生時にはセカンダリに手動でフェールオーバーし、障害を軽減した後にプライマリにフェールバックします。 SQL Server または SQL Managed Instance を初期プライマリにすることができます。 現在、この機能はプレビュー段階にあります。

連続して何か月さらには何年でも、必要な期間だけリンクを実行し続けることができます。 また、モダン化の過程で、Azure に移行する準備が整った場合、またはそのときに、このリンクを使うと、移行エクスペリエンスが大幅に向上します。 リンクを介した移行では、他に利用できる移行オプションと比較して最低限のダウンタイムで済み、真の意味での SQL Managed Instance へのオンライン移行を行えます。

SQL Server と Azure SQL Managed Instance 間のリンク機能によってレプリケーションされるデータベースは、次のようなさまざまなシナリオで使用できます。

  • 障害復旧
  • クラウドに移行することなく Azure サービスを使う
  • 読み取り専用ワークロードを Azure にオフロードする
  • Azure への移行
  • オンプレミスでのデータのコピー

メインの Managed Instance リンク シナリオを示す図。

バージョンのサポート性

Managed Instance リンクは、Azure SQL Managed Instance の General Purpose と Business Critical 両方のサービス レベルでサポートされています。 リンク機能は、SQL Server の Enterprise、Developer、Standard の各エディションで動作します。

次の表では、リンク機能の機能および、サポートされる SQL Server の最小バージョンの一覧を示します。

初期プライマリ バージョン オペレーティング システム (OS) 一方向のレプリケーション ディザスター リカバリーのオプション サービス更新プログラムの要件
Azure SQL Managed Instance Windows Server と Linux プレビュー 双方向プレビュー SQL Server 2022 CU10 (KB5031778)1
SQL Server 2022 (16.x) Windows Server と Linux 一般公開 双方向:
オフライン (一般提供)
オンライン (プレビュー)
SQL Server 2022 RTM
SQL Server 2019 (15.x) Windows Server のみ 一般公開 SQL Server から SQL MI のみ SQL Server 2019 CU20 (KB5024276)
SQL Server 2017 (14.x) 該当なし 該当なし 該当なし 該当なし
SQL Server 2016 (13.x) Windows Server のみ 一般公開 SQL Server から SQL MI のみ SQL Server 2016 SP3 (KB 5003279)SQL Server 2016 Azure Connect パック (KB 5014242)

1 SQL Server 2022 の初期プライマリとしてのリンクの作成は、SQL Server 2022 の RTM バージョン以降でサポートされていますが、初期プライマリとしての Azure SQL Managed Instance へのリンクの作成は、SQL Server 2022 CU10 以降でサポートされています。 SQL Managed Instance の初期プライマリからリンクを作成した場合、リンクがアクティブになっている間は、いずれかの方向にフェールオーバーした後に問題が発生する可能性があるため、CU10 またはそれ以前の SQL Server のダウングレードはサポートされません。

SQL Server 2016 より前の SQL Server バージョン (SQL Server 2008 から 2014) はサポートされていません。これは、リンク機能が、SQL Server 2016 で導入された分散型可用性グループ テクノロジに依存しているためです。

サポートされている SQL Server バージョンに加えて、次のものが必要です。

  • SQL Server インスタンスとマネージド インスタンスの間のネットワーク接続。 SQL Server がオンプレミスで実行されている場合は、VPN リンクまたは Azure ExpressRoute を使います。 SQL Server が Azure 仮想マシン (VM) 上で実行されている場合、マネージド インスタンスと同じ仮想ネットワークに VM をデプロイするか、仮想ネットワーク ピアリングを使って 2 つの個別のサブネットに接続します。
  • 任意のサービス レベルにプロビジョニングされた Azure SQL Managed Instance デプロイ。

以下のツールも必要となります。

ツール メモ
SSMS 19.2 以降 SQL Server Management Studio (SSMS) では、リンクの自動セットアップを行うウィザードを使用できるため、Managed Instance のリンクを使用する最も簡単な方法です。
Az.SQL 3.9.0 以降 手動で構成する手順の場合は、PowerShell モジュールが必要です。

Note

Managed Instance のリンク機能は、すべてのパブリック Azure リージョンと国内または政府クラウドで利用できます。

SQL Managed Instance のリンク機能の基になるテクノロジは、SQL Server と Azure SQL Managed Instance の間の分散型可用性グループ作成に基づいています。 このソリューションでは、単一ノード システム (既存の可用性グループの有無を問わず)、または既存の可用性グループを持つ複数のノード システムがサポートされています。

SQL Managed Instance のリンク機能が配布された可用性グループのテクノロジを使用してどのように動作するかを示す図。

オンプレミス ネットワークと Azure の間では、VPN や Azure ExpressRoute などのプライベート接続が使用されます。 SQL Server が Azure VM 上でホストされている場合は、VM とマネージド インスタンスの間 (たとえば、仮想ネットワーク ピアリング) で Azure の内部バックボーンを使用できます。 2 つのシステム間の信頼は、証明書ベースの認証を使用して確立されます。そのとき、SQL Server と SQL Managed Instance の間で、それぞれの証明書に関する公開キーが交換されます。

同じ、または異なる SQL Server ソースから、1 つの Azure SQL Managed Instance に対して、最大で 100 個のリンクを使用できます。 この制限は、同時にマネージド インスタンスでホストできるデータベース数に左右されます。 同様に、1 つの SQL Server インスタンスが、異なる Azure リージョンの複数のマネージド インスタンスとの間に、データベースとマネージド インスタンスの間に 1 対 1 のリレーションシップを持つ、複数の並列データベース同期リンクを確立できます。

初期環境を容易にセットアップするには、SQL Managed Instance でリンク機能を使用するように SQL Server 環境を準備する方法に関するガイドを確認してください。

初期環境の条件が満たされていることを確認したら、SQL Server Management Studio (SSMS) の自動ウィザードを使用してリンクを作成するか、スクリプトを使用して手動でリンクを設定することができます。

リンクを作成したら、リンクを維持するためのベスト プラクティスに従ってください。

障害復旧

Managed Instance リンクを使用するとディザスター リカバリーが可能になります。障害が発生した場合は、プライマリからセカンダリにワークロードを手動でフェールオーバーできます。 開始するには、Managed Instance のリンクを使用したディザスター リカバリーを確認してください。

SQL Server 2016 と SQL Server 2019 では、プライマリは常に SQL Server であり、セカンダリ マネージド インスタンスへのフェールオーバーは一方向です。 SQL Server へのフェールバックはサポートされていません。 ただし、トランザクション レプリケーションbacpac のエクスポートなどのデータ移動オプションを使用して、SQL Server にデータを回復することはできます。

SQL Server 2022 では、SQL Server または SQL Managed Instance のいずれかを初期プライマリにすることができ、SQL Server または SQL Managed Instance からリンクを確立できます。 プライマリとセカンダリの間でワークロードをフェールバックし、真の双方向ディザスター リカバリーを実現できます。

SQL Server にフェールバックする場合は、フェールバックを選択できます。

  • マネージド インスタンスのリンクを直接使用してオンラインにできます。 このオプションは現在プレビューの段階です。
  • SQL Managed Instance からデータベースのバックアップを取得し、SQL Server 2022 インスタンスに復元することで、オフラインになります。 このオプションは一般公開されています。

ディザスター リカバリー シナリオを示す図。

Azure サービスを使用する

リンク機能を使うと、SQL Server データをクラウドに移行することなく使って Azure サービスを活用できます。 たとえば、レポート、分析、バックアップ、機械学習、Azure にデータを送信するその他のジョブなどです。

ワークロードを Azure にオフロードする

リンク機能を使って、ワークロードを Azure にオフロードすることもできます。 たとえば、アプリケーションで、読み取り/書き込みのワークロードには SQL Server を使い、読み取り専用ワークロードには世界中の任意の Azure リージョンにある SQL Managed Instance デプロイにオフロードできます。 リンクを確立すると、SQL Server のプライマリ データベースには読み取り/書き込みアクセスでき、Azure 内のマネージド インスタンスにレプリケートされたデータには読み取り専用でアクセスできます。 このような配置にすると、さまざまなシナリオが可能になります。たとえば、マネージド インスタンスにレプリケートされたデータベースを、読み取りスケールアウトと Azure への読み取り専用ワークロードのオフロードに使用できます。 マネージド インスタンスで、並行して、独立した読み取り/書き込みデータベースをホストすることもできます。 これにより、レプリケートされたデータベースを同じマネージド インスタンス上の別の読み取り/書き込みデータベースにコピーして、さらにデータ処理を行うことができます。

リンクはデータベース スコープ (1 つのデータベースにつき 1 つのリンク) であり、Azure でワークロードを統合および分離できます。 たとえば、複数の SQL Server インスタンスから Azure の 1 つの SQL Managed Instance デプロイにデータベースをレプリケートすること (統合) や、1 つの SQL Server インスタンスから世界中の任意の Azure リージョンの複数のマネージド インスタンスに、データベースとマネージド インスタンスの間の 1 対 1 のリレーションシップを使用してデータベースをレプリケートすること (分離) ができます。 後者のオプションには、世界中のどこでも、お客様の近くのリージョンにワークロードをすばやく移動して読み取り専用レプリカとして使う効率的な方法が用意されています。

Azure への移行

リンク機能を使うと、SQL Server から SQL Managed Instance への移行も容易になり、次のことが可能になります。

  • 現在利用可能な他のすべてのソリューションと比較して、最もパフォーマンスに優れた最小のダウンタイムでの移行。
  • 任意のサービス レベルでの SQL Managed Instance への真のオンライン移行。

リンク機能を使うと、最小限のダウンタイムでの移行が可能になるため、プライマリ ワークロードをオンラインにしたまま、マネージド インスタンスに移行できます。 現在、General Purpose サービス レベルへのオンライン移行は他のソリューションでも実現できますが、本当の意味で Business Critical レベルへのオンライン移行を可能にするソリューションはリンク機能のみです。

オンプレミスでデータをコピーする

SQL Server 2022 を使用すると、SQL Managed Instance から SQL Server へのリンクを確立し、Azure 外での準リアルタイムのデータベース レプリカの作成、ビジネス継続性計画のテスト、コンプライアンス要件の充足などの追加シナリオを実現できます。 SQL Managed Instance から SQL Server 2022 へのリンクの確立は現在プレビュー段階です。

自動バックアップ

データベースを Azure SQL Managed Instance にレプリケーションすると、Azure Backup に自動的にバックアップされます。 レプリケーションされたデータベースに対して Azure Backup の信頼性を活用しながら、オンプレミスの管理と運用コストを削減できます。 その後、他の自動バックアップと同様、同じリージョン内の任意の SQL Managed Instance デプロイへのレプリケートされたデータベースのポイントインタイム リストアを実行できます。

ライセンス不要のパッシブ DR レプリカ

ワークロードを持たず、セカンダリ パッシブのディザスター リカバリーのみに使用する SQL Managed Instance において、ハイブリッド フェールオーバー特典をアクティブ化すると、仮想コアのライセンス コストを節約できます。

開始するには、ライセンス フリーのパッシブ レプリカを確認します。

費用便益

マネージド インスタンス レプリカをディザスター リカバリーとしてのみ指定する場合、セカンダリ インスタンスで使用される仮想コアの SQL Server ライセンス コストが Microsoft から請求されることはありません。 インスタンスは 1 時間単位で課金され、1 時間中にライセンス特典を更新した場合でも、ちょうど 1 時間分のライセンス コストが課金される可能性があることに注意してください。

従量課金制モデルとAzure ハイブリッド特典では、特典の反映方法が異なります。 従量課金制モデルの場合、仮想コアが請求書で割引されます。 パッシブ レプリカの Azure ハイブリッド特典を使用している場合、セカンダリ レプリカで使用する仮想コア数がお使いのライセンス プールに戻されます。

たとえば、従量課金制のお客様であって、セカンダリ インスタンスに 16 個の仮想コアが割り当てられている場合、セカンダリ インスタンスをハイブリッド フェールオーバーに指定すると、請求書に 16 個の仮想コアの割引が表示されます。

別の例としては、16 個の Azure ハイブリッド特典ライセンスがあり、セカンダリの SQL Managed Instance が 8 個の仮想コアを使用している場合、ハイブリッド フェールオーバーにセカンダリ インスタンスを指定した後、他の Azure SQL デプロイで使用するために 8 個の仮想コアがライセンス プールに戻されます。

ハイブリッド フェールオーバー権限特典の正確なご契約条件については、「SQL Server – フェールオーバー権限」セクションの SQL Server ライセンス条項をオンラインで参照してください。

制限事項

リンクを使う場合は、次の制限事項を考慮してください。

バージョンのサポート可能性に関する制限事項は、次のとおりです。

  • Windows 10 および 11 クライアントを使って SQL Server インスタンスをホストすることはできません。これは、リンクに必要な Always On 可用性グループ機能を有効にすることができないからです。 SQL Server インスタンスは、Windows Server 2012 以降でホストする必要があります。
  • SQL Server versions 2008 から 2014 は、リンク機能でサポートされていません。これらのリリースの SQL エンジンには、リンクに必要な分散型可用性グループのサポートが組み込まれていないためです。 リンクを使用するには、新しいバージョンの SQL Server にアップグレードします。
  • SQL Managed Instance から SQL Server へのリンクの確立は、SQL Server 2022 のみでサポートされています。

データ レプリケーションに関する制限事項は次のとおりです。

  • レプリケートできるのはユーザー データベースのみです。 システム データベースのレプリケーションはサポートされていません。
  • このソリューションでは、サーバーレベルのオブジェクトも、エージェント ジョブも、ユーザー ログインも、SQL Server から SQL Managed Instance にレプリケートされません。
  • SQL Server バージョン 2016 と 2019 の場合、SQL Server インスタンスから SQL Managed Instance デプロイへのユーザー データベースのレプリケーションは一方向です。 SQL Managed Instance デプロイのユーザー データベースは、SQL Server インスタンスにレプリケートできません。 SQL Server インスタンスへのフェールバックを伴う双方向レプリケーションは SQL Server 2022 でのみ使用できます。
  • SQL Managed Instance からデータベース上の SQL Server へのリンクの構成は、既にリンクされている SQL Managed Instance データベースではサポートされていません。

構成に関する制限事項は次のとおりです。

  • サーバー上に複数の SQL Server インスタンスがある場合、各インスタンスとのリンクを構成できますが、各インスタンスを、インスタントごとに専用ポートを持つ個別のデータベース ミラーリング エンドポイントを使うように構成する必要があります。 ポート 5022 は、既定のインスタンスでのみデータベース ミラーリング エンドポイントに使用する必要があります。
  • 1 つの Managed Instance のリンクごとに、1 つの可用性グループに配置できるデータベースは 1 つだけです。 ただし、複数のリンクを確立することで、1 つの SQL Server インスタンスで複数のデータベースをレプリケートすることが可能です。
  • 1 つのマネージド インスタンスでは、複数の SQL Server インスタンスからのリンクを最大 100 サポートしています。
  • Managed Instance のリンクでは、データベースが接続先の SQL Managed Instance デプロイの選択されたストレージ サイズに収まる限り、任意のサイズのデータベースをレプリケートできます。
  • SQL Server と SQL Managed Instance の間の Managed Instance リンク認証は証明書ベースであり、証明書の交換でのみ使用できます。 Windows 認証を使って SQL Server インスタンスとマネージド インスタンスの間でリンクを確立することはサポートされていません。
  • SQL Managed Instance とのリンクを確立するためにサポートされるのは VNet-local エンドポイントのみです。
  • パブリック エンドポイントまたはプライベート エンドポイントを使ってマネージド インスタンスとのリンクを確立することはできません。
  • SQL Managed Instance が複数のログ ファイルをサポートしていないため、複数のログ ファイルを含むデータベースはレプリケートできません。

機能に関する制限事項は次のとおりです。

  • リンク機能を使うインスタンスでは、フェールオーバー グループはサポートされていません。 フェールオーバー グループに属しているマネージド インスタンス上でリンクを確立することはできません。また、逆に、リンクが確立されているインスタンス上でフェールオーバー グループを構成することはできません。
  • SQL Server インスタンスにレプリケートされたデータベースと共に、変更データ キャプチャ (CDC)、ログ配布、またはサービス ブローカーを使っている場合、データベースを SQL Managed Instance デプロイに移行するとき、Azure へのフェールオーバー中に、クライアントは現在のグローバル プライマリ レプリカのインスタンス名を使って接続する必要があります。 これらの設定は手動で再構成する必要があります。
  • 移行シナリオで、SQL Server インスタンス上のデータベースと共にトランザクション レプリケーションを使っている場合、Azure へのフェールオーバー中に、SQL Managed Instance デプロイのトランザクション レプリケーションが失敗するため、手動で再構成する必要があります。
  • SQL Server インスタンスからレプリケートされたデータベースと共に分散トランザクションを使っている場合と、移行シナリオでの、クラウドへのカットオーバーの場合、分散トランザクション コーディネーターの機能は転送されません。 移行したデータベースが SQL Server インスタンスとの分散トランザクションに関与することはできません。現在のところ、SQL Managed Instance のデプロイは SQL Server との分散トランザクションをサポートしていないからです。 参考までに、SQL Managed Instance は、現在、他のマネージド インスタンス間の分散トランザクションのみをサポートしています。 詳細については、「クラウド データベースにまたがる分散トランザクション」を参照してください。
  • Transparent Data Encryption (TDE) を使用して SQL Server データベースを暗号化している場合は、SQL Server のデータベース暗号化キーをエクスポートして Azure Key Vault にアップロードする必要があります。また、リンクを作成する前に、SQL Managed Instance で BYOK TDE オプションを構成する必要もあります。
  • サービスマネージド TDE キーで暗号化されたSQL Managed Instance は、SQL Server にリンクできません。 暗号化されたデータベースを SQL Server にリンクできるのは、カスタマー マネージド キーで暗号化されていて、宛先サーバーがデータベースの暗号化に使われたのと同じキーにアクセスできる場合のみです。 詳細については、Azure Key Vault を使った SQL Server TDE の設定に関する記事を参照してください。
  • SQL Server インスタンスで使われている機能がマネージド インスタンスでサポートされていない場合、SQL Server と SQL Managed Instance 間にリンクを確立することはできません。 例:
    • SQL Managed Instance はファイル テーブルまたはファイル ストリームをサポートしていないため、ファイル テーブルまたはファイル ストリームを含むデータベースをレプリケートすることはできません。
    • General Purpose サービス レベルではインメモリ OLTPをサポートしていないため、インメモリ OLTP を使用しているデータベースは Business Critical サービス レベルの SQL Managed Instance のみにレプリケーションできます。 複数のインメモリ OLTP ファイルを含むデータベースは、SQL Managed Instance ではサポートされていないため、レプリケーションできません。

サポートされていない機能をレプリケートされたデータベースに追加しようとしています。

  • SQL Server 2019 および 2022 では、エラーが発生して失敗します。
  • SQL Server 2016 では、リンクが破損するため、削除して再作成する必要があります。

SQL Server と SQL Managed Instance の違いの完全リストについては、「SQL Server と Azure SQL Managed Instance の T-SQL の相違点」を参照してください。

他のレプリケーション シナリオについては、以下を検討してください。