データベースの完全バックアップの作成 (SQL Server)
このトピックでは、SQL Server 2012 で SQL Server Management Studio、Transact-SQL、または PowerShell を使用して、データベースの完全バックアップを作成する方法について説明します。
注 |
---|
SQL Server 2012 SP1 Cumulative Update 2 以降、Windows Azure BLOB ストレージ サービスへの SQL Server バックアップがサポートされるようになりました。 詳細については、「Backup and Restore Enhancements」および「Windows Azure BLOB ストレージ サービスを使用した SQL Server のバックアップと復元」を参照してください。 |
このトピックの内容
作業を開始する準備:
制限事項と制約事項
推奨事項
セキュリティ
データベースの完全バックアップを作成する方法:
SQL Server Management Studio
Transact-SQL
PowerShell
関連タスク
作業を開始する準備
制限事項と制約事項
BACKUP ステートメントは、明示的または暗黙的なトランザクションでは使用できません。
SQL Server によって作成されたバックアップは、それより前のバージョンの SQL Server では復元できません。
詳細については、「バックアップの概要 (SQL Server)」を参照してください。
推奨事項
データベース サイズが大きくなると、データベースの完全バックアップにかかる時間は長くなり、必要な記憶領域も増加します。 このため、大きなデータベースの場合は、データベースの完全バックアップを一連の差分データベース バックアップで補完することができます。 詳細については、「差分バックアップ (SQL Server)」を参照してください。
データベースの完全バックアップのサイズは、sp_spaceused システム ストアド プロシージャを使用して推計することができます。
既定では、バックアップ操作が成功するたびに、SQL Server エラー ログおよびシステム イベント ログにエントリが 1 つ追加されます。 ログを頻繁にバックアップすると、これらの成功メッセージがすぐに蓄積され、他のメッセージを探すのが困難になるほどエラー ログが大きくなることがあります。 そのような場合、これらのエントリに依存するスクリプトがなければ、トレース フラグ 3226 を使用することによってこれらのログ エントリを除外できます。 詳細については、「トレース フラグ (Transact-SQL)」を参照してください。
セキュリティ
データベースをバックアップすると、TRUSTWORTHY は OFF に設定されます。 TRUSTWORTHY を ON に設定する方法の詳細については、「ALTER DATABASE の SET オプション (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 スクリプトを生成できます。 |
データベースをバックアップするには
Microsoft SQL Server データベース エンジンの適切なインスタンスに接続した後、オブジェクト エクスプローラーでサーバー名をクリックしてサーバー ツリーを展開します。
[データベース] を展開し、目的のデータベースに応じて、任意のユーザー データベースを選択するか、または [システム データベース] を展開して任意のシステム データベースを選択します。
データベースを右クリックして [タスク] をポイントし、[バックアップ] をクリックします。 [データベースのバックアップ] ダイアログ ボックスが表示されます。
[データベース] ボックスに、適切なデータベース名が表示されていることを確認します。 必要に応じて、このボックスの一覧から別のデータベースを選択することもできます。
どの復旧モデル ([FULL]、[BULK_LOGGED]、[SIMPLE]) でも、データベースのバックアップを実行できます。
[バックアップの種類] ボックスの一覧の [完全] をクリックします。
データベースの完全バックアップを作成すると、データベースの差分バックアップを作成できるようになります。詳細については、「データベースの差分バックアップの作成 (SQL Server)」を参照してください。
必要に応じて、[コピーのみのバックアップ] を選択して、コピーのみのバックアップを作成します。 コピーのみのバックアップは、従来の SQL Server バックアップのシーケンスから独立した SQL Server バックアップです。 詳細については、「コピーのみのバックアップ (SQL Server)」を参照してください。
注 [差分] オプションが選択されている場合、コピーのみのバックアップは作成できません。
[バックアップ コンポーネント] で、[データベース] をクリックします。
[名前] ボックスに表示された既定のバックアップ セット名をそのまま使用するか、または別のバックアップ セット名を入力します。
必要に応じて、[説明] ボックスに、バックアップ セットの説明を入力します。
バックアップ セットの有効期限と、有効期限が過ぎたデータを明示的に確認せずに上書きできるかどうかを指定します。
バックアップ セットが指定の日数後に期限切れになるようにするには、[期間指定] (既定のオプション) をクリックし、セットを作成してからセットが期限切れになるまでの日数を入力します。 設定できる値は 0 ~ 99,999 日です。値に 0 日を指定した場合は、バックアップの有効期限は無期限となります。
[サーバーのプロパティ] ダイアログ ボックス ([データベースの設定] ページ) の [バックアップ メディアの既定の保有期間 (日)] オプションには、既定値が設定されています。 このオプションを表示するには、オブジェクト エクスプローラーでサーバー名を右クリックし、[プロパティ] をクリックします。次に、[データベースの設定] ページをクリックします。
バックアップ セットが特定の日付に期限切れになるようにするには、[日時指定] をクリックし、セットが期限切れになる日付を入力します。
バックアップの有効期限の詳細については、「BACKUP (Transact-SQL)」を参照してください。
[ディスク] または [テープ] をクリックして、バックアップ先を選択します。 1 つのメディア セットを含んでいる最大 64 個のディスク ドライブまたはテープ ドライブのパスを選択するには、[追加] をクリックします。 選択したパスは、[バックアップ先] ボックスの一覧に表示されます。
バックアップ先を削除するには、バックアップ先を選択して [削除] をクリックします。 バックアップ先の内容を表示するには、バックアップ先を選択して [内容] をクリックします。
詳細設定オプションを表示または選択するには、[ページの選択] ペインの [オプション] をクリックします。
次のいずれかをクリックして、[メディアに上書きします] オプションを選択します。
[既存のメディア セットにバックアップする]
このオプションでは、[既存のバックアップ セットに追加する] または [既存のすべてのバックアップ セットを上書きする] のいずれかをクリックします。 詳細については、「メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。
必要に応じて、[メディア セット名とバックアップ セットの有効期限を確認する] チェック ボックスをオンにします。これにより、バックアップ操作で、メディア セットとバックアップ セットの有効期限が切れる日付と時刻の確認が行われます。
必要に応じて、[メディア セット名] ボックスに名前を入力します。 名前を指定しなかった場合、空の名前でメディア セットが作成されます。 メディア セット名を指定した場合は、メディア (テープまたはディスク) の実際の名前がここで入力した名前と一致しているかどうかが確認されます。
[新しいメディア セットにバックアップし、すべての既存のバックアップ セットを消去する]
このオプションでは、[新しいメディア セット名] ボックスに名前を入力し、必要に応じて [新しいメディア セットの説明] ボックスにメディア セットの説明を入力します。
[信頼性] セクションで、必要に応じて以下のチェック ボックスをオンにします。
[完了時にバックアップを検証する]。
[メディアに書き込む前にチェックサムを行う]、および、必要に応じて、[チェックサム エラーのまま続行する]。 チェックサムの詳細については、「バックアップ中および復元中に発生する可能性があるメディア エラー (SQL Server)」を参照してください。
[全般] ページの [バックアップ先] セクションで、テープ ドライブにバックアップするように指定した場合は、[バックアップ後にテープをアンロードする] チェック ボックスがアクティブになります。 このオプションをオンにすると、[アンロードの前にテープを巻き戻す] オプションがアクティブになります。
注 [全般] ページの [バックアップの種類] で、トランザクション ログをバックアップするように指定しなかった場合、[トランザクション ログ] セクションの各オプションは無効になっています。
SQL Server 2008 Enterprise 以降では、バックアップの圧縮がサポートされています。 既定では、バックアップが圧縮されるかどうかは、backup-compression default サーバー構成オプションの値によって決まります。 ただし、現在のサーバー レベルの既定の設定にかかわらず、[バックアップを圧縮する] をオンにしてバックアップを圧縮することも、[バックアップを圧縮しない] をオンにして圧縮しないようにすることもできます。
現在の backup compression default 値を表示または変更するには
注 |
---|
メンテナンス プラン ウィザードを使用して、データベースのバックアップを作成することもできます。 |
[先頭に戻る]
Transact-SQL の使用
データベースの完全バックアップを作成するには
次の項目を指定した 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. を参照してください。
必要に応じて、1 つ以上の WITH オプションを指定します。 ここでは、一部の基本的な WITH オプションについて説明します。 すべての WITH オプションについては、「BACKUP (Transact-SQL)」を参照してください。
基本的なバックアップ セット WITH オプション
{ COMPRESSION | NO_COMPRESSION }
SQL Server 2008 Enterprise 以降でのみ、バックアップでバックアップの圧縮を実行するかどうかを指定し、サーバー レベルの既定値を上書きできます。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 の使用
Backup-SqlDatabase コマンドレットを使用します。 これがデータベースの完全バックアップであることを明示的に示す場合、既定値 Database を使用して -BackupAction パラメーターを指定します。 このパラメーターは、データベースの完全バックアップでは省略可能です。
次の例では、サーバー インスタンス Computer\Instance の既定のバックアップ先に MyDB データベースの完全バックアップを作成します。 オプションで、-BackupAction Database を指定します。
--Enter this command at the PowerShell command prompt, C:\PS> Backup-SqlDatabase -ServerInstance Computer\Instance -Database MyDB -BackupAction Database
SQL Server PowerShell プロバイダーを設定して使用するには
[先頭に戻る]
関連タスク
[先頭に戻る]
関連項目
参照
sp_addumpdevice (Transact-SQL)
概念
トランザクション ログのバックアップ (SQL Server)