バックアップの有効期限の設定 (SQL Server)

適用対象 SQL Server

この記事では、SQL Server Management Studio または Transact-SQL を使用して、SQL Server でバックアップの有効期限を設定する方法について示します。

1 つのファイルに複数のデータベース バックアップを追加する場合は、有効期限を使用することで、設定した日付を過ぎていないバックアップが上書きされるのを防止できます。 詳細については、「メディア セットのオプション」を参照してください。

アクセス許可

BACKUP DATABASE および BACKUP LOG アクセス許可は、既定では、sysadmin 固定サーバー ロール、db_owner 固定データベース ロール、および db_backupoperator 固定データベース ロールのメンバーに与えられます。

バックアップ デバイスの物理ファイルに対する所有と許可の問題によって、バックアップ操作が妨げられることがあります。 SQL Server では、デバイスに対して読み書きを実行できる必要があります。 SQL Server サービスが実行されているアカウントには書き込み権限が必要です。 ただし、システム テーブルにバックアップ デバイスのエントリを追加する sp_addumpdevice では、ファイルのアクセス許可がチェックされません。 バックアップ デバイスの物理ファイルに関するこのような問題は、バックアップや復元が試行され、物理リソースがアクセスされるまで、表面化しない可能性があります。

SQL Server Management Studio を使用します。

  1. オブジェクト エクスプローラーで SQL Server データベース エンジンの適切なインスタンスに接続した後、サーバー名を選択してサーバー ツリーを展開します。

  2. [データベース]を展開します。さらに、そのデータベースに応じて、ユーザー データベースを選択するか、または [システム データベース] を展開してシステム データベースを選択します。

  3. データベースを右クリックし、[タスク]をポイントして、[バックアップ]を選択します。 [データベースのバックアップ] ダイアログ ボックスが表示されます。

  4. [全般] ページの [バックアップ セットの有効期限]で、バックアップ セットを別のバックアップで上書きできる期日を示す有効期限を指定します。

    • バックアップ セットが指定の日数後に期限切れになるようにするには、 [期間指定] (既定のオプション) を選択し、セットを作成してからセットが期限切れになるまでの日数を入力します。 0 ~ 99,999 日の値を指定できます。0 日を指定すると、バックアップ セットの有効期限は無期限になります。

      既定値は、 [サーバーのプロパティ] ダイアログ ボックス ( [データベースの設定] ページ) の[バックアップ メディアの既定の保有期間 (日)] オプションで設定されています。 このオプションを表示するには、オブジェクト エクスプローラーでサーバー名を右クリックし、プロパティを選択してから [データベースの設定] ページを選択します。

    • バックアップ セットが特定の日付に期限切れになるようにするには、[日時指定]を選択し、セットの有効期限が切れる日付を入力します。

Transact-SQL の使用

  1. データベース エンジンに接続します。

  2. 標準バーから、 [新しいクエリ] を選択します。

  3. BACKUP (Transact-SQL) ステートメントで、SQL Server データベース エンジンがいつバックアップを上書きできるようになるかを決定する EXPIREDATE または RETAINDAYS オプションを指定します。 どちらのオプションも指定しない場合、失効日は media retention (メディア保持期間) のサーバー設定によって決まります。 この例では、EXPIREDATE オプションを使用して、2024 年 6 月 1 日 (20240601) を有効期限に指定します。

    USE AdventureWorks2022;
    GO
    
    BACKUP DATABASE AdventureWorks2022
    TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
    WITH EXPIREDATE = '20240601';
    GO