소스 SQL Server 데이터베이스

이 페이지에는 다음과 같은 정보가 포함되어 있습니다.

  • 소스 SQL Server 데이터베이스에서 가져오는 데이터가 Datastream에서 처리되는 방법
  • Datastream에서 지원되는 SQL Server 데이터베이스 버전
  • SQL Server 데이터베이스를 소스로 사용할 경우 알려진 제한사항

동작

Datastream은 다음 CDC 메서드 중 하나를 사용하여 데이터 조작 언어(DML) 변경사항을 추적합니다.

테이블 변경

변경 테이블 CDC 메서드를 사용하면 로그를 더 짧은 시간 동안 보존하여 저장공간을 절약할 수 있지만 트랜잭션 로그 메서드에 비해 처리량이 낮습니다. 이 방법은 트랜잭션 로그보다 제한사항이 적습니다. 예를 들어, 로그 잘림으로 인해 스트림이 영구적으로 실패할 위험성이 없으며, 암호화된 테이블의 복제를 지원합니다. 자세한 내용은 알려진 제한사항을 참고하세요.

이 CDC 메서드를 사용할 때는 전용 변경 테이블을 사용하여 소스에 대한 변경사항을 추적합니다. 트랜잭션 로그는 계속 사용되지만 제한적으로 사용되며 장기간 보관할 필요가 없습니다. DML 이벤트가 소스 테이블에 적용되면 변경사항이 해당 변경 테이블에 복제됩니다. 변경 테이블은 소스 테이블과 구조는 동일하지만 변경사항의 메타데이터를 포함하는 추가 열이 있습니다. 커밋된 트랜잭션만 커밋 작업의 로그 시퀀스 넘버(LSN)와 함께 변경 테이블에 추가됩니다.

트랜잭션 로그

이 CDC 메서드를 사용할 때 Datastream은 트랜잭션 로그에서 소스의 변경사항을 직접 읽습니다. 이 메서드는 더 적은 리소스를 필요로 하며 데이터를 더 빠르게 검색할 수 있지만 더 많은 제한 사항이 있습니다.

데이터 손실을 방지하기 위해서는 Datastream이 로그를 읽기 전에 로그가 잘리지 않는 것이 중요합니다. 반면에 로그 파일을 너무 오래 보관하면 스토리지 공간을 차지하여 결국 데이터베이스 인스턴스가 읽기 전용 모드로 전환될 수 있습니다.

CDC 리더가 로그를 읽을 수 있는 충분한 시간을 확보하는 동시에 로그 자르기를 허용하여 스토리지 공간을 확보하기 위해서는 폴링 간격 변경과 자르기 보호 장치 설정과 같은 추가 구성 단계를 적용해야 합니다. 이러한 단계는 Datastream에 다운타임이 발생하거나 소스 데이터베이스와 Datastream 사이에 연결 문제가 있더라도 Datastream이 데이터를 읽을 수 있도록 보장하여 추가적인 보호 레이어를 제공합니다.

이러한 추가 조치를 적용하는 방법에 관한 자세한 안내는 소스 SQL Server 데이터베이스 구성 페이지를 참고하고 데이터베이스 유형을 선택하세요.

버전

Datastream은 다음 버전의 SQL Server 데이터베이스를 지원합니다.

  • 다음 버전을 사용하는 자체 관리형(온프레미스 또는 클라우드 호스팅):
    • Enterprise: 2008 이상
    • Standard: 2016 SP1 이상
    • Developer: 2008 이상
  • SQL Server용 Amazon RDS
  • Azure SQL Database(등급 S3 이상)

  • SQL Server용 Cloud SQL

Datastream은 다음 버전의 SQL Server 데이터베이스를 지원하지 않습니다.

  • SQL Server Standard 버전 2008~2014
  • SQL Server Express
  • SQL Server Web

알려진 제한사항

