Azure SQL Database へのレプリケーション
適用対象:Azure SQL Database
Azure SQL Database は、一方向のトランザクションまたはスナップショット レプリケーション トポロジのプッシュ サブスクライバーとして構成できます。
注意
この記事では、Azure SQL Database でののトランザクション レプリケーションの使用方法について説明します。 これは、個々のデータベースの完全な読み取り可能レプリカを作成するための Azure SQL Database の機能である、アクティブ geo レプリケーションとは無関係です。
サポートされている構成
- Azure SQL Database は、SQL Server パブリッシャーとディストリビューターのプッシュ サブスクライバーとしてのみ構成できます。
- パブリッシャーまたはディストリビューターとして機能する SQL Server インスタンスは、オンプレミスで実行されている SQL Server のインスタンス、Azure SQL Managed Instance、またはクラウドの Azure 仮想マシンで実行されている SQL Server のインスタンスのいずれかになります。
- ディストリビューション データベースとレプリケーション エージェントは、Azure SQL Database のデータベースに配置できません。
- スナップショットおよび一方向のトランザクション レプリケーションがサポートされています。 ピア ツー ピア トランザクション レプリケーションおよびマージ レプリケーションはサポートされていません。
バージョン
Azure SQL Database のデータベースへ正常にレプリケートするには、SQL Server パブリッシャーおよびディストリビューターで、(少なくとも) 次のいずれかのバージョンが使用されている必要があります。
SQL Server データベースから Azure SQL Database への発行は、次のバージョンの SQL Server でサポートされます。
- SQL Server 2016 以降
- SQL Server 2014 RTM CU10 (12.0.4427.24) または SP1 CU3 (12.0.2556.4)
- SQL Server 2012 SP2 CU8 (11.0.5634.1) または SP3 (11.0.6020.0)
注意
サポートされていないバージョンを使用してレプリケーションを構成しようとすると、エラー番号 MSSQL_REPL20084 (プロセスはサブスクライバーに接続できませんでした) および MSSQL_REPL40532 (ログインによって要求されたサーバー <name> を開くことができません。ログインに失敗しました。) が発生する可能性があります。
Azure SQL Database のすべての機能を使用するには、最新バージョンの SQL Server Management Studio および 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 では、双方向、即時、更新可能、またはピア ツー ピアのレプリケーションはサポートされていません。
レプリケーション アーキテクチャ
シナリオ
一般的なレプリケーション シナリオ
- SQL Server データベースで、トランザクション レプリケーション パブリケーションを作成します。
- SQL Server で、新しいサブスクリプション ウィザードまたは Transact-SQL ステートメントを使用して、Azure SQL Database のサブスクリプションに対するプッシュを作成します。
- Azure SQL Database の単一およびプールされたデータベースでは、初期データ セットはスナップショットです。このスナップショットは、スナップショット エージェントによって作成され、ディストリビューション エージェントによって配布および適用されます。 SQL Managed Instance パブリッシャーでは、データベース バックアップを使用して Azure SQL Database サブスクライバーをシードすることもできます。
データ移行シナリオ
- トランザクション レプリケーションを使用して、データを、SQL Server データベースから Azure SQL Database にレプリケートします。
- クライアントまたは中間層アプリケーションをリダイレクトし、データベースのコピーを更新します。
- テーブルの SQL Server のバージョンの更新を停止し、パブリケーションを削除します。
制限事項
次のオプションは、Azure SQL Database サブスクリプションではサポートされていません。
- ファイル グループの関連付けのコピー
- テーブルのパーティション分割構成のコピー
- インデックスのパーティション分割構成のコピー
- ユーザー定義の統計情報のコピー
- 既定のバインドのコピー
- ルールのバインドのコピー
- フルテキスト インデックスのコピー
- XML XSD のコピー
- XML インデックスのコピー
- アクセス許可のコピー
- 空間インデックスのコピー
- フィルター処理済みインデックスのコピー
- データ圧縮属性のコピー
- スパース列属性のコピー
- MAX データ型への filestream の変換
- MAX データ型への hierarchyid の変換
- MAX データ型への spatial の変換
- 拡張プロパティのコピー
未定の制限事項
- 照合順序のコピー
- SP のシリアル化されたトランザクションでの実行
例
パブリケーションおよびプッシュ サブスクリプションを作成します。 詳細については、次を参照してください。
- パブリケーションを作成する
- プッシュ サブスクリプションを作成する。サーバー名をサブスクライバーとして (N'azuresqldbdns.database.windows.net' など)、また、Azure SQL Database 名を宛先データベースとして (AdventureWorks など) 使用します。
参照
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示