Fabric でのミラーリング は、エンタープライズ、クラウドベース、ゼロ ETL、SaaS テクノロジです。 このセクションでは、ミラー化された Azure SQL Managed Instance データベースを作成する方法について説明します。これは、OneLake の Azure SQL Managed Instance から選択したデータベースの読み取り専用で継続的にレプリケートされたコピーを表します。
[前提条件]
- 既存の Azure SQL Managed Instance を作成または使用します。
- ソース Azure SQL Managed Instance の更新ポリシーは、"常に最新" または "SQL Server 2025" に構成する必要があります。
- ソースの Azure SQL Managed Instance には、単一の SQL マネージド インスタンスまたはインスタンス プールに属する SQL マネージド インスタンスを指定できます。
- Azure SQL Managed Instance がない場合は、 新しい SQL マネージド インスタンスを作成できます。 必要に応じて、 Azure SQL Managed Instance の無料プラン を使用できます。
- Fabric 用の既存の容量が必要です。 そうでない場合は、Fabric 試用版を開始します。
- ファブリック容量は有効で稼働している必要があります。 一時停止または削除された容量はミラーリングに影響し、データはレプリケートされません。
- ファブリック テナントの設定が必要です。 次の 2 つの Fabric テナント設定 が有効になっていることを確認します。
- Fabric ポータルからミラー化されたデータベースを作成するときは、ワークスペースにメンバーまたは管理者ロールが必要です。 作成時に、Azure SQL Managed Instance のマネージド ID には、ミラー化されたデータベースに対する "読み取りと書き込み" アクセス許可が自動的に付与されます。 共同作成者ロールを持つユーザーには、この手順を完了するために必要な再共有アクセス許可がありません。
- Azure SQL Managed Instance にアクセスするための Fabric のネットワーク要件:
- Azure SQL Managed Instance にパブリックにアクセスできない場合は、 仮想ネットワーク データ ゲートウェイ または オンプレミス データ ゲートウェイ を作成してデータをミラーリングします。 Azure Virtual Network またはゲートウェイ サーバーのネットワークが プライベート エンドポイント経由で Azure SQL Managed Instance に接続できることを確認します。
- データ ゲートウェイを使用せずに Azure SQL Managed Instance のパブリック エンドポイントに接続する場合は、Power BI と Data Factory サービス タグまたはネットワーク セキュリティ グループ内の Azure クラウド サービス タグからの受信トラフィックを許可する必要があります。 詳細については、 Azure SQL Managed Instance でのパブリック エンドポイントの構成に関するページを参照してください。
Azure SQL Managed Instance のシステム割り当てマネージド ID (SAMI) を有効にする
Fabric OneLake にデータを発行するには、Azure SQL Managed Instance のシステム割り当てマネージド ID (SAMI) を有効にし、プライマリ ID にする必要があります。
- SAMI が有効になっていることを構成または確認するには、Azure portal で SQL Managed Instance に移動します。 リソース メニューの [セキュリティ] で [ID] を選択します。
- [システム割り当てマネージド ID] で、[状態] を [オン] に設定します。
- SAMI はプライマリ ID である必要があります。 T-SQL クエリ
SELECT * FROM sys.dm_server_managed_identities;を使用して、SAMI がプライマリ ID であることを確認します。
Fabric のデータベース プリンシパル
次に、Fabric サービスが Azure SQL Managed Instance に接続する方法を作成する必要があります。
これは、ログインとマップされたデータベース ユーザー を使用して行うことができます。 セキュリティに対する最小限の特権の原則に従って、ミラーリングするデータベースの CONTROL DATABASE 権限のみを付与する必要があります。
ログイン ユーザーとマップされたデータベース ユーザーの使用
SQL Server Management Studio (SSMS) または Visual Studio Code の mssql 拡張機能を使用して、Azure SQL Managed Instance に接続します。
masterデータベースに接続します。サーバー ログインを作成し、適切なアクセス許可を割り当てます。
Fabric ログインに必要なアクセス許可は次のとおりです。
サーバー ロールのメンバーシップ
##MS_ServerStateReader##ユーザーデータベースにある次のアクセス許可。
- SELECT
- 任意の外部ミラーを変更する
SQL 認証ログインを作成します。 このログインには任意の名前を選択できます。
<fabric_login>の場合は、次のスクリプトで置き換えておきます。 独自の強力なパスワードを指定します。masterデータベースで次の T-SQL スクリプトを実行します。
CREATE LOGIN <fabric_login> WITH PASSWORD = '<strong password>'; ALTER SERVER ROLE [##MS_ServerStateReader##] ADD MEMBER <fabric_login>;- または、既存のアカウントから Microsoft Entra ID 認証ログインを作成します。
masterデータベースで次の T-SQL スクリプトを実行します。
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER; ALTER SERVER ROLE [##MS_ServerStateReader##] ADD MEMBER [bob@contoso.com];クエリ スコープをミラー化するデータベースに切り替えます。 データベースの名前を
<mirroring_source_database>に置き換え、次の T-SQL を実行します。USE [<mirroring_source_database>];ログインに接続されているデータベース ユーザーを作成します。
<fabric_user>では、新しいデータベース ユーザーの名前をこの目的に置き換えます。CREATE USER <fabric_user> FOR LOGIN <fabric_login>; GRANT SELECT, ALTER ANY EXTERNAL MIRROR TO <fabric_user>;または、Microsoft Entra ログインの場合は、
CREATE USER [bob@contoso.com] FOR LOGIN [bob@contoso.com]; GRANT SELECT, ALTER ANY EXTERNAL MIRROR TO [bob@contoso.com];
ミラー化された Azure SQL Managed Instance データベースを作成する
- Fabric ポータルを開きます。
- 既存のワークスペースを使用するか、新規ワークスペースを作成します。
- [ 作成 ] ウィンドウに移動します。 [ 作成 ] アイコンを選択します。
- [Data Warehouse] セクションまでスクロールし、[ミラー化された Azure SQL Managed Instance] を選択します。
Azure SQL Managed Instance に接続する
ミラーリングを有効にするには、Fabric から Azure SQL Managed Instance に接続して、SQL Managed Instance と Fabric の間の接続を開始する必要があります。 次の手順では、Azure SQL Managed Instance への接続を作成するプロセスについて説明します。
- [ 新しいソース] で、[ Azure SQL Managed Instance] を選択します。 または、OneLake カタログから既存の Azure SQL Managed Instance 接続を選択します。
- 種類が "SQL Server" (汎用接続の種類) の既存の Azure SQL Managed Instance 接続を使用することはできません。 Azure SQL Managed Instance データのミラーリングでは、接続の種類が "SQL Managed Instance" の接続のみがサポートされます。
-
[新しい接続] を選択した場合は、Azure SQL Managed Instance への接続の詳細を入力します。 特定のデータベースに接続する必要があります。SQL マネージド インスタンス全体とそのすべてのデータベースに対してミラーリングを設定することはできません。
-
サーバー: サーバー名 を見つけるには、Azure portal の Azure SQL Managed Instance ネットワーク ページ ([セキュリティ] メニューの下) に移動し、[パブリック エンドポイント] フィールドを確認します。 たとえば、「
<managed_instance_name>.public.<dns_zone>.database.windows.net,3342」のように入力します。 - データベース: ミラー化するデータベースの名前を入力します。
- 接続: 新しい接続を作成します。
- 接続名: 自動名前が指定されます。 必要に応じて、この SQL マネージド インスタンス データベース接続を将来見つけやすくするために変更できます。
- データ ゲートウェイ: シナリオに応じて設定した既定の (なし) または仮想ネットワーク データ ゲートウェイ/オンプレミス データ ゲートウェイの名前を選択します。
-
認証の種類:
- 基本 (SQL 認証): ユーザー名とパスワードを指定します。
- 組織アカウント (Microsoft Entra ID)
- サービス プリンシパル: サービス プリンシパルのテナント ID、クライアント ID、クライアント シークレットを指定します。
-
サーバー: サーバー名 を見つけるには、Azure portal の Azure SQL Managed Instance ネットワーク ページ ([セキュリティ] メニューの下) に移動し、[パブリック エンドポイント] フィールドを確認します。 たとえば、「
- [接続] を選択します。
ミラーリング プロセスの開始
[ミラーの構成] 画面では、データベース内のすべてのデータをデフォルトでミラーできます。
すべてのデータをミラー化すると、ミラーリングの開始後に作成された新規テーブルがミラー化されます。
必要に応じて、ミラーリングする特定のオブジェクトのみを選択します。 [すべてのデータをミラー化] オプションを無効にし、データベースから個々のテーブルを選択します。
テーブルをまったくミラー化できない場合は、エラー アイコンと関連する説明テキストが表示されます。 同様に、テーブルが制限付きでミラー化できる場合は、関連する説明テキストと共に警告アイコンが表示されます。
このチュートリアルでは、[すべてのデータをミラー化] オプションを選択します。
次の画面で、コピー先の項目に名前を付け、[ ミラー化されたデータベースの作成] を選択します。 ここで、Fabric がすべてをプロビジョニングするまで 1 ~ 2 分待ちます。
2 分から 5 分後に、[ レプリケーションの監視 ] を選択して状態を確認します。
数分後に、状態が [実行中] に変わります。これは、テーブルの同期が進行中であることを示します。
テーブルとそれに対応するレプリケーションの状態が見つからない場合は、数秒待ってからパネルを更新します。
テーブルの最初のコピーが完了すると、[ 最終更新 ] 列に日付が表示されます。
これでデータが稼働し、Fabric 全体でさまざまな分析シナリオが利用できるようになりました。
Important
ソース データベースで確立された詳細なセキュリティは、Microsoft Fabric のミラー化データベースで再構成する必要があります。
ファブリック ミラーリングを監視する
ミラーを構成すると、[ミラーリングの状態] ページに移動します。 ここでは、レプリケーションの現在の状態を監視できます。
レプリケート状態は次のとおりです。
全体的なデータベース レベルの監視の場合:
- 実行中 – レプリケーションは現在、スナップショットと変更データを OneLake に取り込んで実行しています。
- 警告付きで実行: レプリケーションが実行中で、一時的なエラーが発生しています
- 停止中/停止 – レプリケーションが停止しています。
- エラー – 復旧できないレプリケーションの致命的なエラー。
テーブル レベルの監視の場合:
- 実行中 – テーブルのデータがウェアハウスに正常にレプリケートされています。
- 警告付きで実行 – テーブルからのデータのレプリケーションによる致命的でないエラーの警告
- 停止中/停止 - レプリケーションが停止しました
- エラー – そのテーブルのレプリケーションで致命的なエラーが発生しました。
初期同期が完了すると、テーブル名の横に [最終完了 タイムスタンプ] が表示されます。 このタイムスタンプは、Fabric がテーブルの変更を最後に確認した時刻を示します。
また、[ レプリケートされた行] 列にも 注意してください。 テーブルにレプリケートされたすべての行がカウントされます。 行がレプリケートされるたびに、再度カウントされます。 つまり、たとえば、ソースに主キーが =1 の行を挿入すると、"レプリケートされた行" 数が 1 増加します。 同じ主キーを使用して行を更新した場合は、再度 Fabric にレプリケートし、再度レプリケートされた行と同じ行であっても、行数が 1 ずつ増加します。 ファブリックは、挿入、削除、更新など、行で発生したすべてのレプリケーションをカウントします。
[レプリケーションの監視] 画面には、ミラー化されているテーブルに関するエラーと警告も反映されます。 テーブルにサポートされていない列の種類がある場合、またはテーブル全体がサポートされていない場合 (メモリインデックスや列ストア インデックスなど)、この画面に制限に関する通知が表示されます。 レプリケーションの状態に関する詳細については、「ファブリック ミラーリング データベース レプリケーションの監視」を参照してください。