REPLICATION_GROUP_REFRESH_HISTORY, REPLICATION_GROUP_REFRESH_HISTORY_ALL
REPLICATION_GROUP_REFRESH_HISTORY, REPLICATION_GROUP_REFRESH_HISTORY_ALL
하나의 보조 복제·페일오버 그룹 또는 모든 그룹의 복제 이력을 조회하는 테이블 함수 제품군이에요. 복제·페일오버 작업을 모니터링할 때 씁니다.
본문
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)
);