ファイルおよびファイル グループのバックアップ (SQL Server)

このトピックでは、SQL Server Management Studio、Transact-SQL、または PowerShell を使用して、SQL Server 2012 でファイルとファイル グループをバックアップする方法について説明します。 データベースのサイズやパフォーマンスの要件によりデータベースの完全バックアップが不可能な場合は、代わりに、ファイル バックアップを作成できます。 ファイル バックアップには、1 つ以上のファイル (またはファイル グループ) 内のすべてのデータが含まれます。 ファイル バックアップの詳細については、「ファイルの完全バックアップ (SQL Server)」および「差分バックアップ (SQL Server)」を参照してください。

このトピックの内容

  • 作業を開始する準備:

    制限事項と制約事項

    推奨事項

    セキュリティ

  • ファイルおよびファイル グループをバックアップする方法:

    SQL Server Management Studio

    Transact-SQL

    PowerShell

作業を開始する準備

制限事項と制約事項

  • BACKUP ステートメントは、明示的または暗黙的なトランザクションでは使用できません。

  • 単純復旧モデルでは、読み取りと書き込みが可能なファイルはすべてまとめてバックアップする必要があります。 これにより、データベースを一貫性のある時点に復元できます。 読み取りと書き込みが可能なファイルまたはファイル グループを個別に指定するのではなく、READ_WRITE_FILEGROUPS オプションを使用します。 このオプションにより、読み取りと書き込みが可能なすべてのファイル グループがデータベースにバックアップされます。 READ_WRITE_FILEGROUPS を指定して作成されるバックアップは、部分バックアップと呼ばれます。 詳細については、「部分バックアップ (SQL Server)」を参照してください。

  • この機能の制限および制約の詳細については、「バックアップの概要 (SQL Server)」を参照してください。

推奨事項

  • 既定では、バックアップ操作が成功するたびに、SQL Server エラー ログおよびシステム イベント ログにエントリが 1 つ追加されます。 ログを頻繁にバックアップすると、これらの成功メッセージがすぐに蓄積され、他のメッセージを探すのが困難になるほどエラー ログが大きくなることがあります。 そのような場合、これらのエントリに依存するスクリプトがなければ、トレース フラグ 3226 を使用することによってこれらのログ エントリを除外できます。 詳細については、「トレース フラグ (Transact-SQL)」を参照してください。

セキュリティ

権限

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. [データベース] ボックスの一覧で、適切なデータベース名が表示されていることを確認します。 必要に応じて、このボックスの一覧から別のデータベースを選択することもできます。

  5. [バックアップの種類] ボックスの一覧の [完全] または [差分] をクリックします。

  6. [バックアップ コンポーネント][ファイルとファイル グループ] をクリックします。

  7. [ファイルおよびファイル グループの選択] ダイアログ ボックスで、バックアップするファイルおよびファイル グループを選択します。 個別のファイルを 1 つ以上選択できるほか、ファイル グループのチェック ボックスをオンにすると自動的にファイル グループ内のすべてのファイルが選択されます。

  8. [名前] ボックスに表示された既定のバックアップ セット名をそのまま使用するか、または別のバックアップ セット名を入力します。

  9. 必要に応じて、[説明] ボックスに、バックアップ セットの説明を入力します。

  10. バックアップ セットの有効期限を指定します。

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

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

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

  11. [ディスク] または [テープ] をクリックして、バックアップ先を選択します。 1 つのメディア セットを含んでいる最大 64 個のディスク ドライブまたはテープ ドライブのパスを選択するには、[追加] をクリックします。 選択したパスは、[バックアップ先] ボックスの一覧に表示されます。

    注意

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

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

  13. 次のいずれかをクリックして、[メディアに上書きします] オプションを選択します。

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

      このオプションでは、[既存のバックアップ セットに追加する] または [既存のすべてのバックアップ セットを上書きする] をクリックします。 既存のメディア セットへのバックアップについては、「メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。

      必要に応じて、[メディア セット名とバックアップ セットの有効期限を確認する] チェック ボックスをオンにします。これにより、バックアップ操作で、メディア セットとバックアップ セットの有効期限が切れる日付と時刻の確認が行われます。

      必要に応じて、[メディア セット名] ボックスに名前を入力します。 名前を指定しなかった場合、空の名前でメディア セットが作成されます。 メディア セット名を指定した場合は、メディア (テープまたはディスク) の実際の名前がここで入力した名前と一致しているかどうかが確認されます。

      メディア名を指定せずに、このチェック ボックスをオンにしてこのメディアを確認するよう指定した場合は、実際のメディア名も空でないとエラーになります。

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

      このオプションでは、[新しいメディア セット名] ボックスに名前を入力し、必要に応じて [新しいメディア セットの説明] ボックスにメディア セットの説明を入力します。 新しいメディア セットの作成の詳細については、「メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。

  14. [信頼性] セクションで、必要に応じて以下のチェック ボックスをオンにします。

  15. [全般] ページの [バックアップ先] セクションで、テープ ドライブにバックアップするように指定した場合は、[バックアップ後にテープをアンロードする] チェック ボックスがアクティブになります。 このオプションをオンにすると、[アンロードの前にテープを巻き戻す] オプションが有効になります。

    注意

    [全般] ページの [バックアップの種類] で、トランザクション ログをバックアップするように指定しなかった場合、[トランザクション ログ] セクションの各オプションは無効になっています。

  16. SQL Server 2008 Enterprise 以降のバージョンでは、バックアップの圧縮がサポートされています。 既定では、バックアップが圧縮されるかどうかは、backup-compression default サーバー構成オプションの値によって決まります。 ただし、現在のサーバー レベルの既定の設定にかかわらず、[バックアップを圧縮する] をオンにしてバックアップを圧縮することも、[バックアップを圧縮しない] をオンにして圧縮しないようにすることもできます。

    現在の backup compression default 値を表示するには

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

Transact-SQL の使用

ファイルおよびファイル グループをバックアップするには

  1. ファイルまたはファイル グループのバックアップを作成するには、BACKUP DATABASE <file_or_filegroup> ステートメントを使用します。 このステートメントでは、少なくとも次の項目を指定する必要があります。

    • データベースの名前。

    • ファイルまたはファイル グループごとに FILE 句または FILEGROUP 句。

    • 完全バックアップが書き込まれるバックアップ デバイス。

    ファイル バックアップの基本的な Transact-SQL 構文は次のとおりです。

    BACKUP DATABASE database

    { FILE = logical_file_name | FILEGROUP = logical_filegroup_name } [ ,...f]

    TO backup_device [ ,...n]

    [ WITH with_options [ ,...o] ] ;

    オプション

    説明

    database

    トランザクション ログ、データベースの一部、またはデータベース全体をバックアップする場合の、バックアップ元となるデータベースを指定します。

    FILE = logical_file_name

    ファイル バックアップに含めるファイルの論理名を指定します。

    FILEGROUP = logical_filegroup_name

    ファイル バックアップに含めるファイル グループの論理名を指定します。 単純復旧モデルでは、ファイル グループのバックアップは、読み取り専用のファイル グループに対してのみ使用できます。

    [ ,...f]

    複数のファイルおよびファイル グループを指定できることを示すプレースホルダーです。 ファイルまたはファイル グループの数は無制限です。

    backup_device [ ,...n]

    バックアップ操作に使用する 1 ~ 64 個のバックアップ デバイスの一覧を指定します。 物理バックアップ デバイスを指定したり、対応する論理バックアップ デバイス (既に定義されている場合) を指定したりできます。 物理バックアップ デバイスを指定するには、DISK オプションまたは TAPE オプションを使用します。

    { DISK | TAPE } = physical_backup_device_name

    詳細については、「バックアップ デバイス (SQL Server)」を参照してください。

    WITH with_options [ ,...o]

    必要に応じて、1 つ以上の追加オプション (DIFFERENTIAL など) を指定します。

    注意

    ファイルの差分バックアップを行うには、差分のベースとなる完全ファイル バックアップが必要です。 詳細については、「データベースの差分バックアップの作成 (SQL Server)」を参照してください。

  2. 完全復旧モデルでは、トランザクション ログもバックアップする必要があります。 ファイルの完全バックアップの完全なセットを使用してデータベースを復元するには、最初のファイル バックアップの先頭から、すべてのファイル バックアップにわたって十分なログ バックアップが必要です。 詳細については、「トランザクション ログのバックアップ (SQL Server)」を参照してください。

