差分データベースバックアップ(SQL Server)を作成する

適用対象:SQL Server

この記事では、SQL Server Management Studio、Transact-SQL、またはPowerShellを使ってSQL Serverで差分データベースバックアップを作成する方法を説明します。

バックアップの概念やタスクの概要については、「バックアップ概要(SQL Server)」をご覧ください。

前提条件

差分データベースバックアップは、事前の完全なデータベースバックアップが必要です。 もしデータベースにバックアップがなければ、まず完全なデータベースバックアップを取りましょう。 詳細については、「 データベースの完全バックアップの作成」を参照してください。

推奨事項

差分バックアップは時間とともにサイズが大きくなるため、差分バックアップを復元するとデータベースの復元時間が大幅に延長されます。 決まった間隔で新しいフルバックアップを取り、新しい差動ベースを確立しましょう。

例えば、週に一度の完全なデータベースバックアップを取り、その後週に毎日差分バックアップを行うことができます。

Limitations

明示的・暗黙的な取引において BACKUP 文を使うことはできません。

Permissions

BACKUP DATABASE BACKUP LOG権限はシステム管理者固定サーバーロールのメンバーにデフォルトで割り当てられ、db_ownerおよびdb_backupoperator固定データベースロールのメンバーに割り当てられます。

SQL Serverサービスアカウントはバックアップデバイスの物理ファイルに対して読み書き権限を持つ必要があります。 そのファイルの所有権や権限の問題はバックアップや復元操作を妨げ、バックアップや復元操作が実行された場合にのみ表示されます。

例えば、システムテーブルにバックアップデバイスエントリを追加する sp_addumpdevice システムのストアドプロシージャは、ファイルアクセスを検証 しません

SQL Server Management Studio を使用します。

  1. オブジェクト エクスプローラーでデータベース エンジンに接続し、サーバーツリーを展開します。

  2. データベースを展開し、ユーザーデータベースを選択してください。 または 「システムデータベース」 を展開してシステムデータベースを選択します。

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

  4. データベースのドロップダウンリストでデータベース名を確認してください。 オプションで、別のデータベースを選択することもできます。

    差分バックアップは、フル、バルクログ、シンプルなど、どの リカバリーモデル でも実行可能です。

  5. 「バックアップタイプ」ドロップダウンリストで「差分」を選択してください。

    重要

    差分を選択する場合は、コピーのみバックアップチェック ボックスがオフになっていることを確認してください。 コピーのみのフルバックアップでは差分バックアップを作成することはできません。 詳細については、「 コピーのみのバックアップ」を参照してください。

  6. バックアップコンポーネントでは「データベース」を選択してください。

  7. 名前のテキストボックスで、デフォルトのバックアップセット名を受け入れるか、新しいものを入力してください。

  8. オプションで、 説明 のテキストボックスに説明を入力してください。

  9. バックアップセットの期限切れを指定する:

    • バックアップセットを特定の日数で有効期限にするには、「 After 」(デフォルト)を選択し、日数を入力します。 値は 0 から 99999まで幅があります。 0の値はバックアップセットが期限切れしないことを意味します。

      デフォルト値はサーバープロパティダイアログボックスのデータベース設定ページの「デフォルトバックアップメディア保持(日単位)」オプションで設定されています。 開くには、オブジェクト エクスプローラーでサーバー名を右クリックし、「プロパティ」を選択し、「データベース設定」ページを選択します。

    • バックアップセットを特定の日付で有効期限にするには、「 On」を選択し、その日付を入力します。

  10. バックアップ先は ディスク または URLを選択します。 1つのメディアセットに対して最大64台のディスクドライブを追加するには、「 追加」を選択してください。 選択したパスは「 バックアップ」 ドロップダウンリストに表示されます。

    バックアップ先を削除するには、バックアップ先を選択して [削除] を選択します。 バックアップ先の内容を表示するには、バックアップ先を選択して [内容] を選択します。

    URLへのバックアップについての詳細は、「SQL Server backup to URL for Azure Blob Storage」をご覧ください。

  11. 詳細設定オプションを表示または選択するには、 [ページの選択] ペインの [オプション] を選択します。

  12. メディアのオーバーライトでは、以下のいずれかのオプションを選択してください:

    • [既存のメディア セットにバックアップする]

      既存のバックアップセットに追加するか、すべての既存のバックアップセットを上書きするかを選択します。 オプションで「 メディアセット名およびバックアップセット有効期限チェック 」のチェックボックスを選択し、 メディアセット名 のテキストボックスに名前を入力できます。

      名前を指定しなければ、SQL Serverは空名でメディアセットを作成します。 名前を指定すると、SQL Serverがメディアをチェックして名前が一致していることを確認します。

      メディア名を空欄のままにしてチェックボックスを選択すると、メディア名も空欄でなければチェックは成功しません。

    • [新しいメディア セットにバックアップし、すべての既存のバックアップ セットを消去する]

      新メディアセットの名前テキストボックスに名前を入力してください。 オプションとして、 新しいメディアセットの説明 ボックスでメディアセットを記述してください。

  13. 信頼性セクションでは、オプションで以下を選択してください:

  14. SQL Server では、 バックアップの圧縮がサポートされています。 デフォルトでは、SQL Serverはbackup-compression defaultサーバーの設定オプションに基づいてバックアップを圧縮します。 サーバーレベルのデフォルトに関わらず、バックアップを圧縮するには「 バックアップを圧縮 」を選択し、「圧縮 防止 」を選択して圧縮を防止します。

    現在のバックアップ圧縮の既定値を表示するには、「 サーバーの構成: バックアップ圧縮の既定値」を参照してください。 バックアップ圧縮の詳細については、「バックアップ圧縮(SQL Server)」を参照してください。

