適用対象:Azure SQL Managed Instance
SQL Server Management Studio (SSMS) を使用して SQL Server と Azure SQL Managed Instance の間の リンク を構成する方法について説明します。 このリンクにより、データベースが初期プライマリからセカンダリ レプリカにほぼリアルタイムでレプリケートされます。
リンクを作成したら、移行またはディザスター リカバリーのためにセカンダリ レプリカにフェールオーバーできます。
注意
- スクリプトを使用してリンクを構成することもできます。
- Azure SQL Managed Instance を初期プライマリとして構成することがサポートされるのは SQL Server 2022 CU10 以降です。
概要
リンク機能を使用して、最初のプライマリからセカンダリ レプリカにデータベースをレプリケーションします。 SQL Server 2022 の場合、初期プライマリは SQL Server または Azure SQL Managed Instance のいずれかになります。 SQL Server 2019 以前のバージョンの場合、初期プライマリは SQL Server である必要があります。 リンクを構成すると、最初のプライマリのデータベースがセカンダリ レプリカにレプリケートされます。
プライマリ レプリカとセカンダリ レプリカ間のハイブリッド環境での継続的なデータ レプリケーション用のリンクをそのままにするか、データベースをセカンダリ レプリカにフェールオーバーして Azure に移行するか、ディザスター リカバリーを行うかを選択できます。 SQL Server 2019 以前のバージョンでは、Azure SQL Managed Instance にフェールオーバーするとリンクが切断され、フェールバックはサポートされていません。 SQL Server 2022 と SQL Server 2025 では、リンクを維持し、2 つのレプリカ間でフェイルオーバーとフェイルバックするオプションがあります。
セカンダリ マネージド インスタンスをディザスター リカバリーにのみ使用する場合は、ハイブリッド フェールオーバー特典をアクティブ化することで、ライセンス コストを節約できます。
この記事の手順を使用して、SQL Server と Azure SQL Managed Instance の間のリンクを手動で設定します。 リンクを作成すると、ソースのデータベースはターゲットのセカンダリ レプリカ上の読み取り専用コピーを取得します。
前提条件
リンクを通じてデータベースをセカンダリ レプリカにレプリケーションするには、次の前提条件を満たす必要があります。
- 有効な Azure サブスクリプション アカウントがない場合は、無料アカウントを作成してください。
- 必要なサービス更新プログラムがインストールされている SQL Server のサポート対象バージョン。
- Azure SQL Managed Instance。 ない場合は始めてください。
- SQL Server Management Studio v19.2 以降。
- 適切に準備された環境。
以下、具体例に沿って説明します。
- リンク機能では、リンクごとに 1 つのデータベースをサポートします。 1 つのインスタンスで複数のデータベースをレプリケーションするには、個々のデータベースごとにリンクを作成します。 たとえば、10 個のデータベースを SQL Managed Instance にレプリケートするには、10 個のリンクを作成します。
- 照合順序は、SQL Server と SQL Managed Instance 間で同じにする必要があります。 照合順序が一致しない場合、サーバー名の大文字と小文字が一致しなくなり、SQL Server から SQL Managed Instance への接続が正常に行われなくなる可能性があります。
- 最初の SQL Server プライマリで発生するエラー 1475 は、
COPY ONLYオプションを指定せずに完全バックアップを作成することで新しいバックアップ チェーンを開始する必要があることを示します。 - SQL Managed Instance から SQL Server 2025 へのリンクまたはフェールオーバーを確立するには、SQL Server 2025 更新ポリシーを使用して SQL マネージド インスタンスを構成する必要があります。 SQL Managed Instance から SQL Server 2025 へのデータ レプリケーションとフェールオーバーは、不一致の更新ポリシーで構成されたインスタンスではサポートされていません。
- SQL Managed Instance から SQL Server 2022 へのリンクまたはフェールオーバーを確立するには、SQL Server 2022 更新ポリシーを使用して SQL マネージド インスタンスを構成する必要があります。 SQL Managed Instance から SQL Server 2022 へのデータ レプリケーションとフェールオーバーは、不一致の更新ポリシーで構成されたインスタンスではサポートされていません。
- サポートされているバージョンの SQL Server から Always-up-to-date 更新ポリシーで構成された SQL マネージド インスタンスへのリンクを確立できますが、SQL Managed Instance へのフェールオーバー後は、データをレプリケートしたり、SQL Server インスタンスにフェールバックしたりすることはできません。
アクセス許可
SQL Server の場合は、 sysadmin アクセス許可が必要です。
Azure SQL Managed Instance の場合は、 SQL Managed Instance 共同作成者 ロールのメンバーであるか、次のカスタム ロールのアクセス許可を持っている必要があります。
| Microsoft.Sql/ リソース | 必要な権限 |
|---|---|
| Microsoft.Sql/managedInstances | /read、/write |
| Microsoft.Sql/managedInstances/ハイブリッド証明書 | /action |
| Microsoft.Sql/managedInstances/databases | /read、/delete、/write、/completeRestore/action、/readBackups/action、/restoreDetails/read |
| Microsoft.Sql/managedInstances/distributedAvailabilityGroups | /read、/write、/delete、/setRole/action |
| Microsoft.Sql/managedInstances/endpointCertificates | /read |
| Microsoft.Sql/managedInstances/hybridLink | /read、/write、/delete |
| Microsoft.Sql/managedInstances/serverTrustCertificates | /write、/delete、/read |
データベースを準備する
SQL Server が最初のプライマリである場合は、データベースのバックアップを作成する必要があります。 Azure SQL Managed Instance はバックアップを自動的に取得するため、SQL Managed Instance が初期プライマリである場合は、この手順をスキップします。
SSMS を使用して SQL Server 上のデータベースをバックアップします。 次のステップを実行します。
- SQL Server Management Studio (SSMS) で SQL Server に接続します。
- オブジェクト エクスプローラーで、データベースを右クリックし、[タスク] にマウス ポインターを合わせ、[バックアップ] を選択します。
- バックアップの種類として [完全] を選択します。
- [バックアップ先] オプションに、十分な空き記憶域を使用できるディスクへのバックアップ パスが設定されていることを確認します。
- [OK] を選択して完全バックアップを完了します。
詳細については、「フル データベース バックアップの作成」を参照してください。
注意
このリンクでは、ユーザー データベースのレプリケーションのみをサポートしています。 システム データベースのレプリケーションはサポートされていません。
masterまたはmsdbに格納されているインスタンス レベルのオブジェクトをレプリケートするには、それらをスクリプト化し、ターゲット インスタンスで T-SQL スクリプトを実行します。
データベースをレプリケーションするためのリンクを作成する
次の手順では、SSMS の新しい Managed Instance リンク ウィザードを使用して最初のプライマリとセカンダリ レプリカとの間のリンクを作成します。
リンクを作成すると、ソースのデータベースはターゲットのセカンダリ レプリカ上の読み取り専用コピーを取得します。
SSMS を開き、最初のプライマリに接続します。
オブジェクト エクスプローラーで、セカンダリにリンクさせるデータベースを右クリックし、Azure SQL Managed Instance のリンクをポイントし、[新規…] を選択して [新しいマネージド インスタンスのリンク] ウィザードを開きます。 お使いの SQL Server バージョンではサポートされていない場合、このオプションはコンテキスト メニューで使用できません。
ウィザードの [概要] ページで [次へ] を選択します。
[ リンク オプションの指定] ページで、リンクの名前を指定します。 複数のデータベースを選択すると、指定した名前の末尾にデータベース名が自動的に追加されるため、自分でデータベース名を含める必要はありません。 接続のトラブルシューティングを有効にする場合はチェック ボックスをオンにし、双方向のディザスター リカバリーにリンクを使用する場合は、SQL Server 2022 または SQL Server 2025 の場合はチェック ボックスをオンにします。 [次へ] を選択します。
[要件] ページで、ウィザードが要件を検証し、セカンダリへのリンクを確立します。 すべての要件が検証されたら [次へ] を選択します。または、満たされていない要件を解決して、[検証の再実行] を選択します。
[データベースの選択] ページで、リンクを使用してセカンダリ レプリカにレプリケーションするデータベースを選択します。 複数のデータベースを選択すると、リンクごとに 1 つずつ、複数の分散型可用性グループが作成されます。 [次へ] を選択します。
[ セカンダリ レプリカの指定 ] ページで、[ セカンダリ レプリカの追加 ] を選択してセカンダリ レプリカを追加します。 最初のプライマリが SQL Server の場合、このアクションによって [Azure への サインイン ] ウィンドウが開きます。 初期プライマリが SQL Managed Instance の場合、このアクションによって [ サーバーへの接続 ] ダイアログ ボックスが開きます。
- SQL Server の初期プライマリの場合は、Azure にサインインし、ドロップダウンからサブスクリプション、リソース グループ、およびセカンダリ SQL マネージド インスタンスを選択します。 [ログイン] を選択して [サーバーへの接続] ダイアログ ボックスを開き、データベースをレプリケーションする SQL Managed Instance に接続します。 [サインイン] ウィンドウに「ログインに成功しました」と表示されたら、[OK] を選択してウィンドウを閉じ、新しい Managed Instance リンク ウィザードに戻ります。
- SQL Managed Instance の初期プライマリの場合は、データベースをレプリケーションする SQL Server インスタンスに接続します。
注意
既に存在する可用性グループへのリンクを確立するには、[セカンダリ レプリカの指定] ページの [エンドポイント] タブの [エンドポイント URL] フィールドに既存のリスナーの IP アドレスを指定します。
カンダリ レプリカを追加した後、必要に応じてウィザードのタブを使用してエンドポイント設定を変更し、バックアップとリンク エンドポイントに関する情報を他のタブで確認します。 続行する準備ができたら、[次へ] を選択します。
SQL Managed Instance が最初のプライマリである場合、ウィザードの次のページは [Azure へのログイン] ページです。 必要に応じてもう一度サインインし、[次へ] を選択します。 このページは、SQL Server が最初のプライマリである場合は使用できません。
[検証] ページで、すべての検証が成功していることを確認します。 失敗した場合は、それらを解決してから、検証を再実行します。 準備ができたら、[次へ] を選択します。
[概要] ページで、構成をもう一度確認します。 必要に応じて、[スクリプト] を選択してスクリプトを生成し、後で同じリンクを簡単に再作成できるようにします。 リンクを作成する準備ができたら、[完了] を選択します。
[アクションの実行] ページには、各アクションの進行状況が表示されます。
すべての手順が完了すると、[結果] ページで、正常に完了したアクションの横にチェック マークが表示されます。 これで、ウィンドウを終了できます。
レプリケートされたデータベースを表示する
リンクを作成すると、データベースはセカンダリ レプリカにレプリケートされます。 データベースのサイズとネットワーク速度によっては、セカンダリ レプリカ上のデータベースの最初の状態が [復元中] になっていることがあります。 最初のシード処理が終了すると、データベースはセカンダリ レプリカに復元され、読み取り専用ワークロードの準備が完了します。
どちらのレプリカでも、SSMS のオブジェクト エクスプローラーを使用すると、レプリケーションされたデータベースの同期状態を表示できます。
[Always On 高可用性] と [Availability Groups] (可用性グループ) を展開して、各リンク用に作成された分散型可用性グループを表示します。
どのインスタンスがプライマリであるかにかかわらず、SQL Server でリンクされた分散型可用性グループを右クリックし、[ダッシュボードの表示] を選択して、分散型可用性グループのダッシュボードを表示することもできます。このダッシュボードには、分散型可用性グループ内のリンクされたデータベースの状態が表示されます。
最初のトランザクション ログ バックアップを実行する
SQL Server が最初のプライマリである場合は、最初のシード処理が完了した後、SQL Server で最初のトランザクション ログ バックアップを実行します。 その時点で、データベースは Azure SQL Managed Instance の 復元 中の状態ではなくなります。 次に、 SQL Server のトランザクション ログ バックアップを定期的に 実行して、SQL Server がプライマリ ロールである間の過剰なログの増加を最小限に抑えます。
SQL Managed Instance がプライマリである場合は、Azure SQL Managed Instance がログ バックアップを自動的に実行するため、何も行う必要はありません。
リンクを削除する
リンクが不要になったか、回復不可能な状態で再作成する必要があるためにリンクを削除する場合は、SQL Server Management Studio (SSMS) を使用して削除できます。
インスタンスに接続後、SSMS の [オブジェクト エクスプローラー] にある次のメニュー オプションからリンクを削除できます。
- [Always On 可用性グループ]>[可用性グループ]> リンクに関連付けられている分散型可用性グループ名を右クリック >[削除...]
- [データベース]> リンクに関連付けられているデータベースを右クリック >Azure SQL Managed Instance リンク>[削除...]
トラブルシューティング
リンクの作成時にエラー メッセージが表示された場合は、エラー メッセージを選択して、エラーに関する詳細を含むウィンドウを開きます。
リンクの操作中にエラーが発生した場合、SSMS ウィザードは失敗した手順で実行を停止し、再起動することはできません。 問題に対処します。 必要に応じて、環境をクリーンアップし、リンクの設定中に作成した場合は、分散型可用性グループと可用性グループを削除して元の状態に戻します。 次に、ウィザードをもう一度起動して最初からやり直します。
詳細については、 リンクに関する問題のトラブルシューティングを参照してください。
関連するコンテンツ
リンクを使用するには、次を参照してください。
- Managed Instance リンク用に環境を準備する
- スクリプトを使用して SQL Server と SQL Managed Instance の間のリンクを構成する
- リンクをフェールオーバーする
- リンクを使用して移行する
- リンクを維持するためのベスト プラクティス
- リンクに関する問題のトラブルシューティングを行います。
リンクの詳細については、以下を参照してください。
他のレプリケーションおよび移行シナリオについては、以下を検討してください。