여러 계정에서 데이터베이스 복제 소개

이 기능을 사용하면 Snowflake 계정(동일한 조직 내) 간에 데이터베이스를 복제하고 데이터베이스 오브젝트와 저장된 데이터를 동기화된 상태로 유지할 수 있습니다. 데이터베이스 복제는 리전클라우드 플랫폼 전반에서 지원됩니다.

참고

복제 및 장애 조치 소개 을 사용하여 데이터베이스를 복제하는 것이 좋습니다. 복제 및 장애 조치 그룹 을 사용하면 그룹의 오브젝트에 대한 특정 시점 일관성을 유지하며 여러 데이터베이스와 다른 계정 오브젝트를 복제할 수 있습니다. 제공되는 기능지원되는 오브젝트 의 전체 목록은 복제 및 장애 조치 소개 섹션을 참조하십시오.

이 항목의 내용:

기본 데이터베이스란 무엇입니까?

기존 영구 또는 임시 데이터베이스에 대해 복제를 활성화할 수 있습니다. 복제를 활성화하면 데이터베이스가 기본 데이터베이스 로 지정됩니다. 계정에 있는 데이터베이스는 수에 관계없이 기본 데이터베이스로 지정할 수 있습니다. 마찬가지로 기본 데이터베이스는 조직의 여러 계정에 복제할 수 있습니다. 여기에는 각 대상 계정에 지정된 기본 데이터베이스의 복제본으로 보조 데이터베이스 를 생성하는 작업이 포함됩니다. 이러한 계정은 일반적으로 같거나 다른 클라우드 플랫폼에서 다른 리전에 있거나 원본 계정과 같은 리전에 있을 수 있습니다.

모든 DML/DDL 작업은 기본 데이터베이스에서 실행됩니다. 각 읽기 전용 보조 데이터베이스는 기본 데이터베이스의 스냅샷으로 주기적으로 새로 고쳐지고 모든 데이터는 물론 데이터베이스 오브젝트(예: 스키마, 테이블, 뷰 등)에 대한 DDL 작업을 복제할 수 있습니다.

데이터베이스 복제 개요

복제된 데이터베이스 오브젝트의 전체 목록은 복제된 데이터베이스 오브젝트 섹션을 참조하십시오.

계정의 다른 오브젝트

데이터베이스 복제는 데이터베이스에만 지원됩니다. 계정에 있는 다른 유형의 오브젝트는 계정 복제 로 복제할 수 있습니다. 계정 복제용으로 오브젝트의 전체 목록은 복제된 오브젝트 섹션을 참조하십시오.

액세스 제어

데이터베이스 오브젝트에 부여된 권한은 보조 데이터베이스에 복제되지 않습니다. 여기에는 기존 데이터베이스 오브젝트에 대한 권한 부여뿐 아니라 향후 오브젝트에 대한 권한 부여(즉, 향후 권한 부여)도 포함됩니다.

권한 부여는 계정 복제 로 복제할 수 있습니다.

매개 변수

계정 매개 변수는 데이터베이스 복제로 복제되지 않습니다. 계정 매개 변수는 계정 복제 로 복제할 수 있습니다.

스키마 또는 스키마 오브젝트 수준에서 설정된 오브젝트 매개 변수가 복제됩니다.

매개 변수

오브젝트

DATA_RETENTION_TIME_IN_DAYS

스키마, 테이블

DEFAULT_DDL_COLLATION

스키마, 테이블

MAX_DATA_EXTENSION_TIME_IN_DAYS

스키마, 테이블

PIPE_EXECUTION_PAUSED [1]

스키마, 파이프

QUOTED_IDENTIFIERS_IGNORE_CASE

스키마, 테이블

매개 변수 복제는 데이터베이스의 오브젝트(스키마, 테이블)에, 그리고 CREATE <오브젝트> <매개 변수> 또는 ALTER <오브젝트> … SET <매개 변수> 를 사용하여 매개 변수를 명시적으로 설정하는 경우에만 적용 가능합니다. 데이터베이스 수준 매개 변수는 복제되지 않습니다.

