Azure SQL Database로 복제
적용 대상: Azure SQL Database
SQL Server 및 Azure SQL Managed Instance에서 Azure SQL Database를 단방향 트랜잭션 또는 스냅숏 복제 토폴로지에서 밀어넣기 구독자로 데이터베이스를 구성할 수 있습니다.
참고 항목
이 문서에서는 Azure SQL Database에서 트랜잭션 복제를 사용하는 방법을 설명합니다. 개별 데이터베이스의 전체 읽기 가능 복제본을 만들 수 있는 Azure SQL Database 기능인 활성 지역 복제와는 관련이 없습니다.
지원되는 구성
- 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에서는 SQL Server 데이터베이스에서 모든 Azure SQL Database에 게시할 수 있습니다.
- 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(로그인에서 요청한 서버 <이름>을 열 수 없습니다. 로그인이 실패했습니다.)
Azure SQL Database의 모든 기능을 사용하려면 최신 버전의 SQL Server Management Studio (SSMS) 및 SQL Server Data Tools를 사용해야 합니다.
복제의 유형
다음과 같은 여러 복제 유형이 있습니다.
복제 | Azure SQL Database | 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 데이터베이스 및 SQL Server(온-프레미스 및 Azure 가상 머신의 SQL Server) 구독자를 모두 지원할 수 있습니다.
- 복제 관리, 모니터링, 문제 해결은 Azure SQL Database보다는 SQL Server 인스턴스에서 수행해야 합니다.
@subscriber_type = 0
만이 SQL 데이터베이스에 대한 sp_addsubscription에서 지원됩니다.- Azure SQL Database는 양방향, 즉시, 업데이트 가능한 또는 피어 투 피어 복제를 지원하지 않습니다.
복제 아키텍처
시나리오
일반적인 복제 시나리오
- SQL Server 데이터베이스에서 트랜잭션 복제 게시를 만듭니다.
- SQL Server에서 새 구독 마법사 또는 Transact-SQL 문을 사용하여 Azure SQL 데이터베이스 구독에 대한 푸시를 만듭니다.
- Azure SQL 데이터베이스 내 단일 또는 풀링된 데이터베이스에서 초기 데이터 세트는 스냅샷 에이전트에서 만들고 배포 에이전트에서 배포 및 적용한 스냅샷입니다. SQL Managed Instance 게시자에서 데이터베이스 백업을 사용하여 Azure SQL Database 구독자를 시드할 수도 있습니다.
데이터 마이그레이션 시나리오
- SQL Server 데이터베이스에서 Azure SQL 데이터베이스로 데이터를 복제하려면 트랜잭션 복제를 사용하세요.
- 클라이언트 또는 중간 계층 애플리케이션을 리디렉션하여 데이터베이스 사본을 업데이트합니다.
- 테이블의 SQL 서버 버전 업데이트를 중지하고 게시를 제거합니다.
제한 사항
다음 옵션을 사용한 복제는 Azure SQL Database 구독에 대해 지원되지 않습니다.
- 파일 그룹 연결 복사
- 테이블 파티션 구성표 복사
- 인덱스 파티션 구성표 복사
- 사용자 정의 통계 복사
- 기본 바인딩 복사
- 규칙 바인딩 복사
- 전체 텍스트 인덱스 복사
- XML XSD 복사
- XML 인덱스 복사
- 권한 복사
- 공간 인덱스 복사
- 필터링된 인덱스 복사
- 데이터 압축 특성 복사
- 스파스 열 특성 복사
- 파일 스트림을 MAX 데이터 형식으로 변환
- hierarchyid를 MAX 데이터 형식으로 변환
- 공간을 MAX 데이터 형식으로 변환
- 확장 속성 복사
추후 결정될 제한 사항
- 데이터 정렬 복사
- SP의 직렬화된 트랜잭션에서 실행
예제
게시 및 밀어넣기 구독을 만듭니다. 자세한 내용은 다음을 참조하세요.
- 게시 만들기
- 구독자로는 서버 이름(예: N'azuresqldbdns.database.windows.net')을, 대상 데이터베이스로는 Azure SQL 데이터베이스 이름(예: AdventureWorks)을 사용하여 푸시 구독을 만듭니다.