データベースの完全バックアップの作成 (SQL Server)

このトピックでは、SQL Server Management Studio、Transact-SQL、または PowerShell を使用して、SQL Server 2014 でデータベースの完全バックアップを作成する方法について説明します。

注意

Azure Blob Storage サービスへのSQL Serverバックアップの詳細については、「Azure Blob Storage サービスを使用したバックアップと復元」をSQL Serverする方法に関するページを参照してください。

このトピックの内容

はじめに

制限事項と制約事項

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

  • SQL Server によって作成されたバックアップは、それより前のバージョンの SQL Serverでは復元できません。

  • 詳細については、「バックアップの概要 (SQL Server)」を参照してください。

推奨事項

  • データベース サイズが大きくなると、データベースの完全バックアップにかかる時間は長くなり、必要な記憶領域も増加します。 このため、大きなデータベースの場合は、データベースの完全バックアップを一連の 差分データベース バックアップで補完することができます。 詳細については、「差分バックアップ (SQL Server)」を参照してください。

  • データベースの完全バックアップのサイズは、 sp_spaceused システム ストアド プロシージャを使用して推計することができます。

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

セキュリティ

データベースをバックアップすると、TRUSTWORTHY は OFF に設定されます。 TRUSTWORTHY を ON に設定する方法については、「 ALTER DATABASE SET Options (Transact-SQL)」を参照してください。

SQL Server 2012 以降では、 PASSWORD オプションと MEDIAPASSWORD オプションはバックアップの作成で廃止されました。 パスワード付きで作成されたバックアップを復元することは、引き続き可能です。

アクセス許可

BACKUP DATABASE 権限と BACKUP LOG 権限は、既定では、 sysadmin 固定サーバー ロール、 db_owner 固定データベース ロール、および db_backupoperator 固定データベース ロールのメンバーに与えられています。

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

SQL Server Management Studio を使用する

注意

SQL Server Management Studioを使用してバックアップ タスクを指定する場合は、[スクリプト] ボタンをクリックしてスクリプトの変換先を選択することで、対応する Transact-SQL BACKUP スクリプトを生成できます。

データベースをバックアップするには

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

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

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

  4. リスト ボックスで Database 、データベース名を確認します。 必要に応じて、このボックスの一覧から別のデータベースを選択することもできます。

  5. どの復旧モデル ([FULL][BULK_LOGGED][SIMPLE]) でも、データベースのバックアップを実行できます。

  6. [バックアップの種類] ボックスの一覧の [完全]をクリックします。

    データベースの完全バックアップを作成した後、データベースの差分バックアップを作成できることに注意してください。詳細については、「データベースの差分バックアップの作成 (SQL Server)」を参照してください。

  7. 必要に応じて、 [コピーのみのバックアップ] を選択して、コピーのみのバックアップを作成します。 コピーのみのバックアップは、従来の SQL Server バックアップのシーケンスから独立した SQL Server バックアップです。 詳細については、「コピーのみのバックアップ (SQL Server)」を参照してください。

    注意

    [差分] オプションが選択されている場合、コピーのみのバックアップは作成できません。

  8. [ バックアップ コンポーネント] で、 をクリックします Database

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

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

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

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

  12. メディア オプションを表示または選択するには、 [ページの選択] ペインの [メディア オプション] をクリックします。

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

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

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

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

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

      重要

      [全般] ページでバックアップ先として [URL] を選択した場合、このオプションは無効になります。 詳細については、「データベースのバックアップ ([メディア オプション] ページ)」を参照してください。

      暗号化を使用する場合は、このオプションを選択しないでください。 このオプションを選択すると、 [バックアップ オプション] ページの暗号化オプションが無効になります。 既存のバックアップ セットに追加するときには、暗号化はサポートされません。

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

      このオプションでは、 [新しいメディア セット名] ボックスに名前を入力し、必要に応じて [新しいメディア セットの説明] ボックスにメディア セットの説明を入力します。

      重要

      [全般] ページで [URL] を選択した場合、このオプションは無効になります。 これらのアクションは、Azure Storage へのバックアップ時にはサポートされません。

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

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

    注意

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

  16. バックアップ オプションを表示または選択するには、 [ページの選択] ペインの [バックアップ オプション] をクリックします。

  17. バックアップ セットの有効期限と、有効期限が過ぎたデータを明示的に確認せずに上書きできるかどうかを指定します。

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

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

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

      バックアップの有効期限の詳細については、「 BACKUP (Transact-SQL)」を参照してください。

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

    現在の backup compression default 値を表示または変更するには

  19. バックアップに暗号化を使用するかどうかを指定します。 暗号化手順に使用する暗号化アルゴリズムを選択し、既存の証明書または非対称キーの一覧から証明書または非対称キーを指定します。 暗号化は SQL Server 2014 以降でサポートされます。 暗号化オプションの詳細については、「 データベースのバックアップ (バックアップ オプション ページ)」を参照してください。

注意

メンテナンス プラン ウィザードを使用して、データベースのバックアップを作成することもできます。

Transact-SQL の使用