SQL Server 데이터베이스를 소스로 사용할 경우 알려진 제한사항은 다음과 같습니다.

  • 스트림이 테이블 10,000개로 제한됩니다.
  • 행 개수가 5억 개를 초과하는 테이블은 다음 조건이 충족되지 않는 한 백필할 수 없습니다.
    1. 테이블에 고유 색인이 포함됩니다.
    2. 색인 열 중에 null이 허용되는 열이 없습니다.
    3. 색인의 모든 열이 스트림에 포함됩니다.
  • 지연된 내구성 또는 가속화된 데이터베이스 복구(ADR)가 사용 설정된 데이터베이스는 지원되지 않습니다.
  • 시스템 테이블에 변경사항 스트리밍은 지원되지 않습니다.
  • Windows Active Directory(AD) 인증은 지원되지 않습니다.
  • 다음 데이터 유형은 지원되지 않으며 대상에 복제되지 않습니다.
    • SQL_VARIANT
    • HIERARCHYID
    • GEOMETRY
    • GEOGRAPHY
  • Datastream은 사용자 정의 데이터 유형을 복제하지만 대상에 저장되는 데이터 유형은 사용자 정의 유형을 파생하는 기본 데이터 유형입니다. 예를 들어 USERNAME 데이터 유형을 기반으로 VARCHAR(50) 데이터 유형을 정의하는 경우 데이터는 대상에 VARCHAR(50)으로 저장됩니다.
  • Datastream은 고유한 검색이 없는 테이블의 대용량 객체 열(TEXT, NTEXT, XML, IMAGE) 및 최대 가변 길이 열(VARCHAR(MAX), VARBINARY(MAX), NVARCHAR(MAX))에 대해서는 CDC를 지원하지 않습니다.

    큰 객체 열이 스트림에 포함되지 않으면 CDC가 지원됩니다.

  • Datastream은 변경 테이블 CDC 메서드를 사용할 때 소스 스키마 변경사항을 복제할 수 없습니다. 다음 스키마 변경사항으로 인해 데이터가 손상되거나 이벤트를 처리하지 못할 수 있습니다.

    • 열 추가: 새 열이 대상에 복제되지 않습니다.
    • 열 삭제: 이러한 열의 데이터는 NULL 값으로 대체됩니다.
    • 데이터 유형 수정: Datastream은 데이터를 대상에 삽입하려고 시도하고 데이터가 거부되면 오류가 발생합니다.
    • 열 이름 바꾸기: CDC가 사용 설정된 경우에는 SQL Server에 지원되지 않습니다.
  • Datastream은 데이터 마스킹을 지원하지 않습니다. 데이터는 마스킹 없이 복제됩니다.

  • Datastream은 데이터 계층 애플리케이션 패키지(DACPAC) 패키지를 사용하여 데이터베이스에 적용된 변경사항 복제를 지원하지 않습니다.

  • Datastream은 WRITETEXT 또는 UPDATETEXT 문을 사용할 때 만들어진 변경사항을 복제하지 않습니다.

  • Datastream은 열이 PERSISTED로 표시되지 않는 한 계산된 열의 복제를 지원하지 않습니다.

  • Datastream은 PAGE, COLUMNSTORE 또는 COLUMNSTORE ARCHIVE 압축 유형을 지원하지 않습니다.

트랜잭션 로그 방법 사용 시 추가 제한사항

트랜잭션 로그 CDC 메서드를 사용하는 경우 다음과 같은 추가 제한사항이 적용됩니다.

  • 투명 데이터 암호화(TDE)는 지원되지 않습니다.
  • 열 수준 암호화는 지원되지 않습니다. 이러한 열의 데이터는 NULL 값으로 대체됩니다.
  • Datastream은 ROLLBACK TO SAVEPOINT 문을 지원하지 않습니다. 이러한 롤백 이벤트는 무시되며 대상에 복제되지 않습니다.
  • DataStream은 다음 유형의 테이블에서 8KB를 초과하는 행에 대해 CDC를 지원하지 않습니다.
    • 고유한 색인이 없는 테이블
    • 가변 길이 열이 하나 이상(VARCHAR, VARBINARY, NVARCHAR) 있는 클러스터링되지 않은 고유한 색인만 포함된 테이블
  • Datastream은 다음 유형의 테이블에서 대형 객체 열(TEXT, NTEXT, XML, IMAGE)에 대해 CDC를 지원하지 않습니다.

    • 고유한 색인이 없는 테이블
    • 가변 길이 열이 하나 이상(VARCHAR, VARBINARY, NVARCHAR) 있는 클러스터링되지 않은 고유한 색인만 포함된 테이블

    큰 객체 열이 스트림에 포함되지 않은 경우 해당 테이블에 유효한 검색이 있는 경우에만 CDC가 지원됩니다.

다음 단계