使用 REST API 同步多個資料庫中的資料
適用於:Azure SQL 資料庫
重要
SQL 資料同步將於 2027 年 9 月 30 日淘汰。 請考慮移轉至替代資料複寫/同步處理解決方案。
此 REST API 範例會設定 SQL 資料同步以在多個資料庫之間同步資料。
如需 SQL 資料同步的概觀,請參閱什麼是適用於 Azure 的 SQL 資料同步?
SQL 資料同步不支援 Azure SQL 受控執行個體或 Azure Synapse Analytics。
建立同步群組
使用建立或更新範本來建立同步群組。
建立同步群組時,不傳入同步結構描述 (資料表\資料行),也不會傳入 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"
}
}
建立同步群組的範例回應:
狀態碼: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 資料庫 PowerShell 指令碼中找到。
如需有關 SQL 資料同步的詳細資訊,請參閱:
- 概觀 - 在 Azure 中使用 SQL 資料同步,跨多個雲端和內部部署資料庫同步資料
- 設定資料同步
- 使用 Azure 入口網站 - 教學課程:設定 SQL 資料同步以同步處理 Azure SQL 資料庫與 SQL Server 之間的資料
- 使用 PowerShell - 使用 PowerShell 同步處理 Azure SQL 資料庫與 SQL Server 中資料庫的資料
- Data Sync Agent - 適用於 Azure 中 SQL 資料同步的 Data Sync Agent
- 最佳做法 - Azure 中 SQL 資料同步的最佳做法
- 監視 - 使用 Azure 監視器記錄監視 SQL 資料同步
- 疑難排解 - 對 Azure 中的 SQL 資料同步問題進行疑難排解
- 更新同步結構描述
- 使用 Transact-SQL - 在 Azure 中的 SQL 資料同步中自動執行結構描述變更複寫
- 使用 PowerShell - 使用 PowerShell 更新現有同步群組中的同步結構描述
如需有關 SQL Database 的詳細資訊,請參閱: