CREATE BACKUP POLICY

バックアップ ポリシーを作成します。ポリシーを1つ以上のバックアップセットに関連付けます。ポリシーの設定は、ポリシーを使用する各バックアップセットのスケジュールと有効期間を定義します。

スケジュールでは、Snowflakeが自動的にバックアップを作成し、結果のバックアップをポリシーが管理するバックアップセットに追加する頻度を決定します。有効期間は、関連付けされたバックアップセットからSnowflakeが自動的にバックアップを削除するまでの各バックアップの保持期間を決定します。

Tip

バックアップポリシーは、バックアップセットのオプションです。スケジュールされたバックアップ、保持ロック、または有効期間が不要な場合は、バックアップポリシーなしでバックアップセットを作成できます。ALTER BACKUP SET を使用して、後で既存のバックアップセットにバックアップポリシーを適用することも、バックアップポリシーで指定されているスケジュールされたバックアップを一時停止して再開することもできます。

こちらもご参照ください。

ALTER BACKUP POLICYDROP BACKUP POLICYSHOW BACKUP POLICIESCREATE BACKUP SET ALTER BACKUP SET

構文

CREATE [ OR REPLACE ] BACKUP POLICY [ IF NOT EXISTS ] <name>
   [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
   [ WITH RETENTION LOCK ]
   [ SCHEDULE = '{ <num> MINUTE | <num> HOUR | USING CRON <expr> <time_zone> }' ]
   [ EXPIRE_AFTER_DAYS = <days_integer> ]
   [ COMMENT = <string> ]
Copy

必須パラメーター

name

バックアップポリシーの識別子。アカウントに対して一意である必要があります。

また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

オプションのパラメーター

OR REPLACE

この名前のバックアップポリシーが既に存在する場合は、削除して新しいものを作成します。この句は IF NOT EXISTS と相互に排他的です。

IF NOT EXISTS

同じ名前のバックアップポリシーがない場合にのみ、バックアップポリシーを作成します。バックアップポリシーが既に存在する場合、コマンドは影響がなくても成功メッセージを返します。この句は OR REPLACE と相互に排他的です。

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

タグ の名前とタグ文字列の値を指定します。

タグ値は常に文字列であり、タグ値の最大文字数は256です。

ステートメントでのタグの指定に関する情報については、 Tag quotas をご参照ください。

WITH RETENTION LOCK

バックアップの必須保持期間を指定します。保持ロック付きのバックアップは、権限を持つユーザーであっても削除できません。詳細については、 保持ロック付きのバックアップの制限 をご参照ください。

注釈

APPLY BACKUP RETENTION LOCK 権限を持つユーザーのみが保持ロック付きのバックアップポリシーを作成できます。

重要

保持ロック付きのバックアップポリシーをバックアップセットに適用すると、 元に戻せません 。規制コンプライアンスに必要な強力な保証により、バックアップセットに保持ロックを設定すると、ロックを取り消すことはできません。Snowflakeサポートもそのような保持ロックを取り消すことはできません。削除できないバックアップセットとそれを含むスキーマとデータベースの予期しないストレージ料金を回避するために、長い有効期間のバックアップセットに保持ロックを設定する前には慎重に計画してください。

Snowflake組織が削除された場合、その組織はSnowflakeカスタマーではなくなります。この場合、Snowflakeは保持ロック付きのバックアップを含むすべてのバックアップを削除します。Snowflake組織を削除するには、Snowflakeサポートの関与が必要です。これは、管理者が誤って実行できるものではありません。

SCHEDULE = '{ num MINUTE | num HOUR | USING CRON expr time_zone }'

オブジェクトのバックアップを作成するためのスケジュールを指定します。

注釈

バックアップの最短スケジュールは60分、つまり1時間である必要があります。

各バックアップポリシーには、スケジュールと有効期限プロパティのどちらかまたは両方が必要です。詳細については、 バックアップポリシー をご参照ください。

  • USING CRON expr time_zone

    オブジェクトのバックアップが作成された時点のcron式とタイムゾーンを指定します。標準のcronユーティリティ構文のサブセットをサポートします。

    タイムゾーンのリストについては、 tzデータベースタイムゾーンのリスト (Wikipedia)をご参照ください。

    cron式は、次のフィールドで構成されます。

    # __________ minute (0-59)
    # | ________ hour (0-23)
    # | | ______ day of month (1-31, or L)
    # | | | ____ month (1-12, JAN-DEC)
    # | | | | __ day of week (0-6, SUN-SAT, or L)
    # | | | | |
    # | | | | |
      * * * * *
    

    次の特殊文字がサポートされています。

    *

    ワイルドカード。フィールドのオカレンスを指定します。

    L

    「最後」の略。曜日フィールドで使用すると、特定の月の「最後の金曜日」(「5L」)などの構造を指定できます。月の日フィールドでは、月の最後の日を指定します。

    /n

    特定の時間単位の nth インスタンスを示します。時間の各クォンタムは独立して計算されます。たとえば、月フィールドに 4/3 が指定されている場合、バックアップは4月、7月、および10月(つまり、1年の中で4番目の月から始まり、3か月ごと)にスケジュールされます。その後も同じスケジュールが維持されます。つまり、バックアップは1月(10月の実行から3か月後)に実行されるようにスケジュールされては いません

    注釈

    • cron式は現在、指定されたタイムゾーンに対してのみ評価します。アカウントの TIMEZONE パラメーター値を変更(またはユーザーレベルまたはセッションレベルで値を設定)しても、バックアップのタイムゾーンは変更 されません

    • cron式は、バックアップのすべての 有効 実行時間を定義します。Snowflakeはこのスケジュールに基づいてバックアップの作成を試みますが、次の有効な実行時間が始まる前に前の実行が完了していない場合、有効な実行時間はスキップされます。

    • cron式に特定の日付と曜日の両方が含まれている場合、バックアップは日付または曜日の いずれか を満たす日にスケジュールされます。たとえば、 SCHEDULE = 'USING CRON 0 0 10-20 * TUE,THU UTC' は、日付が10日から20日、およびそれらの日付以外の火曜日または木曜日の 0AM(真夜中)にバックアップをスケジュールします。

  • num MINUTE または num MINUTES

    バックアップ間の待機時間の間隔(分単位)を指定します。正の整数のみを受け入れます。

    num M 構文もサポートしています。

  • num HOUR または num HOURS

    バックアップ間の待機時間の間隔(時間単位)を指定します。正の整数のみを受け入れます。

    num H 構文もサポートしています。

あいまいさを避けるために、次の状況では 基本間隔時間 が設定されます。

  • オブジェクトの作成時(CREATE BACKUPSET...WITHBACKUPPOLICYを使用)。

  • 異なる間隔が設定されている場合( ALTERBACKUP SET ... APPLY BACKUP POLICYまたは ALTERBACKUPPOLICYSETSCHEDULE を使用)。

基本間隔時間は、現在のクロックタイムから間隔カウンターを開始します。たとえば、INTERVAL の値に 10 MINUTES が設定され、スケジュールされたバックアップが9:03 AM で有効になっている場合、次のバックアップは9:13 AM、9:23 AM というように作成されます。絶対精度を確保するために最善を尽くしますが、保証されるのは、設定間隔が経過する 前に バックアップが実行されないようにすることのみです(つまり、現在の例では、バックアップは最初に9:14 AM に実行されることはあっても、9:12 AM に実行されることは決してありません)。

EXPIRE_AFTER_DAYS = days_integer

バックアップが期限切れになるまでの日数を指定します。Snowflakeは、期限切れのバックアップを自動的に削除します。このパラメーターが指定されない場合、バックアップはバックアップセットから手動で削除されるまで、セットに残ります。

  • 最小値:1

  • 最大値: SCHEDULE 句を指定しない場合は、 ``3653``(約10年)。

注釈

各バックアップポリシーには、スケジュールと有効期限プロパティのどちらかまたは両方が必要です。詳細については、 バックアップポリシー をご参照ください。

COMMENT = 'string_literal'

バックアップポリシーのコメントを指定します。

デフォルト: 値なし

アクセス制御の要件

この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。

権限

メモ

CREATE BACKUP POLICY

バックアップポリシーの作成に使用されるロールは、ポリシーが作成されるスキーマに対してこの権限を持っている必要があります。

APPLY BACKUP RETENTION LOCK

アカウントでこの権限を持つユーザーのみが、保持ロック付きのバックアップポリシーを作成できます。

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

使用上の注意

  • Time TravelおよびFailsafe 保持はバックアップには適用されません。バックアップは、期限切れになると復元できません。

  • メタデータについて:

    注意

    Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。

重要

バックアップポリシーに保持ロックが適用されており、バックアップセットに有効期限が切れていないバックアップがある場合は、バックアップセットを削除できません。その場合は、セット内のすべてのバックアップの有効期限が切れるのを待つ必要があります。この制限は、 ACCOUNTADMINなどの権限ロールにも適用され、Snowflakeをサポートします。そのため、バックアップポリシーで保持ロックと長期の有効期限を指定する場合は注意してください。

1時間ごとにバックアップを作成し、90日後に期限切れになるバックアップポリシーを作成します。

CREATE BACKUP POLICY hourly_backup_policy
  SCHEDULE = '60 MINUTE'
  EXPIRE_AFTER_DAYS = 90
  COMMENT = 'Hourly backups that expire after 90 days';
Copy

24時間ごとにバックアップを作成し、90日後に期限切れになる保持ロック付きのバックアップポリシーを作成します。このバックアップポリシーを使用して作成されたバックアップは、有効期限が切れる前に変更または削除できません。

CREATE BACKUP POLICY daily_backup_policy_with_lock
  WITH RETENTION LOCK
  SCHEDULE = '1440 MINUTE'
  EXPIRE_AFTER_DAYS = 90
  COMMENT = 'regulatory backups expire after 90 days with retention lock';
Copy

スケジュールにcron式を使用してバックアップポリシーを作成します。次のステートメントは、毎週火曜日と金曜日の 11PM にバックアップを作成するポリシーを作成します。

CREATE BACKUP POLICY twice_weekly_backup_policy
  SCHEDULE = 'USING CRON 0 23 * * 2,5 UTC'
  EXPIRE_AFTER_DAYS = 7
  COMMENT = 'Twice-weekly backups that expire after 7 days';
Copy