例 (Transact-SQL)

次の例では、Sales データベースのセカンダリ ファイル グループの 1 つ以上のファイルをバックアップします。 このデータベースでは、完全復旧モデルを使用し、次のセカンダリ ファイル グループが含まれています。

  • SGrp1Fi1 ファイルと SGrp1Fi2 ファイルを含む、SalesGroup1 という名前のファイル グループ。

  • SGrp2Fi1 ファイルと SGrp2Fi2 ファイルを含む、SalesGroup2 という名前のファイル グループ。

A. 2 つのファイルのファイル バックアップの作成

次の例では、SalesGroup1 ファイル グループの SGrp1Fi2 ファイルと SalesGroup2 ファイル グループの SGrp2Fi2 ファイルのみのファイルの差分バックアップを作成します。

--Backup the files in the SalesGroup1 secondary filegroup.
BACKUP DATABASE Sales
   FILE = 'SGrp1Fi2', 
   FILE = 'SGrp2Fi2' 
   TO DISK = 'G:\SQL Server Backups\Sales\SalesGroup1.bck';
GO

B. セカンダリ ファイル グループの完全ファイル バックアップを作成する

次の例では、両方のセカンダリ ファイル グループの各ファイルの完全バックアップを作成します。

--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
   FILEGROUP = 'SalesGroup1',
   FILEGROUP = 'SalesGroup2'
   TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck';
GO

C. セカンダリ ファイル グループの差分ファイル バックアップを作成する

次の例では、両方のセカンダリ ファイル グループ内のすべてのファイルについて、差分ファイル バックアップを作成します。

--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
   FILEGROUP = 'SalesGroup1',
   FILEGROUP = 'SalesGroup2'
   TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck'
   WITH 
      DIFFERENTIAL;
GO

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

PowerShell の使用

  1. Backup-SqlDatabase コマンドレットを使用して、-BackupAction パラメーターの値に Files を指定します。 また、次のいずれかのパラメーターを指定します。

    • 特定のファイルをバックアップするには、-DatabaseFile String パラメーターを指定します。String はバックアップする 1 つ以上のデータベース ファイルです。

    • 特定のファイル グループにあるすべてのファイルを指定するには、-DatabaseFileGroup String パラメーターを指定します。String は、バックアップする 1 つ以上のデータベース ファイル グループです。

    次の例では、MyDB データベースのセカンダリ ファイル グループである FileGroup1 および FileGroup2 のすべてのファイルの完全ファイル バックアップを作成します。 バックアップは、サーバー インスタンス Computer\Instance の既定のバックアップ先に作成されます。

    --Enter this command at the PowerShell command prompt, C:\PS>
    Backup-SqlDatabase -ServerInstance Computer\Instance -Database MyDB -BackupAction Files -DatabaseFileGroup "FileGroup1","FileGroup2"
    

SQL Server PowerShell プロバイダーを設定して使用するには

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

関連項目

参照

BACKUP (Transact-SQL)

RESTORE (Transact-SQL)

[データベースのバックアップ] ([全般] ページ)

[データベースのバックアップ] ([オプション] ページ)

概念

バックアップの概要 (SQL Server)

バックアップの履歴とヘッダーの情報 (SQL Server)

ファイルの完全バックアップ (SQL Server)

差分バックアップ (SQL Server)

ファイル復元 (完全復旧モデル)

ファイルの復元 (単純復旧モデル)