backups 시스템 테이블
backups 시스템 테이블
backups 시스템 테이블은 모든 BACKUP 또는 RESTORE 작업의 목록을 현재 상태와 기타 속성과 함께 담고 있어요. 이 테이블은 영속적이지 않으며 마지막 서버 재시작 이후에 실행된 작업만 보여준다는 점에 유의해요.
출처: 문서
본문
Description (설명)
모든 BACKUP 또는 RESTORE 작업의 목록을 현재 상태와 기타 속성과 함께 담고 있어요. 이 테이블은 영속적이지 않으며 마지막 서버 재시작 이후에 실행된 작업만 보여준다는 점에 유의해요.
Restore atomicity (복원 원자성)
RESTORE는 트랜잭션이 아니며 실패 시 롤백하지 않아요. 각 테이블에 대해 선택된 모든 파트가 하나라도 부착되기 전에 먼저 복사되지만, 부착 단계 자체는 트랜잭션이 아니에요 — 파트는 하나씩 보이게 돼요. 테이블은 독립적으로 처리돼요. 테이블은 독립적이에요. 복원이 완료된 테이블은 같은 명령의 다른 테이블이 나중에 실패해도 그 자리에 남아 있어요:
RESTORE TABLE db.t0, TABLE db.t1
FROM S3('<endpoint>', '<access_key>', '<secret_key>')
SETTINGS
allow_non_empty_tables = true;
이 명령이 db.t0이 완전히 복원된 후 db.t1이 끝나기 전에 실패하면 db.t0은 복원된 상태로 남아요. PARTITIONS 절은 커밋 경계가 아니에요. 그것은 테이블의 어떤 파트가 복원될지만 선택해요:
RESTORE TABLE db.t0 PARTITIONS '2026-06-01', '2026-06-02', '2026-06-03'
FROM S3('<endpoint>', '<access_key>', '<secret_key>')
SETTINGS
allow_non_empty_tables = true;
테이블의 선택된 모든 파트가 먼저 복사되고 그중 하나라도 준비된 후에만 부착돼요. 그래서 이 명령이 복사 단계에서 실패하면 — 예를 들어 파티션 2026-06-01이 완전히 복사되었지만 2026-06-02와 2026-06-03이 끝나지 않았을 때 — 2026-06-01은 커밋되지 않고 테이블은 이 명령에서 복원된 데이터가 없는 상태로 남아요. 복사 단계가 완료되고 부착 단계가 시작되면 파트가 하나씩 커밋되므로, 부착 중 실패는 롤백 없이 테이블을 부분적으로 복원된 상태로 남길 수 있어요. 파티션을 독립적으로 커밋하려면(완료된 파티션이 이후 실패에서 살아남고 별도로 재시도될 수 있도록), 첫 번째 이후에 SETTINGS allow_non_empty_tables = true를 사용해 파티션별로 별도의 RESTORE를 실행해요.
Columns (열)
id(String) — 작업 ID. SETTINGS id=...로 전달하거나 무작위 생성 UUID일 수 있어요.name(String) —Disk('backups', 'my_backup')같은 문자열인 작업 이름.base_backup_name(String) —Disk('backups', 'my_base_backup')같은 문자열인 기본 백업 작업 이름.query_id(String) — 백업을 시작한 쿼리의 Query ID.status(Enum8(‘CREATING_BACKUP’ = 0, ‘BACKUP_CREATED’ = 1, ‘BACKUP_FAILED’ = 2, ‘RESTORING’ = 3, ‘RESTORED’ = 4, ‘RESTORE_FAILED’ = 5, ‘BACKUP_CANCELLED’ = 6, ‘RESTORE_CANCELLED’ = 7)) — 백업 또는 복원 작업의 상태.error(String) — 오류 메시지(있는 경우).start_time(DateTime64(6)) — 작업이 시작된 시간.end_time(DateTime64(6)) — 작업이 끝난 시간.num_files(UInt64) — 백업에 저장된 파일 수.total_size(UInt64) — 백업에 저장된 파일의 총 크기.num_entries(UInt64) — 백업의 항목 수, 즉 백업이 폴더로 저장된 경우 폴더 안의 파일 수.uncompressed_size(UInt64) — 백업의 압축 해제된 크기.compressed_size(UInt64) — 백업의 압축된 크기.files_read(UInt64) — 이 백업에서 RESTORE 중 읽은 파일 수를 반환해요.bytes_read(UInt64) — 이 백업에서 RESTORE 중 읽은 파일의 총 크기를 반환해요.ProfileEvents(Map(LowCardinality(String), UInt64)) — 이 작업 중 캡처된 모든 프로필 이벤트.settings(Map(LowCardinality(String), String)) — 이 작업에 실제로 사용된 백업/복원별 설정(SETTINGS절에서, 기본값 포함). 민감한 설정은 노출되지 않아요.engine_settings(Map(LowCardinality(String), String)) — 백업 엔진의 리더/라이터가 실제로 사용한 설정(예: S3allow_native_copy). 작업이 평면 맵으로 표현할 수 없는 둘 이상의 엔진을 포함할 때 비어 있어요: 증분 백업 및 복원, 경량 스냅샷 복원, 비-내부ON CLUSTER작업.