기본 데이터베이스의 오브젝트에 명시적으로 설정된 매개 변수는 보조 데이터베이스의 오브젝트에 설정된 매개 변수를 덮어씁니다. 예를 들어 기본 데이터베이스에 DATA_RETENTION_TIME_IN_DAYS가 10으로 설정된 스키마 s1 이 있고 보조 데이터베이스에서는 DATA_RETENTION_TIME_IN_DAYS가 데이터베이스 수준에서 1로 설정된 경우, 보조 데이터베이스에서 스키마 s1 의 DATA_RETENTION_TIME_IN_DAYS는 복제 후 10으로 설정됩니다.

데이터베이스 수준에서 보조 데이터베이스에 명시적으로 설정된 매개 변수를 덮어쓰지는 않습니다. 예를 들어, 보조 데이터베이스 매개 변수 DATA_RETENTION_TIME_IN_DAYS가 명시적으로 1로 설정되고 기본 데이터베이스 매개 변수 DATA_RETENTION_TIME_IN_DAYS가 명시적으로 10으로 설정된 경우, 보조 데이터베이스의 DATA_RETENTION_TIME_IN_DAYS는 복제 후에도 1로 설정된 상태로 남습니다.

[1] PIPE 오브젝트는 복제되지 않습니다. 기본 데이터베이스에서 PIPE_EXECUTION_PAUSED 매개 변수가 스키마 수준에서 설정된 경우, 이 매개 변수는 보조 데이터베이스에 복제됩니다. 장애 조치 상황에서 보조 데이터베이스가 기본 데이터베이스로 승격되고 파이프가 생성될 때 이 매개 변수 설정이 적용됩니다.

하위 에디션의 계정에 대한 데이터베이스 복제

다음 조건 중 하나에 해당하는 경우 Snowflake는 로컬 데이터베이스가 기본 데이터베이스 역할을 하도록 승격될 때 오류 메시지를 표시합니다.

  • 기본 데이터베이스가 Business Critical 이상 계정에 있지만, 복제를 위해 승인된 하나 이상의 계정이 하위 에디션에 있는 경우. Business Critical Edition은 극히 민감한 데이터가 있는 Snowflake 계정을 위한 것입니다.

  • 기본 데이터베이스가 Business Critical 이상 계정에 있고 HIPAA 및 HITRUST CSF 규정에 따라 계정에 PHI 데이터를 저장하기 위해 서명된 비즈니스 제휴 계약이 마련되어 있지만, 복제를 위해 승인된 하나 이상의 계정이 Business Critical 이상 계정인지와는 관계없이 이런 계정에 대해 그와 같은 계약이 마련되지 않은 경우.

Business Critical 이상 계정의 계정 관리자가 실수로 민감한 데이터를 하위 에디션의 계정으로 복제하는 것을 방지하기 위해 구현되었습니다.

계정 관리자는 ALTER DATABASE … ENABLE REPLICATION TO ACCOUNTS 문을 실행할 때 IGNORE EDITION CHECK 절을 포함하여 이 기본 동작을 재정의할 수 있습니다. IGNORE EDITION CHECK가 설정된 경우 기본 데이터베이스를 모든 Snowflake 에디션의 지정된 계정에 복제할 수 있습니다.

현재의 데이터베이스 복제 제한 사항

  • 공유에서 생성된 데이터베이스는 복제할 수 없습니다.

  • 기본 데이터베이스에 다음 중 하나가 포함된 경우에는 새로 고침 작업이 실패합니다.

    • 이벤트 테이블

    • 외부 테이블

  • CREATE DATABASE … AS REPLICA 명령은 WITH TAG 절을 지원하지 않습니다.

    보조 데이터베이스는 읽기 전용이므로 이 절은 지원되지 않습니다. 기본 데이터베이스가 WITH TAG 절을 지정하는 경우 보조 데이터베이스를 만들기 전에 이 절을 제거하십시오. 데이터베이스에 WITH TAG 절이 있는지 확인하려면 Snowflake 계정에서 GET_DDL 함수를 호출하고 함수 인자에 기본 데이터베이스를 지정하십시오. 데이터베이스에 태그가 설정된 경우 함수 출력에 ALTER DATABASE … SET TAG 문이 포함됩니다.

  • 스테이지 및 파이프 복제는 지원되지 않습니다. 계정 복제를 사용하여 스테이지와 파이프를 복제할 수 있습니다. 자세한 내용은 스테이지, 파이프 및 로드 기록 복제 섹션을 참조하십시오.