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

適用対象: Azure SQL データベース

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

Note

この記事では、Azure 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 認証ログインのみです。
  • レプリケーション テーブルには主キーが必要です。
  • 既存の 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 のシリアル化されたトランザクションでの実行

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

参照