注釈

  • 代わりにメンテナンスプランウィザードを使って差分データベースバックアップを作成できます。

  • トランザクションログのセクションオプションは、トランザクションログをバックアップしていない限り非アクティブです。 このオプションは「一般」ページのバックアップタイプセクションで指定してください。

Transact-SQL を使用する

差分データベースバックアップを作成するために BACKUP DATABASE 文を実行します。 指定:

  • バックアップするデータベースの名前。

  • データベースの完全バックアップを書き込むバックアップ デバイス。

  • 前回の完全なデータベースバックアップ後に変更された部分のみをバックアップする DIFFERENTIAL 条項です。

次の構文を使用してください。

BACKUP DATABASE database_nameTO<backup_device>WITH DIFFERENTIAL

例 (Transact-SQL)

この記事のコード サンプルでは、AdventureWorks2025 または AdventureWorksDW2025 サンプル データベースを使用します。このサンプル データベースは、Microsoft SQL Server サンプルとコミュニティ プロジェクト ホーム ページからダウンロードできます。

-- Create a full database backup first.
BACKUP DATABASE AdventureWorks2025
    TO AdventureWorks2025_1
    WITH INIT;
GO

-- Time elapses.
-- Create a differential database backup, appending the backup
-- to the backup device containing the full database backup.
BACKUP DATABASE AdventureWorks2025
    TO AdventureWorks2025_1
    WITH DIFFERENTIAL;
GO

注釈

テープへのバックアップに関する情報については、「完全なデータベースバックアップを作成する」のBACKUPテープオプションおよびテープデバイスへのバックアップ例を参照してください。

TAPE オプションは、今後のバージョンのSQL Serverで削除される予定です。 新しい開発作業ではこの機能を使用しないでください。現在この機能を使用しているアプリケーションを変更することを計画してください。

PowerShell の使用

Backup-SqlDatabase コマンドレットを使用します。 差分データベースバックアップを指定するには、 -Incremental パラメータと -BackupAction Databaseを組み合わせて使用してください。

この例には SqlServer モジュールが必要です。 詳細については、「 SQL Server PowerShell プロバイダー」を参照してください。

例 (PowerShell)

以下の例は、 AdventureWorks2025 データベースの差分データベースバックアップをサーバーインスタンスのデフォルトバックアップ場所に Computer\Instance作成します。 完全なデータベースバックアップがすでに存在している必要があります。

完全な構文例については、 Backup-SqlDatabase に関するページを参照してください。

$credential = Get-Credential

Backup-SqlDatabase -ServerInstance Computer[\Instance] -Database AdventureWorks2025 -BackupAction Database -Incremental -Credential $credential