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-022026-06-03이 끝나지 않았을 때 — 2026-06-01커밋되지 않고 테이블은 이 명령에서 복원된 데이터가 없는 상태로 남아요. 복사 단계가 완료되고 부착 단계가 시작되면 파트가 하나씩 커밋되므로, 부착 중 실패는 롤백 없이 테이블을 부분적으로 복원된 상태로 남길 수 있어요. 파티션을 독립적으로 커밋하려면(완료된 파티션이 이후 실패에서 살아남고 별도로 재시도될 수 있도록), 첫 번째 이후에 SETTINGS allow_non_empty_tables = true를 사용해 파티션별로 별도의 RESTORE를 실행해요.

Columns (열)

더 알아보기 (Learn more)