データベースの完全バックアップを作成するには

  1. 次の項目を指定した BACKUP DATABASE ステートメントを実行し、データベースの完全バックアップを作成します。

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

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

    データベースの完全バックアップの基本的な Transact-SQL 構文は次のとおりです。

    BACKUP DATABASE database

    TO backup_device [ , ...n ]

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

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

    { DISK | TAPE } =physical_backup_device_name

    詳細については、「バックアップ デバイス (SQL Server)」を参照してください。
    WITH with_options [ , ...o ] 必要に応じて、1 つ以上の追加オプション ( o) を指定します。 基本的な with オプションについては、手順 2. を参照してください。
  2. 必要に応じて、1 つ以上の WITH オプションを指定します。 ここでは、一部の基本的な WITH オプションについて説明します。 すべての WITH オプションの詳細については、「 BACKUP (Transact-SQL)」を参照してください。

    • 基本的なバックアップ セット WITH オプション

      { COMPRESSION | NO_COMPRESSION }
      SQL Server 2008 Enterprise 以降でのみ、このバックアップでバックアップ圧縮を実行するかどうかを指定し、サーバー レベルの既定値をオーバーライドします。

      暗号化 (アルゴリズム、サーバー証明書 |非対称キー)
      SQL Server 2014 以降でのみ、使用する暗号化アルゴリズムと暗号化の保護に使用する証明書または非対称キーを指定します。

      DESCRIPTION = { 'text' | @text_variable }
      バックアップ セットを記述したテキストを自由な形式で指定します。 文字列の長さは最大 255 文字です。

      NAME = { backup_set_name | @backup_set_name_var }
      バックアップ セットの名前を指定します。 名前の長さは最大 128 文字です。 NAME を指定しないと、名前は空白になります。

    • 基本的なバックアップ セット WITH オプション

      既定では、BACKUP はバックアップを既存のメディア セットに追加し、既存のバックアップ セットを保持します。 これを明示的に指定するには、NOINIT オプションを使用します。 既存のバックアップ セットへの追加の詳細については、「メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。

      また、FORMAT オプションを使用して、バックアップ メディアをフォーマットすることもできます。

      FORMAT [ , MEDIANAME**=** { media_name | @media_name_variable } ] [ , MEDIADESCRIPTION = { text | @text_variable } ]
      FORMAT 句は、バックアップ メディアを初めて使用する場合や既存のデータをすべて上書きする場合に使用します。 必要に応じて、新しいメディアにメディア名と説明を割り当てます。

      重要

      BACKUP ステートメントで FORMAT 句を使用すると、バックアップ メディアに格納されているバックアップが破棄されるので、十分注意して使用してください。

例 (Transact-SQL)

A. ディスク デバイスへのバックアップ

次の例では、 を使用してFORMAT新しいメディア セットを作成することで、完全な AdventureWorks2012 データベースをディスクにバックアップします。

USE AdventureWorks2012;  
GO  
BACKUP DATABASE AdventureWorks2012  
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2012.Bak'  
   WITH FORMAT,  
      MEDIANAME = 'Z_SQLServerBackups',  
      NAME = 'Full Backup of AdventureWorks2012';  
GO  

B. テープ デバイスへのバックアップ

次の例では、 AdventureWorks2012データベース全体をテープにバックアップし、バックアップを前のバックアップに追加します。

USE AdventureWorks2012;  
GO  
BACKUP DATABASE AdventureWorks2012  
   TO TAPE = '\\.\Tape0'  
   WITH NOINIT,  
      NAME = 'Full Backup of AdventureWorks2012';  
GO  

C. 論理テープ デバイスへのバックアップ

次の例では、テープ ドライブ用の論理バックアップ デバイスを作成した後、 次に、 完全な AdventureWorks2012 データベースをそのデバイスにバックアップします。

-- Create a logical backup device,   
-- AdventureWorks2012_Bak_Tape, for tape device \\.\tape0.  
USE master;  
GO  
EXEC sp_addumpdevice 'tape', 'AdventureWorks2012_Bak_Tape', '\\.\tape0'; USE AdventureWorks2012;  
GO  
BACKUP DATABASE AdventureWorks2012  
   TO AdventureWorks2012_Bak_Tape  
   WITH FORMAT,  
      MEDIANAME = 'AdventureWorks2012_Bak_Tape',  
      MEDIADESCRIPTION = '\\.\tape0',   
      NAME = 'Full Backup of AdventureWorks2012';  
GO  

PowerShell の使用

  1. Backup-SqlDatabase コマンドレットを使用します。 これがデータベースの完全バックアップであることを明示的に示すには、既定値 Database-BackupAction パラメーターを指定します。 このパラメーターは、データベースの完全バックアップでは省略可能です。

    次の例では、 MyDB データベースの完全なバックアップを、サーバー インスタンス Computer\Instanceの既定のバックアップ場所に作成します。 オプションで、-BackupAction Database を指定します。

    Backup-SqlDatabase -ServerInstance Computer\Instance -Database MyDB -BackupAction Database  
    

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

Related Tasks

参照

Backup Overview (SQL Server)
トランザクション ログのバックアップ (SQL Server)
メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)
sp_addumpdevice (Transact-SQL)
BACKUP (Transact-SQL)
[データベースのバックアップ] \([全般] ページ)
[データベースのバックアップ] ([バックアップ オプション] ページ)
差分バックアップ (SQL Server)
データベースの完全バックアップ (SQL Server)