REST API を使用して複数のデータベース間でデータを同期する
適用対象: Azure SQL データベース
重要
SQL データ同期 は、2027 年 9 月 30 日に廃止される予定です。 代替のデータ レプリケーション/同期ソリューションへの移行を検討してください。
この REST API の例は、複数のデータベース間でデータを同期する SQL データ同期を構成します。
SQL データ同期の概要については、「Azure のSQL データ同期とは?」を参照してください。
SQL データ同期は、Azure SQL Managed Instance または Azure Synapse Analytics をサポートしていません。
同期グループを作成する
同期グループを作成するには、作成または更新テンプレートを使用します。
同期グループにはテーブル\列の情報が含まれていないため、同期グループを作成するとき、同期スキーマ (テーブル\列) を渡さず、masterSyncMemberName
で渡さないでください。
同期グループ名には特殊文字を含めることはできませんが、文字、数字、アンダースコア (_
)、ダッシュ (-
) を含めることができます。
グループ同期の最小間隔は 5 秒です。 間隔時間が短い場合は、5 秒が使用されます。
同期グループ作成の要求の例:
PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-65440/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187?api-version=2015-05-01-preview
{
"properties": {
"interval": -1,
"lastSyncTime": "0001-01-01T08:00:00Z",
"conflictResolutionPolicy": "HubWin",
"syncDatabaseId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-3521/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328",
"hubDatabaseUserName": "hubUser"
}
}
同期グループ作成の応答の例:
状態コード:200
{
"properties": {
"interval": -1,
"lastSyncTime": "0001-01-01T08:00:00Z",
"conflictResolutionPolicy": "HubWin",
"syncDatabaseId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-3521/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328",
"hubDatabaseUserName": "hubUser",
"syncState": "NotReady"
},
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-3521/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187",
"name": "syncgroupcrud-3187",
"type": "Microsoft.Sql/servers/databases/syncGroups"
}
状態コード: 201
{
"properties": {
"interval": -1,
"lastSyncTime": "0001-01-01T08:00:00Z",
"conflictResolutionPolicy": "HubWin",
"syncDatabaseId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-3521/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328",
"hubDatabaseUserName": "hubUser",
"syncState": "NotReady"
},
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-3521/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187",
"name": "syncgroupcrud-3187",
"type": "Microsoft.Sql/servers/databases/syncGroups"
}
同期メンバーを作成する
同期メンバーを作成するには、作成または更新テンプレートを使用します。
同期メンバー作成の要求の例:
PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-65440/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187/syncMembers/syncgroupcrud-4879?api-version=2015-05-01-preview
{
"properties": {
"databaseType": "AzureSqlDatabase",
"serverName": "syncgroupcrud-3379.database.windows.net",
"databaseName": "syncgroupcrud-7421",
"userName": "myUser",
"syncDirection": "Bidirectional",
"syncState": "UnProvisioned"
}
}
同期メンバー作成の応答の例:
状態コード: 200
{
"properties": {
"databaseType": "AzureSqlDatabase",
"serverName": "syncgroupcrud-3379.database.windows.net",
"databaseName": "syncgroupcrud-7421",
"userName": "myUser",
"syncDirection": "Bidirectional",
"syncState": "UnProvisioned"
},
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-65440/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187/syncMembers/syncgroupcrud-4879",
"name": "syncgroupcrud-4879",
"type": "Microsoft.Sql/servers/databases/syncGroups/syncMembers"
}
状態コード: 201
{
"properties": {
"databaseType": "AzureSqlDatabase",
"serverName": "syncgroupcrud-3379.database.windows.net",
"databaseName": "syncgroupcrud-7421",
"userName": "myUser",
"syncDirection": "Bidirectional",
"syncState": "UnProvisioned"
},
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-65440/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187/syncMembers/syncgroupcrud-4879",
"name": "syncgroupcrud-4879",
"type": "Microsoft.Sql/servers/databases/syncGroups/syncMembers"
}
スキーマを更新する
同期グループが正常に作成されたら、次のテンプレートを使用してスキーマを更新します。
ハブ データベースのスキーマを更新するには、ハブ スキーマの更新テンプレートを使用します。
ハブ データベース スキーマ更新の要求の例:
POST https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-65440/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187/refreshHubSchema?api-version=2015-05-01-preview
ハブ データベース スキーマ更新の応答の例:
状態コード:200
状態コード: 202
ハブ データベース スキーマの一覧を表示するには、ハブ スキーマの一覧表示テンプレートを使用します。
メンバー データベース スキーマを更新するには、メンバー スキーマの更新テンプレートを使用します。
メンバー データベース スキーマの一覧を表示するには、メンバー スキーマの一覧表示テンプレートを使用します。
スキーマが正常に更新された場合のみ、次の手順に進みます。
同期グループを更新する
同期グループを更新するには、作成または更新テンプレートを使用します。
同期スキーマを指定して、同期グループを更新します。 スキーマと masterSyncMemberName
を含めます。これは、使用するスキーマが格納されている名前です。
同期グループ更新の要求の例:
PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-65440/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187?api-version=2015-05-01-preview
{
"properties": {
"interval": -1,
"lastSyncTime": "0001-01-01T08:00:00Z",
"conflictResolutionPolicy": "HubWin",
"syncDatabaseId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-3521/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328",
"hubDatabaseUserName": "hubUser"
}
}
同期グループ更新の応答の例:
{
"properties": {
"interval": -1,
"lastSyncTime": "0001-01-01T08:00:00Z",
"conflictResolutionPolicy": "HubWin",
"syncDatabaseId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-3521/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328",
"hubDatabaseUserName": "hubUser",
"syncState": "NotReady"
},
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-3521/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187",
"name": "syncgroupcrud-3187",
"type": "Microsoft.Sql/servers/databases/syncGroups"
}
{
"properties": {
"interval": -1,
"lastSyncTime": "0001-01-01T08:00:00Z",
"conflictResolutionPolicy": "HubWin",
"syncDatabaseId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-3521/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328",
"hubDatabaseUserName": "hubUser",
"syncState": "NotReady"
},
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-3521/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187",
"name": "syncgroupcrud-3187",
"type": "Microsoft.Sql/servers/databases/syncGroups"
}
同期メンバーを更新する
同期メンバーを更新するには、作成または更新テンプレートを使用します。
同期メンバー更新の要求の例:
PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-65440/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187/syncMembers/syncgroupcrud-4879?api-version=2015-05-01-preview
{
"properties": {
"databaseType": "AzureSqlDatabase",
"serverName": "syncgroupcrud-3379.database.windows.net",
"databaseName": "syncgroupcrud-7421",
"userName": "myUser",
"syncDirection": "Bidirectional",
"syncState": "UnProvisioned"
}
}
同期メンバー更新の応答の例:
状態コード:200
{
"properties": {
"databaseType": "AzureSqlDatabase",
"serverName": "syncgroupcrud-3379.database.windows.net",
"databaseName": "syncgroupcrud-7421",
"userName": "myUser",
"syncDirection": "Bidirectional",
"syncState": "UnProvisioned"
},
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-65440/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187/syncMembers/syncgroupcrud-4879",
"name": "syncgroupcrud-4879",
"type": "Microsoft.Sql/servers/databases/syncGroups/syncMembers"
}
状態コード: 201
{
"properties": {
"databaseType": "AzureSqlDatabase",
"serverName": "syncgroupcrud-3379.database.windows.net",
"databaseName": "syncgroupcrud-7421",
"userName": "myUser",
"syncDirection": "Bidirectional",
"syncState": "UnProvisioned"
},
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-65440/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187/syncMembers/syncgroupcrud-4879",
"name": "syncgroupcrud-4879",
"type": "Microsoft.Sql/servers/databases/syncGroups/syncMembers"
}
同期 をトリガーする
同期操作をトリガーするには、同期のトリガー テンプレートを使用します。
同期操作トリガーの要求の例:
POST https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/syncgroupcrud-65440/providers/Microsoft.Sql/servers/syncgroupcrud-8475/databases/syncgroupcrud-4328/syncGroups/syncgroupcrud-3187/triggerSync?api-version=2015-05-01-preview
同期操作トリガーの応答の例:
状態コード:200
関連するコンテンツ
Azure PowerShell の詳細については、Azure PowerShell のドキュメントを参照してください。
その他の SQL Database 用の PowerShell サンプル スクリプトは、Azure SQL Database 用の PowerShell スクリプトのページにあります。
SQL データ同期の詳細については、以下を参照してください。
- 概要 - Azure の SQL データ同期を使用して複数のクラウドおよびオンプレミス データベース間でデータを同期する
- データ同期の設定
- Azure portal の使用 - チュートリアル: Azure SQL Database と SQL Server の間でデータを同期するように SQL データ同期を設定する
- PowerShell の使用 - PowerShell を使用して Azure SQL Database と SQL Server のデータベース間でデータを同期する
- データ同期エージェント - Azure の SQL データ同期の Data Sync Agent
- ベスト プラクティス - Azure の SQL データ同期のベスト プラクティス
- 監視 - Azure Monitor ログによる SQL データ同期の監視
- トラブルシューティング - Azure の SQL データ同期に関する問題のトラブルシューティング
- 同期スキーマの更新
- Transact-SQL の使用 - Azure の SQL データ同期内でスキーマ変更のレプリケートを自動化する
- PowerShell の使用 - PowerShell を使用して、既存の同期グループの同期スキーマを更新する
SQL Database の詳細については、以下をご覧ください。