REST API를 사용하여 여러 데이터베이스 간에 데이터 동기화
적용 대상: Azure SQL Database
Important
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 데이터베이스 PowerShell 스크립트에 있습니다.
SQL 데이터 동기화에 대한 자세한 내용은 다음을 참조하세요.
- 개요 - Azure의 SQL 데이터 동기화를 사용하여 여러 클라우드 및 온-프레미스 데이터베이스의 데이터 동기화
- 데이터 동기화 설정
- Azure Portal 사용 - 자습서: Azure SQL Database와 SQL Server 간에 데이터를 동기화하도록 SQL 데이터 동기화 설정
- PowerShell 사용 - PowerShell을 사용하여 Azure SQL 데이터베이스 및 SQL Server의 데이터베이스 간에 데이터 동기화
- Data Sync Agent - Azure의 SQL 데이터 동기화용 Data Sync Agent
- 모범 사례 - Azure의 SQL 데이터 동기화 모범 사례
- 모니터 - Azure Monitor 로그를 사용하여 SQL 데이터 동기화 모니터링
- 문제 해결 - Azure의 SQL 데이터 동기화 문제 해결
- 동기화 스키마 업데이트
- Transact-SQL 사용 - Azure의 SQL 데이터 동기화에서 스키마 변경 내용 복제 자동화
- PowerShell 사용 - PowerShell을 사용하여 기존 동기화 그룹의 동기화 스키마 업데이트
SQL Database에 대한 자세한 내용은 다음을 참조하세요.