UNDROP SNAPSHOT¶
참고
이 작업은 현재 Snowflake의 지원 정책 및 서비스 수준 계약 에 명시된 서비스 수준에 포함되지 않습니다.
이전에 제거된 :doc:`블록 저장소 볼륨의 스냅샷</developer-guide/snowpark-container-services/block-storage-volume>`을 복원합니다. Snowflake가 스냅샷을 복원한 후 데이터를 사용할 수 있습니다.
- 참고 항목:
구문¶
UNDROP SNAPSHOT { <name> | IDENTIFIER( <id> ) }
[ RENAME TO <new_snapshot_name> ];
매개 변수¶
name복원할 스냅샷의 이름을 지정합니다. 스냅샷 이름을 지정하면 명령은 해당 이름으로 가장 최근에 삭제된 스냅샷을 복원합니다.
식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
IDENTIFIER( id )복원할 스냅샷의 시스템 생성 식별자를 지정합니다.
이름이 같은 스냅샷을 여러 개 삭제한 경우 :doc:`/sql-reference/account-usage/block_storage_snapshots`를 쿼리하여 복원하려는 삭제된 스냅샷의 시스템 생성 식별자를 가져옵니다. 그런 다음, :doc:`IDENTIFIER 키워드</sql-reference/identifier-literal>`를 사용하여 이 스냅샷을 복원하도록 지정합니다. 복원된 스냅샷은 원래 이름을 유지합니다.
시스템 생성 식별자로 스냅샷을 복원하는 예제에 대해서는 예 섹션을 참조하세요.
참고
노트북, 테이블, 블록 저장소 스냅샷, 스키마, 데이터베이스에 대해 UNDROP 명령을 실행할 때 IDENTIFIER() 키워드와 함께 시스템에서 생성된 식별자만 사용할 수 있습니다.
RENAME TO new_snapshot_name스냅샷이 복원된 후 스냅샷의 이름을 지정합니다. 이를 통해 스냅샷을 다른 이름으로 복원할 수 있습니다.
액세스 제어 요구 사항¶
이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
|---|---|---|
OWNERSHIP |
스냅샷 |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
스키마의 모든 오브젝트에 대해 작업을 수행하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한. 스키마에 대한 특정 권한을 부여받은 역할은 해당 스키마를 확인할 수 있습니다. 예를 들어, 스키마에 대해 CREATE 권한을 부여받은 역할은 해당 스키마에 대한 USAGE 권한을 함께 부여받지 않더라도 해당 스키마에 대한 오브젝트를 생성할 수 있습니다.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
스냅샷은 삭제 시점에 스냅샷이 있던 데이터베이스와 스키마로만 복원될 수 있습니다. 예를 들어, 스키마 ``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()</sql-reference/identifier-literal>`를 사용하여 ID로 삭제된 스냅샷을 복원합니다. :doc:/sql-reference/account-usage/block_storage_snapshots` 뷰에서 snapshot_id 열을 사용하여 복원할 특정 스냅샷의 스냅샷 ID를 찾을 수 있습니다. 예를 들어, 이름이 ``MY_SNAPSHOT``인 삭제된 스키마가 여러 개 있고 마지막에서 두 번째로 삭제된 스냅샷 ``MY_SNAPSHOT``을 복원하려는 경우 다음 단계를 따르세요.
Account Usage LOCK_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);