REPLICATION_GROUP_REFRESH_HISTORY, REPLICATION_GROUP_REFRESH_HISTORY_ALL

REPLICATION_GROUP_REFRESH_HISTORY, REPLICATION_GROUP_REFRESH_HISTORY_ALL

하나의 보조 복제·페일오버 그룹 또는 모든 그룹의 복제 이력을 조회하는 테이블 함수 제품군이에요. 복제·페일오버 작업을 모니터링할 때 씁니다.

출처: Snowflake SQL Reference

본문

Standard & Business Critical 기능: 데이터베이스·공유 복제는 모든 계정에서 사용할 수 있어요. 다른 계정 객체 복제 및 페일오버/페일백은 Business Critical Edition 이상이 필요해요.

기본적으로(날짜 범위 인자를 제공하지 않으면) 이 함수들은 최근 12시간의 데이터를 반환해요. 선택 인자 DATE_RANGE_START와 DATE_RANGE_END로 14일 보존 창 안의 사용자 정의 범위를 조회할 수 있어요.

REPLICATION_GROUP_REFRESH_HISTORY(
      '<secondary_group_name>'
      [ , DATE_RANGE_START => <constant_expr> ]
      [ , DATE_RANGE_END => <constant_expr> ] )

REPLICATION_GROUP_REFRESH_HISTORY_ALL(
      [ DATE_RANGE_START => <constant_expr> ]
      [ , DATE_RANGE_END => <constant_expr> ] )

secondary_group_name — 보조 그룹 이름. 전체 이름을 작은따옴표로 감싸야 해요. REPLICATION_GROUP_REFRESH_HISTORY에 필수이고, _ALL에서는 사용되지 않아요.

DATE_RANGE_START / DATE_RANGE_END — 복제 리프레시 이력을 반환할 날짜/시간 범위.

  • 시작·끝 모두 없으면 기본은 최근 12시간.
  • 시작만 있고 끝이 없으면 자정의 CURRENT_DATE가 범위 끝.
  • 끝만 있고 시작이 없으면 범위는 DATE_RANGE_END 시작 12시간 전부터.
  • 데이터는 14일간 보존되며, 요청한 범위가 14일 보존 창을 벗어나면 오류를 반환해요.

반환 컬럼 — (_ALL은 결과 집합의 첫 두 컬럼으로 추가 컬럼을 가져요.)

Column Name Data Type Description
GROUP_NAME TEXT 이 행에 해당하는 보조 복제·페일오버 그룹. _ALL에만 해당
GROUP_TYPE TEXT 페일오버 그룹인지 복제 그룹인지. FAILOVER 또는 REPLICATION. _ALL에만 해당
PHASE_NAME TEXT 복제 작업의 현재 단계
START_TIME TIMESTAMP_LTZ 복제 작업 시작 시각
END_TIME TIMESTAMP_LTZ 복제 작업 종료 시각. 진행 중이면 NULL
JOB_UUID TEXT 리프레시 작업의 쿼리 ID
TOTAL_BYTES VARIANT 리프레시된 데이터베이스에 대한 상세 정보 JSON(복제 예상 바이트·업로드/다운로드 바이트 등)
OBJECT_COUNT VARIANT 리프레시된 객체에 대한 상세 정보 JSON(총/완료 객체 수, 객체 유형별 수)
COMMITTED_OBJECT_COUNT VARIANT SECONDARY_COMMITTING 단계에서 처리된 테이블 수
PRIMARY_SNAPSHOT_TIMESTAMP TIMESTAMP_LTZ 기본 스냅샷 생성 시각
ERROR VARIANT 성공 시 NULL. 실패 시 오류 코드·메시지를 담은 JSON

사용 메모

  • DATE_RANGE_START/DATE_RANGE_END를 주지 않으면 최근 12시간 데이터를 반환해요. 더 오래된 데이터는 범위를 명시해야 하며 최대 14일 사용 가능.
  • 복제·페일오버 그룹에 어떤 권한이라도 가진 역할에 대해서만 행을 반환해요.
  • 현재 계정의 보조 복제·페일오버 그룹에 대해서만 행을 반환해요.
  • Information Schema 테이블 함수 호출 시 세션에 INFORMATION_SCHEMA 스키마가 사용 중이거나 함수 이름이 정규화되어야 해요.

복제 단계는 순서대로: 1) SECONDARY_SYNCHRONIZING_MEMBERSHIP, 2) SECONDARY_UPLOADING_INVENTORY, 3) PRIMARY_UPLOADING_METADATA, 4) PRIMARY_UPLOADING_DATA, 5) SECONDARY_DOWNLOADING_METADATA, 6) SECONDARY_DOWNLOADING_DATA, 7) SECONDARY_COMMITTING, 8) COMPLETED / FAILED / CANCELED.

예시 — 보조 그룹 myfg의 리프레시 이력 조회:

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY('myfg')
  );

모든 그룹의 최근 7일 이력도 조회할 수 있어요.

SELECT phase_name, start_time, end_time,
       total_bytes, object_count, error
  FROM TABLE(
      INFORMATION_SCHEMA.REPLICATION_GROUP_REFRESH_HISTORY_ALL(
          DATE_RANGE_START => DATEADD(D, -7, CURRENT_DATE),
          DATE_RANGE_END => CURRENT_DATE)
  );

더 알아보기 (Learn more)