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: 일부 유형만 복제돼요.
- SECURITY 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)
데이터베이스의 복제 및 장애 조치를 위한 장애 조치 그룹 생성
소스 계정에서 실행: 데이터베이스 db1을 myaccount2 계정으로 복제/장애 조치하는 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)
- ALTER FAILOVER GROUP
- DROP FAILOVER GROUP
- SHOW FAILOVER GROUPS
- CREATE REPLICATION GROUP
- 여러 계정 간 복제 및 장애 조치 소개