UNDROP SNAPSHOT

UNDROP SNAPSHOT

이전에 제거된 블록 스토리지 볼륨 스냅샷을 복원하는 명령이에요.

출처: 문서

본문

기능 — 일반 사용 가능(Generally Available): Snowpark Container Services는 일부 예외를 제외하고 AWS, Microsoft Azure, Google Cloud Platform 상용 리전의 계정에서 사용할 수 있어요. 자세한 내용은 사용 가능한 리전 및 고려 사항을 참고해요.

참고: 이 작업은 현재 Snowflake 지원 정책 및 서비스 수준 계약에 명시된 서비스 수준에 포함되지 않아요.

이전에 제거된 블록 스토리지 볼륨의 스냅샷을 복원해요. Snowflake가 스냅샷을 복원한 후 데이터를 사용할 수 있게 돼요.

구문

UNDROP SNAPSHOT { <name> | IDENTIFIER( <id> ) }
 [ RENAME TO <new_snapshot_name> ];

매개변수

  • name: 복원할 스냅샷의 이름을 지정해요. 스냅샷 이름을 지정하면 명령은 그 이름을 가진 가장 최근에 드롭된 스냅샷을 복원해요. 식별자에 공백이나 특수 문자가 포함되면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶은 식별자는 대소문자를 구분해요. 자세한 내용은 식별자 요건(Identifier requirements)을 참고해요.
  • IDENTIFIER( id ): 복원할 스냅샷의 시스템 생성 식별자를 지정해요. 같은 이름의 드롭된 스냅샷이 여러 개 있으면 BLOCK_STORAGE_SNAPSHOTS 뷰를 쿼리해 복원하려는 드롭된 스냅샷의 시스템 생성 식별자를 얻을 수 있어요. 그런 다음 IDENTIFIER 키워드로 이 스냅샷을 복원한다고 지정해요. 복원된 스냅샷은 원래 이름을 유지해요. 시스템 생성 식별자로 스냅샷을 복원하는 예제는 예제를 참고해요. 노트북, 테이블, 블록 스토리지 스냅샷, 스키마, 데이터베이스에 대한 UNDROP 명령을 실행할 때만 시스템 생성 식별자를 IDENTIFIER() 키워드와 함께 사용할 수 있어요.
  • RENAME TO new_snapshot_name: 스냅샷이 복원된 후의 이름을 지정해요. 이를 통해 스냅샷을 다른 이름으로 복원할 수 있어요.

액세스 제어 요구 사항

이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 가져야 해요:

권한 객체 참고
OWNERSHIP Snapshot OWNERSHIP은 객체 생성 역할에 자동으로 부여되는 특별한 권한이에요. 소유 역할(또는 MANAGE GRANTS 권한이 있는 역할)이 GRANT OWNERSHIP 명령으로 다른 역할에 이전할 수도 있어요.

스키마의 객체를 운영하려면 상위 데이터베이스에 대한 권한이 하나 이상, 상위 스키마에 대한 권한이 하나 이상 필요해요. 지정된 권한 집합으로 사용자 정의 역할을 만드는 방법은 사용자 정의 역할 만들기(Creating custom roles)를 참고해요. 보안 객체에 대한 SQL 작업 수행을 위한 역할·권한 부여에 대한 일반 정보는 액세스 제어 개요(Overview of Access Control)를 참고해요.

사용 메모

  • 스냅샷은 삭제 시점에 스냅샷이 위치했던 데이터베이스와 스키마에만 복원할 수 있어요. 예를 들어 스키마 s1에서 스냅샷을 만들고 드롭한 후, 세션의 현재 스키마를 s2로 변경하고 스냅샷을 언드롭하려 하면, 스냅샷은 현재 스키마 s2가 아니라 스키마 s1에 복원돼요.
  • 같은 이름의 스냅샷이 이미 존재하면 UNDROP SNAPSHOT은 오류를 반환해요. 이 경우 RENAME TO 매개변수를 사용해 다른 이름을 지정할 수 있어요.
  • UNDROP SNAPSHOT은 Snowflake Time Travel 기능에 의존해요. 객체는 데이터 보존 기간 안에 삭제된 경우에만 복원할 수 있어요. 기본 보존 기간은 24시간이에요. 데이터 보존 기간이 지나면 스냅샷을 복원할 수 없어요.

예제

이름을 사용한 스냅샷 복원

다음 예제는 이전에 드롭된 example_snapshot이라는 스냅샷을 복원해요:

UNDROP SNAPSHOT example_snapshot;
+--------------------------------------------------+
| status                                           |
|--------------------------------------------------|
| Snapshot EXAMPLE_SNAPSHOT successfully restored. |
+--------------------------------------------------+

ID를 사용한 스냅샷 복원

IDENTIFIER()를 사용해 ID로 드롭된 스냅샷을 복원해요. 복원할 특정 스냅샷의 스냅샷 ID는 BLOCK_STORAGE_SNAPSHOTS 뷰의 snapshot_id 컬럼을 사용해 찾을 수 있어요. 예를 들어 MY_SNAPSHOT이라는 드롭된 스냅샷이 여러 개 있고, 두 번째로 마지막에 드롭된 스냅샷 MY_SNAPSHOT을 복원하려면 다음 단계를 따르세요:

Account Usage BLOCK_STORAGE_SNAPSHOTS 뷰에서 드롭된 스냅샷의 스냅샷 ID를 찾아요:

SELECT snapshot_id,
 snapshot_name,
 database_name,
 schema_name,
 created_on,
 deleted_on
  FROM SNOWFLAKE.ACCOUNT_USAGE.BLOCK_STORAGE_SNAPSHOTS
  WHERE database_name = 'TUTORIAL_DB'
 AND schema_name = 'DATA_SCHEMA'
 AND snapshot_name = 'MY_SNAPSHOT'
 AND deleted_on IS NOT NULL
  ORDER BY deleted_on;

예제 출력:

+-------------+---------------+---------------+-------------+-------------------------------+-------------------------------+
| SNAPSHOT_ID | SNAPSHOT_NAME | DATABASE_NAME | SCHEMA_NAME | CREATED_ON                    | DELETED_ON                    |
|-------------+---------------+---------------+-------------+-------------------------------+-------------------------------|
|           1 | MY_SNAPSHOT   | TUTORIAL_DB   | DATA_SCHEMA | 2025-09-06 09:51:47.131 -0700 | 2025-09-15 14:21:49.683 -0700 |
+-------------+---------------+---------------+-------------+-------------------------------+-------------------------------+

스냅샷 ID로 MY_SNAPSHOT을 언드롭해요. 두 번째로 마지막에 삭제된 스냅샷을 복원하려면 이전 문 출력의 스냅샷 ID 1을 사용해요. 다음 문을 실행하면 스냅샷이 원래 이름 MY_SNAPSHOT으로 복원돼요:

UNDROP SNAPSHOT IDENTIFIER(1);

더 알아보기 (Learn more)