UNDROP SNAPSHOT¶
注釈
この操作は現在、 Snowflake’s Support Policy and Service Level Agreement に規定されたService Levelセットの対象外です。
以前に削除された ブロックストレージボリュームのスナップショット を復元します。Snowflakeがスナップショットを復元すると、データを使用できるようになります。
- こちらもご参照ください。
構文¶
UNDROP SNAPSHOT { <name> | IDENTIFIER( <id> ) }
[ RENAME TO <new_snapshot_name> ];
パラメーター¶
name復元するスナップショットの名前を指定します。スナップショット名を指定すると、コマンドはその名前の最新の削除されたスナップショットを復元します。
識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
詳細については、 識別子の要件 をご参照ください。
IDENTIFIER( id )復元するスナップショットのシステム生成識別子を指定します。
同じ名前で複数の削除されたスナップショットがある場合は、 BLOCK_STORAGE_SNAPSHOTS ビュー をクエリして、復元する削除されたスナップショットのシステム生成識別子を取得できます。次に、 IDENTIFIER キーワード を使用して、このスナップショットを復元することを指定します。復元されたスナップショットは元の名前を維持します。
システム生成識別子によるスナップショットの復元例については、 例 をご参照ください。
注釈
ノートブック、テーブル、ブロックストレージスナップショット、スキーマ、およびデータベースに対して 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() を使用して、削除されたスナップショットを ID によって復元します。BLOCK_STORAGE_SNAPSHOTS ビュー ビュー内のsnapshot_id列を使用して、復元する特定のスナップショットのスナップショット ID を見つけることができます。例えば、 MY_SNAPSHOT という名前の複数の削除されたスナップショットがあり、最後から2番目に削除されたスナップショット MY_SNAPSHOT を復元する場合は、以下の手順に従います。
アカウント使用状況 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の削除を解除します。最後から2番目に削除されたスナップショットを復元するには、前のステートメントの出力のスナップショット ID 1を使用します。以下のステートメントを実行すると、スナップショットは元の名前、
MY_SNAPSHOTで復元されます。UNDROP SNAPSHOT IDENTIFIER(1);