次の方法で共有


Azure SQL Database へのレプリケーション

適用対象: Azure SQL Database Microsoft Fabric SQL Database

Azure SQL Database または Fabric SQL Database は、SQL Server および Azure SQL Managed Instance からの一方向のトランザクションまたはスナップショット レプリケーション トポロジでプッシュ サブスクライバーとして構成できます。

Note

この記事では、トランザクション レプリケーション を使用して Azure SQL Database または Fabric SQL Database にデータをプッシュする方法について説明します。 この記事の内容は、特に明記されていない限り、Azure SQL Database と Fabric SQL Database に同等に適用されます。

これは、個々のデータベースの完全な読み取り可能レプリカを作成するための Azure SQL Database の機能である、アクティブ geo レプリケーションとは無関係です。

サポートされている構成

バージョン

Azure SQL Database のデータベースへ正常にレプリケートするには、SQL Server パブリッシャーおよびディストリビューターで、(少なくとも) 次のいずれかのバージョンが使用されている必要があります。

SQL Server データベースから Azure SQL Database への発行は、次のバージョンの SQL Server でサポートされます。

Note

サポートされていないバージョンを使用してレプリケーションを構成しようとすると、エラー番号 MSSQL_REPL20084 (プロセスはサブスクライバーに接続できませんでした) および MSSQL_REPL40532 (ログインによって要求されたサーバー <name> を開くことができません。ログインに失敗しました。) が発生する可能性があります。

Azure SQL Database のすべての機能を使用するには、最新バージョンの SQL Server Management Studio (SSMS) および SQL Server Data Tools を使用する必要があります。

レプリケーションの種類

さまざまなレプリケーションの種類があります。

レプリケーション Azure SQL データベース Azure SQL Managed Instance
標準トランザクション はい (サブスクライバーとしてのみ) はい
スナップショット はい (サブスクライバーとしてのみ) はい
マージ レプリケーション いいえ いいえ
ピア ツー ピア いいえ いいえ
双方向 いいえ はい
更新可能なサブスクリプション いいえ 無効

解説

  • Azure SQL Database へのプッシュ サブスクリプションのみがサポートされています。
  • レプリケーションを構成するには、SQL Server Management Studio を使用するか、パブリッシャーで Transact-SQL ステートメントを実行します。 Azure portal を使用してレプリケーションを構成することはできません。
  • 認証する場合:
    • レプリケーションで Azure SQL Database に接続するために使用できるのは、SQL Server 認証ログインのみです。
    • レプリケーションで Fabric SQL Database に接続するために使用できるのは、サービス プリンシパルによる Microsoft Entra ID 認証のみです。
  • レプリケーション テーブルには主キーが必要です。
  • 既存の Azure サブスクリプションが必要です。
  • Azure SQL Database のサブスクライバーは、どのリージョンであってもかまいません。
  • SQL Server 上の単一パブリケーションで、Azure SQL Database と、SQL Server (オンプレミスの SQL Server と Azure 仮想マシンの SQL Server) の両方のサブスクライバーをサポートできます。
  • レプリケーションの管理、監視、およびトラブルシューティングは、Azure SQL Database からではなく SQL Server から実行する必要があります。
  • SQL Database の場合、sp_addsubscription では、@subscriber_type = 0 のみがサポートされます。
  • Azure SQL Database では、双方向、即時、更新可能、またはピア ツー ピアのレプリケーションはサポートされていません。

レプリケーション アーキテクチャ

図には、異なるリージョンにある複数のサブスクライバー クラスターを含む Azure SQL Database と、パブリッシャー、Logread 実行可能ファイル、およびリモート クラスターに接続するディストリビューター実行可能ファイルを含むオンプレミスの Azure 仮想マシンがあるレプリケーション アーキテクチャが示されています。

シナリオ

一般的なレプリケーション シナリオ

  1. SQL Server データベースで、トランザクション レプリケーション パブリケーションを作成します。
  2. SQL Server で、新しいサブスクリプション ウィザードまたは Transact-SQL ステートメントを使用して、Azure SQL Database のサブスクリプションに対するプッシュを作成します。
  3. Azure SQL Database の単一およびプールされたデータベースでは、初期データ セットはスナップショットです。このスナップショットは、スナップショット エージェントによって作成され、ディストリビューション エージェントによって配布および適用されます。 SQL Managed Instance パブリッシャーでは、データベース バックアップを使用して Azure SQL Database サブスクライバーをシードすることもできます。

データ移行シナリオ

  1. トランザクション レプリケーションを使用して、データを、SQL Server データベースから Azure SQL Database にレプリケートします。
  2. クライアントまたは中間層アプリケーションをリダイレクトし、データベースのコピーを更新します。
  3. テーブルの SQL Server のバージョンの更新を停止し、パブリケーションを削除します。

制限事項

次のオプションを使用したレプリケーションは、Azure SQL Database ではサポートされていません。

  • ファイル グループの関連付けのコピー
  • テーブルのパーティション分割構成のコピー
  • インデックスのパーティション分割構成のコピー
  • ユーザー定義の統計情報のコピー
  • 既定のバインドのコピー
  • ルールのバインドのコピー
  • フルテキスト インデックスのコピー
  • XML XSD のコピー
  • XML インデックスのコピー
  • アクセス許可のコピー
  • 空間インデックスのコピー
  • フィルター処理済みインデックスのコピー
  • データ圧縮属性のコピー
  • スパース列属性のコピー
  • MAX データ型への filestream の変換
  • MAX データ型への hierarchyid の変換
  • MAX データ型への spatial の変換
  • 拡張プロパティのコピー

未定の制限事項

  • 照合順序のコピー
  • SP のシリアル化されたトランザクションでの実行

パブリケーションおよびプッシュ サブスクリプションを作成します。 詳細については、次を参照してください。

参照