CREATE FAILOVER GROUP

CREATE FAILOVER GROUP

시스템에서 지정된 객체의 새 장애 조치 그룹(failover group)을 만드는 명령이에요. 장애 조치 그룹은 지정된 객체를 동일 조직의 대상 계정으로 복제하고 장애 조치할 수 있게 하는 객체 그룹이에요.

출처: 문서

본문

이 명령은 다음에 사용할 수 있어요:

  • 소스 계정에 장애 조치 그룹을 만들어 동일 조직 내 대상 계정으로 지정된 객체를 복제하고 장애 조치.
  • 대상 계정에 소스 계정의 기본 장애 조치 그룹의 복제본인 보조 장애 조치 그룹(secondary failover group)을 생성.

구문 (Syntax)

CREATE FAILOVER GROUP [ IF NOT EXISTS ] <name>
    OBJECT_TYPES = <object_type> [ , <object_type> , ... ]
    [ ALLOWED_DATABASES = <db_name> [ , <db_name> , ... ] ]
    [ ALLOWED_EXTERNAL_VOLUMES = <external_volume_name> [ , <external_volume_name> , ... ] ]
    [ ALLOWED_SHARES = <share_name> [ , <share_name> , ... ] ]
    [ ALLOWED_INTEGRATION_TYPES = <integration_type_name> [ , <integration_type_name> , ... ] ]
    ALLOWED_ACCOUNTS = <org_name>.<target_account_name> [ , <org_name>.<target_account_name> ,  ... ]
    [ IGNORE EDITION CHECK ]
    [ REPLICATION_SCHEDULE = '{ <num> MINUTE | USING CRON <expr> <time_zone> }' ]
    [ OPTIMIZED_REFRESH = { TRUE | FALSE } ]
    [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
    [ ERROR_INTEGRATION = <integration_name> ]

보조 장애 조치 그룹 (Secondary Failover Group)

CREATE FAILOVER GROUP [ IF NOT EXISTS ] <secondary_name>
    AS REPLICA OF <org_name>.<source_account_name>.<name>

매개변수

  • <name>: 장애 조치 그룹의 식별자를 지정해요. 기본 문자로 시작해야 하며, 큰따옴표로 감싸지 않는 한 공백이나 특수 문자를 포함할 수 없어요.

  • OBJECT_TYPES = object_type [ , ... ]: 소스 계정에서 대상 계정으로 복제 및 장애 조치를 활성화하는 객체 유형을 지정해요. 지원되는 객체 유형:

    • ACCOUNT PARAMETERS: 모든 계정 수준 매개변수.
    • DATABASES: 포함하면 ALLOWED_DATABASES 매개변수를 설정해야 해요.
    • EXTERNAL VOLUMES: 포함하면 ALLOWED_EXTERNAL_VOLUMES를 설정해야 해요. (Preview)
    • INTEGRATIONS: 현재 보안, API, 저장소, 외부 접근, 일부 알림 인티그레이션이 지원돼요. 포함하면 ALLOWED_INTEGRATION_TYPES를 설정해야 해요.
    • LISTINGS: 리스팅을 추가. 공유 추가는 선택 사항이에요. Snowflake가 자격 있는 리스팅과 그 공유를 자동 선택해요.
    • NETWORK POLICIES: 소스 계정의 모든 네트워크 폴리시.
    • PROFILES: 소스 계정의 모든 프로필.
    • RESOURCE MONITORS: 소스 계정의 모든 리소스 모니터.
    • ROLES: 소스 계정의 모든 역할. 포함된 객체 유형에 대한 모든 권한 부여를 암시적으로 포함해요.
    • SHARES: 포함하면 ALLOWED_SHARES를 설정해야 해요.
    • USERS: 소스 계정의 모든 사용자.
    • WAREHOUSES: 소스 계정의 모든 웨어하우스.

    사용자와 역할을 복제하면 프로그래매틱 접근 토큰이 자동으로 복제돼요.

  • ALLOWED_DATABASES = db_name [ , ... ]: 복제/장애 조치를 활성화하는 데이터베이스 목록을 지정해요. OBJECT_TYPES 목록에 DATABASES가 포함되어야 해요.

  • ALLOWED_EXTERNAL_VOLUMES = external_volume_name [ , ... ]: (Preview) 복제/장애 조치를 활성화하는 외부 볼륨 목록을 지정해요. OBJECT_TYPES 목록에 EXTERNAL VOLUMES가 포함되어야 해요.

  • ALLOWED_SHARES = share_name [ , ... ]: 복제/장애 조치를 활성화하는 공유 목록을 지정해요. OBJECT_TYPES 목록에 SHARES가 포함되어야 해요.

  • ALLOWED_INTEGRATION_TYPES = integration_type_name [ , ... ]: 복제/장애 조치를 활성화하는 인티그레이션 유형을 지정해요. OBJECT_TYPES 목록에 INTEGRATIONS가 포함되어야 해요. 지원 유형:

    • SECURITY INTEGRATIONS: OBJECT_TYPES 목록에 ROLES가 포함되어야 해요.
    • API INTEGRATIONS: 복제 후 추가 설정이 필요해요.
    • STORAGE INTEGRATIONS
    • EXTERNAL ACCESS INTEGRATIONS
    • NOTIFICATION INTEGRATIONS: 일부 유형만 복제돼요.
  • ALLOWED_ACCOUNTS = org_name.target_account_name [ , ... ]: 복제/장애 조치를 활성화하는 대상 계정 목록을 지정해요. 이 목록의 대상 계정에 있는 보조 장애 조치 그룹은 장애 조치 시 기본 장애 조치 그룹으로 승격될 수 있어요.

    • org_name: Snowflake 조직 이름.
    • target_account_name: 복제를 활성화하는 대상 계정 이름.
  • IGNORE EDITION CHECK: 다음 시나리오에서 객체 복제를 허용해요: Business Critical(이상) 계정에 기본 장애 조치 그룹이 있고, HIPAA/HITRUST 규정에 따라 PHI 데이터 저장을 위한 서면 업무 협약이 있지만, 복제가 승인된 하나 이상의 계정(에디션과 무관)에는 그런 협약이 없는 경우. 이 시나리오는 기본적으로 금지돼요.

  • REPLICATION_SCHEDULE ...: 보조 장애 조치 그룹을 새로 고치는 일정을 지정해요.

    • USING CRON expr time_zone: cron 표현식과 시간대를 지정해요.
    # __________ minute (0-59)
    # | ________ hour (0-23)
    # | | ______ day of month (1-31, or L)
    # | | | ____ month (1-12, JAN-DEC)
    # | | | | __ day of week (0-6, SUN-SAT, or L)
    # | | | | |
      * * * * *
    

    특수 문자: *(와일드카드), L(“last”), /n(n번째 인스턴스). cron 표현식은 지정된 시간대에 대해서만 평가돼요.

    • num MINUTE: 새로 고침 사이의 대기 시간(분) 간격을 지정해요. 최대 지원 값은 11520(8일)이에요.
  • OPTIMIZED_REFRESH = { TRUE | FALSE }: (Preview, Business Critical 이상) 장애 조치 그룹이 최적화된 새로 고침을 사용하는지 지정해요. 최적화된 새로 고침은 소스 계정의 메타데이터 변경을 추적하고 각 새로 고침에서 그 변경만 대상 계정에 적용해요. TRUE로 설정하면 REPLICATION_SCHEDULE이 필요하고 간격이 6시간 이하여야 해요. 기본값: FALSE.

  • TAG ( tag_name = 'tag_value' [ , ... ] ): 태그 이름과 문자열 값을 지정해요. 최대 256자.

  • ERROR_INTEGRATION = integration_name: 장애 조치 그룹에 새로 고침 오류가 발생할 때 알림을 보내는 데 사용할 알림 인티그레이션 이름을 지정해요.

보조 장애 조치 그룹 매개변수

  • <secondary_name>: 보조 장애 조치 그룹의 식별자를 지정해요. 기본(name)과 같을 수도 있고 달라도 되요.
  • AS REPLICA OF org_name.source_account_name.name: 보조 장애 조치 그룹을 만들 기본 장애 조치 그룹의 식별자를 지정해요.

접근 제어 요구 사항

권한 객체 참고
CREATE FAILOVER GROUP 계정 기본적으로 ACCOUNTADMIN 역할만 이 권한을 가져요.
MONITOR 데이터베이스 장애 조치 그룹에 데이터베이스를 추가하려면 MONITOR 권한 필요.
USAGE 외부 볼륨 외부 볼륨 추가에 USAGE 권한 필요.
OWNERSHIP 공유 공유 추가에 OWNERSHIP 권한 필요.

사용법 참고 사항

  • 계정의 장애 조치 그룹과 복제 그룹 식별자는 고유해야 해요.
  • 데이터베이스 이외의 객체(외부 볼륨, 공유)는 같은 장애 조치 그룹에 있어야 해요.
  • 데이터베이스는 하나의 장애 조치 그룹에만 추가할 수 있어요.
  • 외부 볼륨은 하나의 복제/장애 조치 그룹에만 추가할 수 있어요.
  • 인바운드 공유(프로바이더의 공유)는 복제/장애 조치 그룹에 추가할 수 없어요.
  • 복제가 활성화된 계정 집합은 SHOW REPLICATION ACCOUNTS로, 조직의 장애 조치 그룹 목록은 SHOW FAILOVER GROUPS로 조회해요.
  • 복제 동안 드롭하고 싶지 않은 대상 계정의 계정 객체에는 SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME 시스템 함수로 전역 식별자를 적용하세요.
  • 자동 예약된 새로 고침은 그룹에 OWNERSHIP 권한이 있는 역할로 실행돼요.
  • 태그 상속은 복제/장애 조치 그룹에 지정한 객체에 적용되지 않아요. 보조 그룹은 읽기 전용이므로 태그를 설정/수정할 수 없어요.
  • Business Critical(이상)으로 새로 업그레이드된 계정의 경우 장애 조치 기능이 제공되기까지 최대 12시간이 걸릴 수 있어요.
  • OPTIMIZED_REFRESH = TRUE일 때 장애 조치 그룹은 6시간 이하 간격의 REPLICATION_SCHEDULE을 가져야 해요.

예제 (Examples)

데이터베이스의 복제 및 장애 조치를 위한 장애 조치 그룹 생성

소스 계정에서 실행: 데이터베이스 db1myaccount2 계정으로 복제/장애 조치하는 myfg 장애 조치 그룹을 만들고 10분마다 새로 고치도록 설정해요.

CREATE FAILOVER GROUP myfg
    OBJECT_TYPES = DATABASES
    ALLOWED_DATABASES = db1
    ALLOWED_ACCOUNTS = myorg.myaccount2
    REPLICATION_SCHEDULE = '10 MINUTE';

대상 계정에서 실행:

CREATE FAILOVER GROUP myfg
    AS REPLICA OF myorg.myaccount1.myfg;

여러 데이터베이스의 복제 및 장애 조치를 위한 장애 조치 그룹 생성

CREATE FAILOVER GROUP myfg
    OBJECT_TYPES = DATABASES
    ALLOWED_DATABASES = db1, db2, db3
    ALLOWED_ACCOUNTS = myorg.myaccount2
    REPLICATION_SCHEDULE = '10 MINUTE';

계정 객체의 복제 및 장애 조치를 위한 장애 조치 그룹 생성

사용자, 역할, 웨어하우스, 리소스 모니터, 저장소/알림 인티그레이션을 복제/장애 조치해요:

CREATE FAILOVER GROUP myfg
    OBJECT_TYPES = USERS, ROLES, WAREHOUSES, RESOURCE MONITORS, INTEGRATIONS
    ALLOWED_INTEGRATION_TYPES = STORAGE INTEGRATIONS, NOTIFICATION INTEGRATIONS
    ALLOWED_ACCOUNTS = myorg.myaccount2
    REPLICATION_SCHEDULE = '10 MINUTE';

프로필의 복제 및 장애 조치를 위한 장애 조치 그룹 생성

사용자, 역할, 프로필을 복제/장애 조치해요:

CREATE FAILOVER GROUP myfg
    OBJECT_TYPES = USERS, ROLES, PROFILES
    ALLOWED_ACCOUNTS = myorg.myaccount2;

대상 계정에서:

CREATE FAILOVER GROUP myfg
    AS REPLICA OF myorg.myaccount1.myfg;
ALTER FAILOVER GROUP myfg REFRESH;

최적화된 새로 고침을 사용하는 장애 조치 그룹 생성

데이터베이스 db1을 최적화된 새로 고침으로 10분마다 복제해요:

CREATE FAILOVER GROUP myfg
    OBJECT_TYPES = DATABASES
    ALLOWED_DATABASES = db1
    ALLOWED_ACCOUNTS = myorg.myaccount2
    REPLICATION_SCHEDULE = '10 MINUTE'
    OPTIMIZED_REFRESH = TRUE;

더 알아보기 (Learn more)